顯示具有 Tech-image processing 標籤的文章。 顯示所有文章
顯示具有 Tech-image processing 標籤的文章。 顯示所有文章

2021年7月23日 星期五

Lowe's Ratio Test排除易混淆特徵點對應

 再做特徵點對應的時候,若有重複的圖形,用local資訊提取的特徵很容易有錯誤的對應

所以可以用 Lowe's Ratio Test 排除易混淆的對應,意義上來說是如果有相近的對應就將該組對應排除

這個方法很簡單, Lowe在SIFT原始論文就有提出這個方法, 在7.1

https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf

L1,L2 是最相近的對應特徵點與二相近的對應特徵點對應分數

L2/L1 = RoD (ration of distance)

原始論文中建議設為0.8, 但可能做3D重建更介意false positive,設為0.5

Lowe's Ratio Test排除易混淆特徵點對應

Bag of visual words,TF-IDF

Bag of visual words (BOVW)是把影像用特徵來描述

譬如說用SIFT提取特徵,之後一張影像就用這些特徵來表示,並且也只保留這些特徵,

這可以用在影像特徵的萃取與比對

一張影像可以提取出許多字彙,直接用每個字彙出現的數量來描述影像是一種方式

而應用TF-IDF (Term freq. inverse document frequency )的技術,在此描述中加上字彙的稀有程度這項因素

t = (nid/nd) log(N/ni) 

nid:字彙i出現在目標影像中的次數

nd :目標影像總字數

N:總影像數

ni:含有字彙i的影像數

(nid/nd)這項表示若這張影像的字彙數越少,每個字彙的權重越高

(log(N/ni))這項表示若這字彙越稀有,則這個字彙權重越高

接著再計算影像之間的cosine distance, 

ref :  https://www.youtube.com/watch?v=a4cFONdc6nc

ref :https://github.com/ovysotska/in_simple_english

Bag of visual words,TF-IDF

2019年11月29日 星期五

用openCV範例程式做相機校正

這篇主要是說明用openCV pre build的範例做相機校正,並且是針對有影像檔的狀況

1. 列印棋盤格

(格數為-w=6 -h=4, -w=6 -h=4, 6+1, 4+1)
棋盤格產生方式請參考 用openCV 內建的python script產生校正板並列印成真實大小

2. 用愈校正的相機拍照

拍攝1.印出之棋盤格

3. 產生name list

開啟cmd
執行dir *.jpg /b > nameList.txt
會產生 nameList.txt檔案
如果有將圖片放在子資料夾,用excel加上資料夾的prefix
加上檔頭檔尾做成 .xml檔案
空的.xml 檔案可以藉由執行example_cpp_imagelist_creator.exe imageList.xml 取得,將檔案名稱放在<images></images>中間

4. 執行

example_cpp_calibration -w=6 -h=4 -s=40 -op -oe -o=cameraParameter.yml -su nameList.xml

直接執行example_cpp_calibration 可以看各項參數的意義

5. 結果 

校正完成之後會顯示校正的平均誤差,顯示校正後影像(按 空白可以切換影像),並把結果存在cameraParameter.yml

6 .用openCV可以直接開啟的相機

