发布时间: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,使用
也可以直接在命令行输入stereoCameraCalibrator,也可以打开这个应用。
之后 先添加照片,camera1添加左边的照片,camera2添加右边的照片。
如果选择2Coefficients的话,结果的径向畸变只有k1,k2,主要用于普通相机;
如果选择3Coefficients的话,结果的径向畸变会有三项,主要用于鱼眼摄像机。
接下来就可以交给Matlab进行计算
生成结果如上图所示。
从柱状图中挑出明显不符合的结果,右键点击相对应的照片,将其移出,Matlab会自动重新计算误差。
点击确定即可
其中:
TranslationOfCamera2:相机2相对于相机1的偏移矩阵,可以直接使用。
RotationOfCamera2:相机2相对于相机1的旋转矩阵,需要转置之后才能使用。
CameraParameters1与CameraParameters2为左右摄像头的单独标定参数。CameraParameters1与CameraParameters2中包含如下文件:
IntrinsicMatrix存放的是摄像头的内参,只与摄像机的内部结构有关,需要先转置再使用。
RadialDistortion:径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。
TangentialDistortion:切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。
使用时,需要注意参数的排放顺序,即K1,K2,P1,P2,K3。切记不可弄错,否则后续的立体匹配会出现很大的偏差。
由上述方法获得双目的标定参数后,就可以进一步进行双目校正、匹配以及生成深度图了
具体说一下内参,内参是一个3x3的矩阵,双击matlab里面的值,得到的表格是这样的
这个表格里面和代码需要的数据要置换一下
fx | 0 | cx |
0 | fy | cy |
0 | 0 | 1 |
以上内容引用了MATLAB标定后使用opencv双目测距 | 码农家园文章目录 前言一、什么是拍照测距?二、双目测距步骤1.双目标定2.测距 测试结果 前言 最近有项目需要用到摄像测距,于是开始接触opencv机器视觉。学了好几...https://www.codenong.com/cs110549798/