相機標定是計算機視覺中最基礎的模塊,要問我為什么要搞這個東西。我只能說這是作!業!
不說了,說多了都是淚
用Matlab做相機標定,使用的是matlab提供的標定工具箱,需要下載,如果英文好可以看這篇文章,里面還提供了例子圖片。
1. 啟動標定的工具箱
打開matlab,在進入工具箱目錄,運行calib.m,有一個standard還有Memory efficient。當圖像非常多時,需要選擇第二種。
我選擇了Standard。
2. 選擇圖像載入
我是將圖片都放到了工具箱目錄里面,在接着點擊Image names按鈕,之后就出現下面這樣的情況了
輸入Image(<-因為這東西是文件的前綴),因為我們圖片類型是.tif,因此再輸入t
如果這里出現了OUT OF MEMORY,RAM太小了。你可以選擇memory efficient mode試試。。。
標定后面的步驟就剩下grid corner extraction 以及 calibration
3. 提取角點
點擊xtract grid corners進行腳點的提取。
接着你就要選擇你要處理的圖像,如果直接點擊回車,他會選擇所有的圖像,如果你輸入2 5 8 10 12,它會選出這幾幅圖像讓你去處理。這里我的選擇是直接回車,處理所有的圖像。
再接着,它會讓你選擇窗口的大小,這里默認使用了默認窗口的大小,即再次回車。具體發生的情況如下圖:
經過這些操作之后,我們要開始選擇區域了
在這樣選擇好區域,matlab程序會詢問你中間的角點是否與實際圖像中的有變形,如果有進行調整。
這邊輸入dx,dy=30 ......我也不知道為什么,文檔里面就是這樣,應該是實際的長度吧。輸入后,圖像里面會出現紅色的十字點。這個是角點。看一下是否與實際圖像中的角點一致,如果不對,輸出除了[](就是Enter),如果不一致,就輸入其他的,我輸入了1....為了方便。 之后輸入kc值來進行修改(first order lens distortion coefficient kc)
在取完所有角點之后,calib_data.mat文件會自動生成,還有什么文件會自動產生。具體的我不說了
再接着我們要進行最主要的標定過程,該步驟主要分為兩個部分:first initialization以及接下來要做的nonlinear optimization
處理了幾張以后以后應該可以按clibration按鈕了吧,這個主要是在處理first initialization的步驟
再接着按reproject on image 會出現以下幾個圖
在這些操作都做完以后,可以直接點擊alibration進行標定
未完待續……