ここで、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 の初期化で何か?
前もって感謝します