雙目攝像頭標定

2021-08-14 23:46:55 字數 1314 閱讀 8242

本文選擇使用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...