私はopenCVとpythonを使って3Dとステレオカメラのキャリブレーションを行う方法を学ぼうとしています。 8x6チェス盤(7x5の内部コーナー)の3つのカメラビューを使用して、私はcv.calibrateCamera()
を正常に動作させることができましたが、私はcv2を使用すると完全に固執します。 手順の1つは、チェス盤のコーナーを見つけることです。 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)
です。誰が問題が何であるか教えていただけますか?私が手にエラーが非常に便利ではありません。cv2.cameraCalibration using python
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
OpenCV 2.4.10を使用して2015年にこの質問が見つかりました。私は同様の "cv2.error:... calibration.cpp:3169:error:(-215)ni> = 0を関数cv :: collectCalibrationData"で取得します。回避策は、オブジェクトとイメージポイントの両方の配列をそれぞれ(1、N、3)と(1、N、2)に整形することでした。 – sastanin