在机器人视觉应用中,为确定物体的空间三维位置与相机拍摄的图像的对应关系,需要确定相机成像的几何模型,这些模型参数即相机参数,而求解相机参数的过程即相机标定,是机器人视觉中关乎标定精度的关键环节。本文主要介绍matlab实现相机标定的步骤。
1 相机标定工具箱安装
TOOLBOX_calib工具箱下载链接:http://www.vision.caltech.edu/bouguetj/calib_doc/
将文件夹放至toolbox下,在matlab主页->环境->设置路径->选择工具箱路径中,添加该工具包路径
2 输入命令,打开calibration窗口,并选择standard
calib_gui
3 点击Image name,并输入所有图片名字中的相同部分,所有图片就会全部读入到MATLAB中。
4 点击Extract grid corners,提取每幅图的角点,点击完成,直接回车(没有参数)选择所有的图像
5 按顺序点击长方形棋盘格的四个边角点,尽可能准确。选择的位置在下图中显示出来
6 经过上面的步骤之后,标定棋盘的边界就显示出来了:输入网格中每个方格在X和Y方向上的尺寸dX和dY
7 在角点提取完之后,就可以单击标定工具箱面板上的“Calibration”来运行主要的相机标定程序。
8 单击面板上的“Reproject on images”来将网格角点映射到原始图像中。这些映射是基于当前的内参和外参计算出来的。
9 在面板中单击“ShowExtrinsic”。外参(棋盘格相对于相机的相对位置)就以3D的形式显示出来了:
10 工具“Analyseerror”允许你去检查哪个点对应大的误差。
11 单击“Save”保存标定结果(内参和外参)到matlab文件“Calib_Results.mat”