如果用openCV可以直接開啟的相機做校正可以用
example_cpp_calibration -w=6 -h=4 -s=40 -op -oe -o=cameraParameter.yml -su nameList.xml
的指令
看到影像後按g開始取像(預設10張
u在校正完成後可以切換

用openCV範例程式做相機校正

2019年11月28日 星期四

用openCV 內建的python script產生校正板並列印成真實大小

利用openCV自帶的script產生任意數量的校正板
打開 cmd 執行
python D:\opencv-3.4.1\opencv-3.4.1\doc\pattern_tools\gen_pattern.py -o D:\chessboard.svg --rows 7 --columns 5 --type checkerboard --square_size 40
其中
D:\opencv-3.4.1\opencv-3.4.1\doc\pattern_tools\gen_pattern.py 是 scricpt所在路徑D:\opencv-3.4.1\opencv-3.4.1\帶換成openCV的路徑

D:\chessboard.svg是輸出檔案的名稱

7 是校正格橫向單位數 5是縱向單位數
40 是每格的大小,單位是mm

接著可以找到D:\chessboard.svg 

下載 InkScape 
打開inkscape,將 .svg檔拖入
畫面中間會有一個框框,將棋盤格放置在框框中並列印就可以產生正確大小的棋盤格進行相機校正了

用openCV 內建的python script產生校正板並列印成真實大小

2019年9月10日 星期二

bayer raw檔處理

網路上看可以用
rawTherapee 或 darktable
但我的raw檔來源不是市售相機,這兩隻程式也開不起來
後來是先用imageJ(Fiji)手動imageJ(Fiji)手動輸入影像資訊
後來找到天文用的 Fitswork來處理bayer的問題,但fitswork理論上可以讀raw,但還是讀不到我的raw...

bayer raw檔處理

2019年1月9日 星期三

用VLC將影片轉影像s

Tool>Preference (ctrl+P)
show setting > all
video>filters>Scene filter

之後到母選單video中將Scene filter的核取方塊打勾並重開VLC
之後播放的影片就會固定時間截圖

用VLC將影片轉影像s

2018年5月21日 星期一

Vga


 http://www.xess.com/blog/vga-the-rest-of-the-story/
所以VGA的確是類比訊號(0~0.7V)
RGB各有32個色階
一次送一個pixel的訊號,用垂直跟水平掃描訊號來決定要更新哪個pixel的值

Vga

2018年1月28日 星期日

EmguCv Debug visualizer

Emgu CV在用VS debug的時候可以很容易地看到各記憶體裡面資料視覺化的狀態

EmguCv Debug visualizer

emgu cv檔案缺漏

下載來玩想說先加一個看起來很炫的Imagebox進來,emguCV的imageBox內建讀檔,filter...功能,看起來很強大。

emgu cv檔案缺漏

2017年12月11日 星期一

以ImageJ中量測影像目標物尺寸

影像上的長度單位是pixel,但真實世界是mm
當然可以利用手動方式算出兩者之間的比例,但是透過ImageJ的Measure工具可以更方便穩定的得到結果

以ImageJ中量測影像目標物尺寸

2017年11月13日 星期一

未簽署的驅動程式及進入測試模式

2017年10月13日 星期五

顯示卡

今天去客戶端測類神經演算法的影像辨識軟體.因為客戶在彰化,我們搭高鐵下去.原本做類神經的電腦是一台很大很powerful的主機,但要搭高鐵運送實在麻煩,只好早上臨時用行銷部門(行銷部門的電腦是公司裡最高檔的XD)的電腦配上借來的高檔1080ti顯卡上場,光這張顯卡就可以到300W以上的功耗,還好行銷部的電腦組的紮實.

顯示卡

2017年5月22日 星期一

16-bit tiff存檔

因為公司相機有12bit影像,但是用.net處理影像會透過GDI+,而GDI+只能處理8-bit(聽說還有很多其他問題...因為他不是原生.net)所以者了個可以處裡的lib, libtiff
他有簡單的範例可以把buffer中的資料塞到他的class裡面並存成tiff檔案

16-bit tiff存檔

2017年5月5日 星期五

Cloudcompare-3d點雲處理

2016年11月4日 星期五

更換驅動程式 switch device driver

同時使用Vimba與Matrox,同一台相機在兩個狀況需要不同的驅動程式。
1. 打開Device Manager
2. 在目標裝置上(right click on target device)右鍵>Properties
3. 在Driver的tab中>Update Driver>Browse my computer for driver software
4. 選擇 Let me pick from a list on my computer 這裡就可以改變使用的driver

更換驅動程式 switch device driver

2016年4月14日 星期四

法蘭距(Flange focal distance,FFD)

昨天鏡頭廠商來訪,提到工業用的相機因為不用finder(觀景窗)所以FFD可以弄得很小,相對應的鏡頭的體積跟成本也可以降低不少

法蘭距(Flange focal distance,FFD)

一片玻璃的差異

剛好在研究鏡頭的轉接的時候看到Roger Cicala的一篇文章The Glass in the Path: Sensor Stacks and Adapted Lenses

大概是在說感光元件前面的那塊玻璃厚度對成像品質的影響,結論是影響還蠻大的。(其實本來是想在3/4的原件上加上轉接環使用全幅的鏡頭)

尷尬的是不同的感光元件(不是很確定相同大小不同廠牌的元件前面玻璃厚度,應該是不一樣)前面的玻璃未必一樣厚(差異可能還不小咧)。
他們為了這件事情還把一台相機感光元件前面的玻璃拆掉XD(話說我研究所的時候也做過這件事情,只不過拆的是webcam鏡頭後面的小玻璃)

所以不同廠牌的鏡頭雖然可以用轉接環互相接來接去,不過這還是玩玩就好,成像品質不保證會好喔!

一片玻璃的差異

2015年9月16日 星期三

用open cv即時監視影像

現在的IDE很先進,可以在debug的時候即時看到變數變化
今天發現vs 2012以上的版本可以安裝外掛(Image Watch)來即時監看影像!~讓開發更方便

用open cv即時監視影像

2015年9月15日 星期二

opencv初跑問題

今天想到又開了opencv來用

成功的參考這篇文章用系統變數設定路徑(這樣不管是換安裝路徑或是換電腦都比較方便)
設定成功之後可以用系統變數來設定include(include成功可以從IDE在編輯的時候看出來,必較容易確認是否設定成功)

接著設定vs,用文章中說的方式,用屬性工作表的方式,可以把設定好得屬性儲存,之後其他專案有需要可以直接套用,很方便

opencv初跑問題

2015年8月24日 星期一

安裝emgu CV

本來想說想來練一下open CV,但是他不能再.NET環境下使用,真的要用還得自己包裝一層,好像有點麻煩。上網找了一下,才發現Emgu CV,包裝好的open CV
現在已經出到3.0版本了,基本上安裝蠻簡單的,就一直無腦下一步(需要先安裝 MSVCRT,請參考這裡)

安裝emgu CV