您好,在学习双目测距时,看到您的文章,想自己复现。 但在复现过程中发现
remap(grayImageL, rectifyImageL, mapLx, mapLy, INTER_LINEAR);
remap(grayImageR, rectifyImageR, mapRx, mapRy, INTER_LINEAR);
在这一步后,双目摄像头的右摄图像向左上方大幅偏移,如图
导致接下来的操作无法进行。
因为刚接触这类知识,不清楚哪里出了问题。有在怀疑是不是我在matlab标定获得的数据错误,或者是转换错误。
matlab标定导出的.mat文件 放在csdn中了,https://download.csdn.net/download/qq_43799658/85048615
劳烦您查阅,
内参stereoParams.CameraParameters1.IntrinsicMatrix
5367.29542245590 1.07917572769490 812.825267243678
0 5355.41546908377 388.910270667844
0 0 1
畸变参数
径向stereoParams.CameraParameters1.RadialDistortion k1 k2 k3
-0.390513414343187 3.45914615104448
切向stereoParams.CameraParameters1.TangentialDistortion p1 p2
-0.00460688272624458 0.000861374024645955
摄像头右
内参stereoParams.CameraParameters2.IntrinsicMatrix
5377.90256064511 -7.99009934086790 906.364412324312
0 5367.27353490545 502.664169567161
0 0 1
畸变参数
径向stereoParams.CameraParameters2.RadialDistortion k1 k2 k3
-0.224587351975291 -15.8944396859647
切向stereoParams.CameraParameters2.TangentialDistortion p1 p2
-0.00637152937193855 -0.000282521472169868
stereoParams.TranslationOfCamera2
-62.0858270469853 0.279762076655359 -1.95098955578726
stereoParams.RotationOfCamera2
0.999971481588594 -0.000863736248290349 0.00750266414050556
0.000790662805731260 0.999952279973393 0.00973717763735614
-0.00751071646645457 -0.00973096787103856 0.999924445847012
这是我自己转换后,适用于opencv的数据。 因为刚接触机器视觉不久,希望前辈能给我指点迷津,明示问题所在,恳求给出更改建议!谢谢!
首先我们需要标定板,标定板可以通过打印棋盘图再粘到平整的板上。注意棋盘角点数量尽可能多,里我使用的是7 X 9个角点,每个方格的尺寸是2.50cmX 2.50cm。在OpenCV中调用findChessboardCorners()函数找到棋盘角点信息,再使用drawChessboardCorners()函数画出角点,调用cornerSubPix()函数得到棋盘角点的亚像素坐标,最后使用stereoCalibrate()函数进行双目标定,得出两个摄像头。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。