OpenCV - 3.0 相机校准给出错误



我以前使用OpenCV-2.4.10进行相机校准。现在我已经安装了OpenCV-3.0.0并运行相同的代码。这是代码的链接。

使用以前的版本,它工作正常,但OpenCV-3.0.0它给出了错误。

类型错误:找不到必需的参数"cameraMatrix"(位置 4)

谁能告诉我如何解决这个问题?

如果我添加cameraMatrix(Pos4)和distcoeff(Pos5),它会给出一个错误:

类型错误:函数正好需要 2 个参数(给定 3 个)

我得到了完全相同的错误

TypeError: function takes exactly 2 arguments (3 given) 

但事实证明,在转换为灰度之前,我将图像的形状作为 ImageSize 传递,因此 3 个值而不是 2 个值的元组,OpenCV 有时会出现令人困惑的错误。

我有同样的错误,你必须传递相机的宽度和高度,在我的情况下,我使用了这个代码行:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(_3d_points, 
                                                   _2d_points, 
                                                   (im.shape[1], im.shape[0]), 
                                                   None,
                                                   None)

这里im.shape[1]是宽度,im.shape[0]是高度,基本上返回图像的大小,还要确保图像转换为灰度。

在我的情况下,将图像转换为灰度并添加上述代码行后,帮助我获得了 o/p。

这也

难倒了我,但现在你需要为每个传递None

retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(objectPoints,imagePoints, imageSize, None, None)

http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.html#calibration

试试这个:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(
    objpoints, imgpoints, frame.shape[::-1][1:3], None, None
)

frame.shape 是您用于校准的 img 大小

相关内容

  • 没有找到相关文章

最新更新