本文主要是介绍双目相机标定流程(MATLAB),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一:经典标定方法
1.1OPENCV
1.2ROS
ROS进行双目视觉标定可以得到左右两个相机的相机矩阵和畸变系数,如果是单目标定,用ROS会非常方便。
3.MATLAB标定(双目标定)
MATLAB用来双目标定会非常方便,主要是为了得到两个相机之间的旋转矩阵R和平移矩阵T。
前提是已经已经用两个相机拍摄好多组照片。
二:采用matlab双目标定流程
2.1选择matlab中的双目标定工具箱
2.2导入图片并设置棋盘格尺寸
导入左右相机拍摄照片的文件夹,同时设置棋盘格子宽度,点击确定以后,matlab会自动剔除一些质量不高的照片。因此拍摄时照片尽量多一些,图片要求和单目标定时一致,数量我自己的话是建议200张会比较好一些,然后没有那么高的标定需求的话,20张应该够了。涉及到X,Y轴(左右,上下),然后还有SIZE(远近),还有翻转。图片拍摄的角度越多,标定也就越精准。
2.3设置参数
参数解释
2.3.1Radial Distortion(径向畸变)
2 Coefficients选项的官方含义:
Use fourth degree polynomial to estimate the radial distortion of a lens.
使用四次多项式来估计透镜的径向畸变。
3 Coefficients选项的官方含义:
This setting is recommended only for wide field of view camera.
Use sixth degree polynomial to estimate the radial distortion of a lens.
此设置仅适用于大视场相机。
使用六次多项式来估计透镜的径向畸变。
综上所述:
对于一般的相机选择2 Coefficients选项即可,对于大视场相机则选择3 Coefficients选项。
2.3.2Compute
Compute包含Skew和Tangential Distortion两个选项
2.3.2.1SKew
Assume that X-axis and Y-axis are not perpendicular. This means that the image pixels are not rectangular. Most modern cameras do not exhibit this issue.
假设X轴和Y轴不垂直。这意味着图像像素不是矩形的。大多数现代相机都没有这个问题。
所以,Skew选项一般不需要选择。
2.3.2.2Tangential Distortion
Tangential distortion occurs when the lens’ principal axis is not perpendicular to the camera sensor.
当镜头的主轴与相机传感器不垂直时,会发生切向失真。
2.3.3设置单目标定时的参数(可选)
如果希望将多目标定时的参数设置和含义与单目标定时保持一致,可以使用与单目标定时相同的参数设置和方法。可以输入之前单目标定时得到的内参矩阵(可选),然后点击"Calibrate"按钮进行计算。这样做可以确保在多目标定时中使用一致的参数和方法来进行校准。
左下方的直方图为左右图像的标定误差,点击误差较大的直方图,可以直接在左边的图像对中找到对应的图像,右键选择“Remove and Recalibrate”,可以重复上述步骤,直到认为误差满足标定需求为止。
2.4导出参数
2.5读取参数
TranslationOfCamera2:相机2相对于相机1的偏移矩阵;
RotationOfCamera2:相机2相对于相机1的旋转矩阵;
CameraParameters1和CameraParameters2为左右摄像头的单独标定参数
2.5.1两个摄像头的平移和旋转参数
平移参数可直接使用;但旋转参数需进行转置才能使用。
2.5.2摄像机内参矩阵
CameraParameters1与CameraParameters2中包含如下文件:
特别注意:IntrinsicMatrix存放的是摄像头的内参,只与摄像机的内部结构有关,需要先转置再使用。
2.5.3畸变参数
RadialDistortion和TangentialDistortion中存放的是畸变参数, RadialDistortion为径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。TangentialDistortion为切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。
不过在使用时,需要注意参数的排放顺序,即K1,K2,P1,P2,K3。切记不可弄错,否则后续的立体匹配会出现很大的偏差。
参考资料:双目视觉标定MATLAB_matlab双目标定-CSDN博客
双目立体视觉:四(双目标定matlab,图像校正,图像匹配,计算视差,disparity详解,)_rectifystereoimages-CSDN博客
matlab相机标定Options选项解析_radial distortion 3 cofficient-CSDN博客Matlab2015 双目相机自动标定 (mamicode.com)
这篇关于双目相机标定流程(MATLAB)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!