大家好,我一直在用Python和OpenCV对计算机视觉进行了深入的研究,并试图校准我买的两台摄像机,以便进行一些三维立体重建,但我有一些问题。在
{我打算分别校准这两个摄像机。在
随着单摄像机的校准,一切似乎都在正常工作,我得到了一个非常低的预测误差,据我所知,矩阵似乎看起来不错。这里我留下单摄像机校准的结果。在
cameraMatrix1和distCoeffs1:
[[ 951.3607329 0. 298.74117671]
[ 0. 954.23088299 219.20548594]
[ 0. 0. 1. ]]
[[ -1.07320015e-01 -5.56147908e-01 -1.13339913e-03 1.85969704e-03
2.24131322e+00]]
cameraMatrix2和distCoeffs2:
^{pr2}$因此,在完成这些操作之后,我执行以下操作(我修复了从以前的校准中了解到的内部函数):
stereocalibration_criteria = (cv2.TERM_CRITERIA_MAX_ITER + cv2.TERM_CRITERIA_EPS, 100, 1e-5)
stereocalibration_flags = cv2.CALIB_FIX_INTRINSIC
stereocalibration_retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(objpoints,imgpoints_left,imgpoints_right,cameraMatrix1,distCoeffs1,cameraMatrix2,distCoeffs2,gray_left.shape[::-1],criteria = stereocalibration_criteria, flags = stereocalibration_flags)
我试过几次改变立体校准的标志,切换矩阵,看看我是不是在顺序上搞错了,这很重要,但我还是被这个问题挡住了,得到了大约30次的回复(之后我试图纠正图像,结果当然是一场灾难)。在
我也尝试过使用一些来自互联网的校准图像,我确实得到了相同的结果,所以我假设问题不在于我拍摄的图像。如果有人能给我指出正确的方向,或者知道会是什么,那将是非常欢迎的。在
结果是我用的图像顺序对左右相机是不一样的。。。我在用
当我应该使用更像:
^{pr2}$这是因为glob得到的图像显然是随机的,所以我试图匹配错误的图像。现在我终于得到了0.4的回归,这还不算太糟。在
相关问题 更多 >
编程相关推荐