python - OpenCV 误差校准教程 (solvePnPRansac)

标签 python computer-vision camera-calibration opencv3.0 pose-estimation

有人知道这个 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 – 输入相机矩阵

cameraMatrix – Input camera matrix =

最佳答案

我认为你的相机矩阵没问题。

该错误可能是由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/

相关文章:

image-processing - RGB 或 HSV 尺度上的 k 均值聚类?

opencv - 相机系统的真正起源在哪里?

python - 使用 iminuit 求解 n 维优化问题

opencv - 指尖检测和跟踪

python - 将 256x256(不是 299x299)的图像大小输入 Inception v3 模型(PyTorch)并且有效吗?

opencv - 如何将以像素为单位的焦距转换为毫米 (mm)?

python - Python OpenCV检测棋盘

Python 数组求和与 MATLAB

Python pandas 引用带有 "/"的列

python - 将 pdf 文件转换为 base64binary 以在 Biztalk XML 输入文件中使用