使用matlab进行双目标定

发布时间:2024-03-22 12:01

参照之前的文章,拍好照片双目摄像头左右分别拍照 opencv_LYiiiiiii的博客-CSDN博客一、下载并打印棋盘格在下面的网站就可以下载不同大小的棋盘格,用打印机将其打印下来Calibration Checkerboard Collection | Mark Hedley Jones二、准备一个双目摄像头,我实在淘宝上面买的三、环境:C++、opencv库...https://blog.csdn.net/LYiiiiiii/article/details/121634731?spm=1001.2014.3001.5501

拍好照片之后,打开Matlab,使用 

 将app进行下拉 打开

也可以直接在命令行输入stereoCameraCalibrator,也可以打开这个应用。


之后 先添加照片,camera1添加左边的照片,camera2添加右边的照片。

并且将打钩的位置调为如图的样子使用matlab进行双目标定_第1张图片

  1. 如果选择2Coefficients的话,结果的径向畸变只有k1,k2,主要用于普通相机;

  2. 如果选择3Coefficients的话,结果的径向畸变会有三项,主要用于鱼眼摄像机。

接下来就可以交给Matlab进行计算 

 

 生成结果如上图所示。

 从柱状图中挑出明显不符合的结果,右键点击相对应的照片,将其移出,Matlab会自动重新计算误差。


当误差可以接受的时候导出参数

 点击确定即可

导出结果如图使用matlab进行双目标定_第2张图片

 使用matlab进行双目标定_第3张图片

其中:

TranslationOfCamera2:相机2相对于相机1的偏移矩阵,可以直接使用。
RotationOfCamera2:相机2相对于相机1的旋转矩阵,需要转置之后才能使用。

CameraParameters1与CameraParameters2为左右摄像头的单独标定参数。CameraParameters1与CameraParameters2中包含如下文件:

使用matlab进行双目标定_第4张图片

使用matlab进行双目标定_第5张图片  

IntrinsicMatrix存放的是摄像头的内参,只与摄像机的内部结构有关,需要先转置再使用。
RadialDistortion:径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。
TangentialDistortion:切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。

使用时,需要注意参数的排放顺序,即K1,K2,P1,P2,K3。切记不可弄错,否则后续的立体匹配会出现很大的偏差。

由上述方法获得双目的标定参数后,就可以进一步进行双目校正、匹配以及生成深度图了

使用matlab进行双目标定_第6张图片

使用matlab进行双目标定_第7张图片

 具体说一下内参,内参是一个3x3的矩阵,双击matlab里面的值,得到的表格是这样的

使用matlab进行双目标定_第8张图片

这个表格里面和代码需要的数据要置换一下

fx  0 cx
0 fy cy
0 0 1

使用matlab进行双目标定_第9张图片

以上内容引用了MATLAB标定后使用opencv双目测距 | 码农家园文章目录 前言一、什么是拍照测距?二、双目测距步骤1.双目标定2.测距 测试结果 前言 最近有项目需要用到摄像测距,于是开始接触opencv机器视觉。学了好几...https://www.codenong.com/cs110549798/ 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号