gpt4 book ai didi

python - Python:solvePnP()没有足够的值可解包?

转载 作者:行者123 更新时间:2023-12-02 17:09:39 26 4
gpt4 key购买 nike

我在使用OpenCV中的cv2.solvePnP函数时遇到问题。此功能用于获取棋盘的姿势估计。在以下代码之后,我得到一个错误:

for fname in glob.glob('Images/Calibragem/img1*.jpg'):
img = cv2.imread(fname)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, (9,6), None)

if ret==True:

corners2=cv2.cornerSubPix(gray,corners,(11,11),(-1,-1), criteria)

#finds the vectors of rotation and translation
ret, rotationVectors, translationVectors, inliers =
cv2.solvePnP(objp, corners2, matrix, distortion)
#projects the 3D points in the image

imgpts,jac = cv2.projectPoints(axis,rotationVectors,translationVectors,matrix,distortion)

imgAxis=drawAxis(img,corners2,imgpts)
cv2.imshow('imgAxis', imgAxis)
cv2.imwrite('imgAxis.png',imgAxis)

错误提示:

ret, rotationVectors, translationVectors, inliers = cv2.solvePnP(objp, corners2, matrix, distortion) ValueError: not enough values to unpack (expected 4, got 3)

最佳答案

opencv2 documentation:

 Python: cv2.solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) → retval, rvec, tvec¶

因此,只有3个值需要解压。
因此,您应该能够解决:
ret, rotationVectors, translationVectors = 
cv2.solvePnP(objp, corners2, matrix, distortion)

由于solvePnP()仅返回 retvalrvectvec

关于python - Python:solvePnP()没有足够的值可解包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com