利用matlab對雙目攝像頭進行標定,本文使用的matlab版本爲Matlab R2018b。
(1)下載標定工具箱
網址:http://www.vision.caltech.edu/bouguetj/calib_doc/download/index.html
(2)將下載的TOOLBOX_calib工具箱添加到matlab的文件路徑下
主頁->設置路徑->添加幷包含子文件夾
(3)在matlab的命令行窗口啓動Camera Calibration Toolbox
輸入calib_gui,啓動工具箱
(4)該工具箱有兩種讀入圖片的方式,Standard和Memory efficient兩種
Standard方式是將標定圖片一次性讀入計算機內存,但是該種方式會造成計算機內存的溢出,Memory efficient方式是將標定圖片一張一張的讀入。本文選擇Standard方式將標定圖片讀入計算機內存
開始標定
(1)下載標定圖像
網址:http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/calib_example.zip
(2)將20張圖片放入自己建立的文件夾calib_example
(3)在matlab中,定位到calib_example,點擊Image names按鈕,結果如下
(4)提取角點
點擊Extract grid corners按鈕,提取角點
(5)輸入每一個方塊格子的大小dx和dy,輸出結果如下所示。
(6)利用以上步驟對所有的圖片進行標定
(7)當對標定結果不滿意時,可以進行人爲的調整,輸入想要偏移的像素大小
(8)當對20張圖片均標定完成後,顯示如下結果,會生成calib_data.mat
(9)當對角點提取完成後,點擊Calibration按鈕,運行攝像機標定程序
(10)當完成攝像機的標定後,點擊Reproject on images,對標定點進行重新投影,此時可以得出標定的誤差
如果想要更加直觀的查看網格相對於標定板的位置,點擊Show Extrinsic按鈕,結果如下所示。
當誤差過大時,點擊Recomp.corners按鈕,之後點擊Calibration按鈕,重新進行自動標定,標定完成後,點擊Save按鈕,將標定後雙目相機的內參和外參進行保存。
此時錯誤分析結果如下所示
雙目攝像機標定原始文檔如下:
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html
對兩個相機分別進行標定得到各自的內外參數,教程步驟參考:
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html
對兩個相機進行雙目系統標定,教程步驟參考:
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example5.html
經過以上兩個步驟之後,得到如下所示的相機內外參數,具體參數描述參考:
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html