双目视觉标定MATLAB

双目标定 双目摄像机需要标定的参数:

摄像机内参数矩阵,畸变系数,两相机之间的旋转矩阵 R 和平移矩阵 T (其中摄像机内参数矩阵和畸变系数矩阵可以通过单目标定的方法标定出来)。 双目摄像机标定和单目摄像机标定最主要的区别就是双目摄像机需要标定出左右摄像机坐标系之间的相对关系。我们用旋转矩阵 R 和平移矩阵 T 来描述左右两个摄像机坐标系的相对关系,具体为:在左相机上建立世界坐标系。假设空间中有一点P,其在世界坐标系下的坐标为 Pw,其在左右摄像机坐标系下的坐标可以表示为:

Pl=RlPw+Tl

Pr=RrPw+Tr

其中Pl和Pr又有如下的关系:

 综合上式,可以推得:

双目视觉标定MATLAB_第1张图片

 其中 Rl , Tl 为左摄像头经过单目标定得到的相对标定物的旋转矩阵和平移向量,Rr, Tr为右摄像头经过单目标定得到的相对标定物的旋转矩阵和平移向量。左右相机分别进行单目标定,就可以分别Rl, Tl,Rr, Tr。带入上式就可以求出左右相机之间的旋转矩阵 R 和平移 T。

采用 matlab 标定时注意事项:

1. 双目相机标定时的照片必须是左右相机同时拍摄的,因为只有同时拍摄才能得到同一物理点在左右相机图像平面上的投影; 2. 采集棋盘图的时候要注意,尽量让棋盘占据尽可能多的画面,这样可以得到更多有关摄像头畸变方面的信息; 3. 在标定工具箱中,可以得到当前标定结果得到的重投影误差,这是衡量标定精度的重要标准; 4. 标定图片数量至少需要 10 对,建议采用 20-25 对左右图片进行双目标定。

采用 matlab 双目标定流程:

1. 选择 matlab 中的双目标定工具箱

 

双目视觉标定MATLAB_第2张图片

2. 导入图片并设置棋盘格尺寸

导入左,右相机拍摄的图片文件夹,同时设置棋盘格宽度,如图14所示。点击确定之后,matlab会自动剔除一些质量不高的图片。因此拍摄时图片尽量多一些,图片要求和单目标定时要求一致,数量建议20张以上。双目视觉标定MATLAB_第3张图片

 3. 设置参数

如果希望将多目标定时的参数设置和含义与单目标定时保持一致,可以使用与单目标定时相同的参数设置和方法。可以输入之前单目标定时得到的内参矩阵(可选),然后点击"Calibrate"按钮进行计算。这样做可以确保在多目标定时中使用一致的参数和方法来进行校准。

双目视觉标定MATLAB_第4张图片左下方的直方图为左右图像的标定误差,点击误差较大的直方图,可以直接在左边的图像对中找到对应的图像,右键选择“Remove and Recalibrate”,可以重复上述步骤,直到认为误差满足标定需求为止。

4. 导出参数

 

 双目视觉标定MATLAB_第5张图片

 5. 读取参数

标定结束后,会得到如下标定参数:

 双目视觉标定MATLAB_第6张图片

 TranslationOfCamera2:相机2相对于相机1的偏移矩阵;

RotationOfCamera2:相机2相对于相机1的旋转矩阵;

CameraParameters1和CameraParameters2为左右摄像头的单独标定参数

你可能感兴趣的:(matlab,matlab,数码相机,开发语言)