0

cv2.solvePnPOpenCV から呼び出される関数に問題があります。この関数は、チェス盤の姿勢推定を取得するために使用されます。次のコードの後、エラーが発生します。

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: アンパックするのに十分な値がありません (期待される 4、取得した 3)

4

1 に答える 1