基于matlab的双目摄像头标定

利用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方式将标定图片读入计算机内存

基于matlab的双目摄像头标定_第1张图片

开始标定

(1)下载标定图像

网址:http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/calib_example.zip

(2)将20张图片放入自己建立的文件夹calib_example

(3)在matlab中,定位到calib_example,点击Image names按钮,结果如下

基于matlab的双目摄像头标定_第2张图片

(4)提取角点

点击Extract grid corners按钮,提取角点

基于matlab的双目摄像头标定_第3张图片

基于matlab的双目摄像头标定_第4张图片

(5)输入每一个方块格子的大小dx和dy,输出结果如下所示。

基于matlab的双目摄像头标定_第5张图片

 

(6)利用以上步骤对所有的图片进行标定

(7)当对标定结果不满意时,可以进行人为的调整,输入想要偏移的像素大小

(8)当对20张图片均标定完成后,显示如下结果,会生成calib_data.mat

基于matlab的双目摄像头标定_第6张图片

(9)当对角点提取完成后,点击Calibration按钮,运行摄像机标定程序

(10)当完成摄像机的标定后,点击Reproject on images,对标定点进行重新投影,此时可以得出标定的误差

基于matlab的双目摄像头标定_第7张图片

如果想要更加直观的查看网格相对于标定板的位置,点击Show Extrinsic按钮,结果如下所示。

基于matlab的双目摄像头标定_第8张图片

 

当误差过大时,点击Recomp.corners按钮,之后点击Calibration按钮,重新进行自动标定,标定完成后,点击Save按钮,将标定后双目相机的内参和外参进行保存。

此时错误分析结果如下所示

基于matlab的双目摄像头标定_第9张图片

 

双目摄像机标定原始文档如下:

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

你可能感兴趣的:(基于matlab的双目摄像头标定)