Python OpenCV-3.0摄像机校准出现错误

Python OpenCV-3.0摄像机校准出现错误,python,opencv,camera-calibration,Python,Opencv,Camera Calibration,我以前使用OpenCV-2.4.10进行摄像机校准。现在我已经安装了OpenCV-3.0.0并运行了相同的代码。是代码的链接 在以前的版本中,它工作正常,但在OpenCV-3.0.0中,它给出了一个错误 TypeError:未找到必需的参数“cameraMatrix”(位置4) 谁能告诉我怎么解决这个问题吗 如果我添加cameraMatrix(Pos4)和distcoeff(Pos5),它将给出一个错误: TypeError:函数只接受2个参数(给定3个) 这也难住了我,但现在你需要为每个人通过

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

在以前的版本中,它工作正常,但在
OpenCV-3.0.0
中,它给出了一个错误

TypeError:未找到必需的参数“cameraMatrix”(位置4)

谁能告诉我怎么解决这个问题吗

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

TypeError:函数只接受2个参数(给定3个)


这也难住了我,但现在你需要为每个人通过
None

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

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

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

我有相同的错误,您必须通过摄像头的宽度和高度,在我的情况下,我使用了以下代码行:

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。

我得到了完全相同的错误

TypeError: function takes exactly 2 arguments (3 given) 

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

不给出任何值并不能解决问题,仍然是相同的问题。您得到的错误到底是什么?如果你传递了两个
None
,那么你应该会得到一个与前一个不同的错误。我得到了完全相同的错误类型错误:函数只接受2个参数(给定3个),但结果是,在转换为灰度之前,我将图像的形状传递为ImageSize,因此是一个由3个值组成的元组,而不是2个值,OpenCV有时会出现令人困惑的错误。@Mehdi非常感谢您。这就解决了我的问题——仅仅是一些OpenCV函数的糟糕文档就让我毛骨悚然,但这些神秘的错误消息真的让我发火。@OpenCV中的rayryeng如果你被问及图像大小,它总是2D的,不管深度如何,它是(宽度,高度)的,例如(640480),与Numpy中的形状不同,它是(高度,宽度,通道)。这是因为底层C++通常需要CV::size对象。注:构造函数是(w,h)阶