Ich verwende Python 2.7 und opencv 3.0.0. Ich versuche, eine Pose Schätzung auf einem Live-Video zu machen. Also habe ich die calibrate.py von opencv verwendet. es funktioniert gut. In diesem Programm habe ich am Ende Zeilen hinzugefügt, um die Informationen zu behandeln, um die Achse zu positionieren. Ich benutzte dieses: http://docs.opencv.org/master/d7/d53/tutorial_py_pose.html#gsc.tab=0Fehler bei der Verwendung der Funktion "solvePnPRansac"
Auf der Linie mit solvePnPRansac Funktion schrieb ich dieses stattdessen: _, rvecs, tvecs, inliers = cv2.solvePnPRansac(obj_points[0], corners2, camera_matrix, dist_coefs)
, das am Anfang der Linie hinzufügt.
Ich habe diesen Fehler angezeigt!
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
Ich verstehe es überhaupt nicht!
Kann mir jemand helfen?
Hier ist mein Code, um das Video zu behandeln:
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()
finden, haben Sie eine Lösung finden? –