有人知道这个 opencv 错误是怎么回事吗?
cv2.error: /home/desktop/OpenCV/opencv/modules/core/src/matrix.cpp:2294:
error: (-215) d == 2 && (sizes[0] == 1 || sizes[1] == 1 ||
sizes[0]*sizes[1] == 0) in function create
引发它的行代码是:
rvecs, tvecs, inliers = cv2.solvePnPRansac(objp, corners2, cameraMatrix, dist)
我一步步遵循本教程: http://docs.opencv.org/master/dc/dbb/tutorial_py_calibration.html
似乎 cameraMatrix
不正确,但为什么?
cameraMatrix
看起来像这样,并且看起来就像它应该的那样(参见 here ):
[[ 535.99484574, 0. , 334.33388272],
[ 0. , 535.99541504, 239.81116973],
[ 0. , 0. , 1. ]]
来自教程: cameraMatrix – 输入相机矩阵
最佳答案
我认为你的相机矩阵没问题。
该错误可能是由objp或角引起的。
objp 必须是对象坐标空间中的对象点数组,3xN/Nx3 1 channel 或 1xN/Nx1 3 channel ,其中 N 是点的数量。 cv::Point3f 的 std::vector 也可以传递到这里。
corners必须是相应图像点的数组,2xN/Nx2 1 channel 或1xN/Nx1 2 channel ,其中N是点的数量。 cv::Point2f 的 std::vector 也可以传递到这里。
关于python - OpenCV 误差校准教程 (solvePnPRansac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30271556/