本文選擇使用matlab進行標定。
標定過程分3步,接下來分步詳細展開:
使用棋盤格生產影象
使用影象在matlab中標定
使用標定係數
第一步:使用棋盤格生產影象
列印棋盤格紙(這一步建議選擇矩形棋盤格,否則容易因為原點不同出現標定偏差,本文版本放在文末了)
在目錄下建立兩個資料夾:frameright、frameleft
執行imagecapturefromcamera.py
分別使得棋盤在兩個攝像頭視野中的不同角度,按空格鍵建立
第二步:使用影象在matlab中標定
開啟matlab的stereo camera calibrate應用
新增,1選擇left目錄,2選擇right目錄,長度填入真實棋盤長度(18)mm
徑向畸變選擇3引數,選擇切向畸變
開始校正
匯出引數
第三步:使用標定係數
參考opencv官網(
呼叫opencv的stereocalibrate()函式
引數對應關係如下:
matlab
opencv
rotationofcamera2
r translationofcamera2
t cameraparameters1.intrinsicmatrix
left_camera_matrix
cameraparameters1.radialdistortion
left_distortion
cameraparameters1.tangentialdistortion
left_distortion
cameraparameters2.intrinsicmatrix
right_camera_matrix
cameraparameters2.radialdistortion
right_distortion
cameraparameters2.tangentialdistortion
right_distortion
注意,distortion:opencv的引數是乙個,matlab有兩個需要進行組合,組合方式如下:
camera_matrix:opencv的引數是由matlab引數轉置得到的。
特別感謝:清華大學的董同學指導。
opencv 雙目攝像頭標定
我用的是opencv官方的例程,花了一天把 大致注釋了下,但是雙目感覺好難,很多地方都不懂,都是在大佬們的部落格找的資料 下面是對例程使用的說明 雙目攝像頭矯正就是為了 可以自己拍攝13張左相機,13張右相機進行代替 ps 名稱需要和.xml檔案中的對應 opencv的攝像機標定採用通用的棋盤標定模...
攝像頭標定
void calrealpoint std vector obj,int boardwidth,int boardheight,int imgnumber,int squaresize for int imgindex 0 imgindex imgnumber imgindex void camer...
攝像頭標定
void calrealpoint std vector obj,int boardwidth,int boardheight,int imgnumber,int squaresize for int imgindex 0 imgindex imgnumber imgindex void camer...