5

openCV と python を使用して 3D とステレオ カメラのキャリブレーションを行う方法を学ぼうとしています。8x6 のチェス盤 (7x5 の内角) の 3 つのカメラ ビューを使用して、正常にcv.calibrateCamera()動作するようになりましたが、cv2 を使用すると完全に動かなくなります。ステップの 1 つは、チェス盤のコーナーを見つけることです。cv.findChessboardCorners()コーナーをポイントのリストとして返すのに対し、cv2 は numpy 配列を使用し、ポイントを (35,1,2) numpy 配列として返します。cv2. calibrationCamera() のパラメータはobject_pointsimage_points、およびimage_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
4

1 に答える 1

5

ポイントは、行列形式 (N,2) および (N,3) の float32 である必要があります。次の方法で float32 に変換できます。

points32 = np.array(points,dtype=np.float32) 
于 2012-11-01T18:56:23.947 に答える