ValueError:解压opencv-python的值太多了

时间:2017-06-22 14:12:31

标签: python opencv

使用opencv-python进行跟踪项目。我在调用estiamte单标记时遇到此错误。想法?

cv2版本3.2.0-dev

python版本2.7.12

Traceback (most recent call last):
File "test_aruco_detect.py", line 53, in <module>
rvecs , tvecs = aruco.estimatePoseSingleMarkers(corners, 0.1765, cameraMatrix, distCoeffs)
ValueError: too many values to unpack

代码:

import numpy as np
import cv2
import cv2.aruco as aruco

with np.load('/home/odroid/camera_calibration/testfile.npz') as X:
    cameraMatrix,distCoeffs = [X[i] for i in ('arr_0','arr_1')]


cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
   #print(frame.shape) #480x640
    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    aruco_dict = aruco.Dictionary_get(aruco.DICT_6X6_250)
    parameters =  aruco.DetectorParameters_create()


    #lists of ids and the corners beloning to each id
corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)


if ids != None: #if atleast one id is detected
    gray = aruco.drawDetectedMarkers(gray, corners,ids)
    rvecs , tvecs = aruco.estimatePoseSingleMarkers(corners, 0.1765, cameraMatrix, distCoeffs)
    aruco.drawAxis(gray, cameraMatrix, distCoeffs, rvecs, tvecs)


    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break


cap.release()
cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:1)

rvecs , tvecs, _objPoints = aruco.estimatePoseSingleMarkers(...) 

编辑:

根据文档(http://docs.opencv.org/trunk/d9/d6a/group__aruco.html#ga84dd2e88f3e8c3255eb78e0f79571bd1)我错过了_objPoints