使用python进行cv2.cameraCalibration

时间:2012-10-07 21:19:01

标签: python opencv python-2.7

我正在尝试学习如何使用openCV和python进行3D和立体相机校准。使用8x6棋盘的3个摄像机视图(7x5内角),我能够使cv.calibrateCamera()正常工作,但在使用cv2时完全卡住了。 其中一个步骤是找到棋盘角落。尽管cv.findChessboardCorners()将角点作为点列表返回,但cv2使用numpy数组,并将这些点作为(35,1,2)numpy数组返回。 cv2.calibrateCamera()的参数是object_pointsimage_pointsimage_size。我在(3,35,3) numpy数组中提供对象点,并在(3,35,2) numpy数组中提供图像点。图片大小为(1632, 1224)。谁能告诉我这是什么问题?我得到的错误不是很有用:

Traceback (most recent call last):
  File "H:/pyCV/locv_book/ch11/calCamera2a.py", line 46, in <module>
  cv2.calibrateCamera(opts,ipts,size)
error: ..\..\..\src\opencv\modules\calib3d\src\calibration.cpp:3173: error: (-215) ni >= 0

1 个答案:

答案 0 :(得分:5)

点需要是float32,矩阵形式(N,2)和(N,3)。你可以这样转换为float32:

points32 = np.array(points,dtype=np.float32)