2016-03-22 22 views
1

Visual Studioで関数cvTriangulatePoints(doc:http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html参照)を使用しました。 エラー:入力引数のサイズが一致しません<ポイント数(N = 1)は、 cvTriangulatePointsで同じである必要があります。 対応するポイントが2つ以上あるcvTriangulatePointsを初めて使用します。ポイントを追加することは可能ですか、別のエラーがありますか? N(チャネル数)の値を1から2に上昇さエラー:入力引数のサイズが一致しません。 cvTriangulatePoints

CvMat* projMatr1; 
CvMat* projMatr2; 
CvMat* projPoints1; 
CvMat* projPoints2; 
CvMat* points4D; 
int N = 2; 

projMatr1 = cvCreateMat(3, 4, CV_64FC1); 
projMatr2 = cvCreateMat(3, 4, CV_64FC1); 
projPoints1 = cvCreateMat(2, N, CV_64FC1); 
projPoints2 = cvCreateMat(2, N, CV_64FC1); 
points4D = cvCreateMat(4, N, CV_64FC1); 
// I fill the matrices with the opencv function cvSet2D() 
cvTriangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D); 

答えて

0

は、cvCreateMatにおける最後の引数はまたarguementのCxの部分を指す

CV_64FC1 to CV_64FC2. 
    ^  ^

projPoints1 = cvCreateMat(2, N, CV_64FC2); 
projPoints2 = cvCreateMat(2, N, CV_64FC2); 
points4D = cvCreateMat(4, N, CV_64FC2); 

から変更されなければなりませんチャネル数

さらに一般的には、Matオブジェクトのタイプ名は複数の部分で構成されています。ここでCV_64FC1ための例は次のとおり

  • CV_から
  • 64ライブラリプレフィックス - ベースの行列要素あたりのビットの数(グレースケール画像又はBGR画像における単色要素で、例えば、画素値)
  • F - タイプ基本要素。この場合には、フロートのためFですが、またS(署名)、またはU(符号なし)
  • Cxすることができます - あなたは...C2
    ... する必要がありますため、画像

...Cxに含まチャンネル数ここでfrom here

CvTypeについての詳細です。

+0

ありがとう、それは今動作します。 – o9090

関連する問題