Matlab2015 雙目相機自動標定
一、 標定步驟
1. 調出標定工具箱
在命令行輸入stereoCameraCalibrator,出現如下界面:
2. 勾選相應的選項
然後將上面的“Skew”、“Tangential Distortion”以及“3 Coefficients”等選項選上,將“2 Coefficients”選項去掉,如下:
3. 載入圖像
然後點擊添加圖像,出現如下界面:
Camera1代表左攝像頭,Camera2代表右攝像頭,分別選擇存放著左右圖像的文件夾,需要特別註意的是棋盤格的邊長應該根據打印的實際大小填寫,單位可以選擇
然後點擊OK,程序會自動檢測采集的圖像到底有多少可以使用,可以說MATLAB2015的這個工具十分挑剔,如果角度不好的話,將使用不了,因此在采集圖像時,最好多的采集一些。(此處只是為了說明標定步驟,所以使用的圖像較少)。
4. 標定
點擊按鈕,開始標定:
5. 校準
從下圖可以看到,平均的標定誤差以及標定過程中誤差較大的的圖像對。
點擊選擇不想接受的誤差直方圖,可以直接在左邊的圖像對中找到對應的圖像,右鍵選擇“Remove and Recalibrate”:
可以重復上述步驟,直到認為誤差滿足標定需求為止。
6. 導出參數
點擊選擇Export camera parameters, 並點擊“OK”。
二、 參數讀取
標定結束後,會得到如下標定參數:
CameraParameters1與CameraParameters2為左右攝像頭的內部參數,RotationOfCamera2與TranslationOfCamera2為兩個攝像頭的旋轉、平移參數。
1. 兩個攝像頭的平移和旋轉參數
平移參數可直接使用;但旋轉參數需進行轉置才能使用。
2. 攝像機內參矩陣
CameraParameters1與CameraParameters2中包含如下文件:
IntrinsicMatrix存放的是攝像頭的內參,只與攝像機的內部結構有關,需要先轉置再使用。
3. 畸變參數
RadialDistortion和TangentialDistortion中存放的是畸變參數, RadialDistortion為徑向畸變,攝像頭由於光學透鏡的特性使得成像存在著徑向畸變,可由K1,K2,K3確定。TangentialDistortion為切向畸變,由於裝配方面的誤差,傳感器與光學鏡頭之間並非完全平行,因此成像存在切向畸變,可由兩個參數P1,P2確定。
不過在使用時,需要註意參數的排放順序,即K1,K2,P1,P2,K3。切記不可弄錯,否則後續的立體匹配會出現很大的偏差。
Matlab2015 雙目相機自動標定