使用solvePnPRansac函数时出错

Bap*_*dié 5 python estimation opencv

我正在使用Python 2.7和opencv 3.0.0.我正在尝试对直播视频进行姿势估计.所以我使用opencv给出的calibrate.py.它运作良好.在这个程序中,我在末尾添加了处理信息以构成轴.我用过这个:http://docs.opencv.org/master/d7/d53/tutorial_py_pose.html#gsc.tab=0

在使用solvePnPRansac函数的行上,我写了这个:在行的开头_, rvecs, tvecs, inliers = cv2.solvePnPRansac(obj_points[0], corners2, camera_matrix, dist_coefs)添加_,.

我出现了这个错误!

error: C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\core\src\matrix.cpp:2294: error: (-215) d == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0) in function cv::_OutputArray::create
Run Code Online (Sandbox Code Playgroud)

我根本不明白!

有人能帮我吗 ?

以下是我处理视频的代码:

cap = cv2.VideoCapture(0)

while(1):


    # Take each frame
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

    # Find the chess board corners
    ret, corners = cv2.findChessboardCorners(gray, (6,5),None)

    if ret:

        term = ( cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_COUNT, 30, 0.1 )

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


        _, rvecs, tvecs, inliers = cv2.solvePnPRansac(obj_points[0], corners2, camera_matrix, dist_coefs)

        imgpts, jac = cv2.projectPoints(axis, rvecs, tvecs, camera_matrix, dist_coefs)


        frame = draw(frame,corners2,imgpts)

    cv2.imshow('img',frame)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

小智 2

我有同样的问题。我使用solvePnP而不是solvePnPRansac,它工作得很好。我猜想 python 中的solvePnPRansac 有一个错误。