【发布时间】:2017-08-09 12:07:06
【问题描述】:
我正在使用 OpenCV 进行立体校准。我已经对各个相机进行了校准。对于以下代码sn -p:
ret, rot, trans, ess, fund = cv2.stereoCalibrate(objectPoints=objpoints,
imagePoints1=imgpoints1,
imagePoints2=imgpoints2,
cameraMatrix1=mtx1,
distCoeffs1=dist1,
cameraMatrix2=mtx2,
distCoeffs2=dist2,
imageSize=gray1.shape[::-1],
flags=cv2.CALIB_FIX_INTRINSIC)
我得到错误:
Traceback (most recent call last):
File "stereoCalibration.py", line 94, in <module>
flags=cv2.CALIB_FIX_INTRINSIC)
ValueError: too many values to unpack (expected 5)
但我已经在左侧有五个变量。根据这个documentation,当flags=cv2.CALIB_FIX_INTRINSIC时,函数cv2.stereoCalibrate()应该返回5个值。
Python: cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, flags[, criteria]]]]]]) → retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F
和
CV_CALIB_FIX_INTRINSIC 修复 cameraMatrix?和 distCoeffs?以便只估计 R、T、E 和 F 矩阵。
PS:我找到了这个answer,但它不适用于cv2。
【问题讨论】:
-
您可以将返回的
cv2.stereoCalibrate()值分配给list并检查值的数量吗?这样你就可以确认了。 -
@Anil_M 谢谢这工作。看起来这是返回 9 个值。但他的文档说明了其他内容。
-
@harshatech2012,我添加了我的回复作为答案,你介意接受吗?这样问题就不会悬而未决。
标签: python opencv computer-vision stereo-3d