5
我想学习如何使用openCV和python进行3D和立体相机校准。使用8x6棋盘(7x5内角)的3个摄像头视图,我能够得到cv.calibrateCamera()
工作正常,但当我使用cv2时完全卡住。 其中一个步骤是找到棋盘角落。 cv.findChessboardCorners()
返回角点列表,cv2使用numpy数组,并将点作为(35,1,2)numpy数组返回。 cv2.calibrateCamera()的参数是object_points
,image_points
和image_size
。我正在提供(3,35,3)
numpy数组中的对象点以及(3,35,2)
numpy数组中的图像点。图片大小为(1632, 1224)
。有人可以告诉我问题是什么吗?我得到的错误是不是非常有用:使用Python的cv2.cameraCalibration
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
谢谢!这个错误让我无法接受! – shinjin
在2015年使用OpenCV 2.4.10发现了这个问题。我在cv :: collectCalibrationData函数中得到了类似的“cv2.error:... calibration.cpp:3169:error:(-215)ni> = 0”。解决方法是将两个阵列分别重构为(1,N,3)和(1,N,2),分别用于对象和图像点。 – sastanin