3

ここで、OpenCV を使用した簡単なステッチング ツール テストで問題が発生しました。

これが私のコードです:

IplImage *pLeft,
         *pRight;
pLeft = cvLoadImage( "left.jpg" );
pRight = cvLoadImage( "right.jpg" );

cv::Mat cvMatLeft( pLeft, true ),
        cvMatRight( pRight, true );

std::vector<cv::Mat> imgs;
imgs.push_back( cvMatLeft );
imgs.push_back( cvMatRight );

cv::Mat cvMatOutput;

cv::Stitcher myStitcher = cv::Stitcher::createDefault( true );
cv::Stitcher::Status myStatus = myStitcher.stitch( imgs, cvMatOutput );

このコードの実行中に ERR_NEED_MORE_IMGS という列挙型が返されます。OpenCV によって呼び出される関数をデバッグすると、次の不確実性が認識されました。

Stitch( ) の最初の引数は、images という名前の cv::InputArray です。よく見ると、引数 sz.width と sz.height が 0 であることがわかります。さらに、timateTransform( ) を 2 回実行すると、関数 matchImages( ) が呼び出され、メンバー imgs_ がチェックされます。これは InputArray から派生したもので、(結果の) size( ) (画像の) は 0 です。

これは、言及された列挙型につながります。

私は何を間違っていますか?スティッチャーまたは cv::Mat の初期化で何か?

前もって感謝します

4

1 に答える 1

0

類似画像を使用した場合に発生すると思います。抽出された特徴点の数が少ない画像を使う場合もそうです。

于 2013-09-05T11:58:53.510 に答える