我正在尝试学习如何使用openCV和python进行3D和立体相机校准。使用8x6棋盘(7x5内角)的3个摄像头视图,我可以让cv.calibrateCamera()
正常工作,但当我使用cv2时,我完全卡住了。
其中一个步骤是找到棋盘的角。而cv.findChessboardCorners()
以点列表的形式返回角点,而cv2使用numpy数组,并以(35,1,2)numpy数组的形式返回这些点。calibrateCamera()的参数是object_points
、image_points
和{(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
点需要是float32,以矩阵形式(N,2)和(N,3)。您可以这样转换为float32:
相关问题 更多 >
编程相关推荐