之前听前辈说matlab标定更稳定,结果更准确,就分别用matlab和opencv标定了相机做一下对比。
matlab标定过程比较麻烦,左右相机各24张图片,提取角点时一张图片点四次,还要比较小心,自己体会。。。
matlab的标定结果如下:
opencv标定先使用cvCalibrateCamera2()函数对左右相机分别进行标定,再使用cvStereoCalibrate()函数进行立体标定。
标定结果如下:
对比发现,两者的标定结果差距并不大,opencv标定的稳定性也可以。
opencv的优势在于多次标定比较快捷,而且标定的结果可以直接用于后续的立体校正、立体匹配中。
matlab的优势在于可以显示重投影误差、3D效果图等,而且可以单张图片单独使用不同的窗口标定等等。
附matlab标定的立体效果图一张。
(ps:可通过平移矩阵的值来判断标定结果的正确性,比如我的相机基线长度150mm,棋盘格尺寸20mm
标定得到的平移矩阵的值为149.36,比较精确,差不多跟基线长度相等了)
本文对比了使用Matlab与OpenCV进行相机标定的过程与结果。Matlab标定过程繁琐但稳定,而OpenCV则更为快捷且直接支持后续立体校正等功能。通过平移矩阵值验证了标定的准确性。
1200

被折叠的 条评论
为什么被折叠?



