利用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