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 调用的函数时,我确实认识到以下不确定性:

缝合()的第一个参数是一个名为图像的 cv::InputArray。仔细看看它会发现,参数 sz.width 和 sz.height 是 0。进一步在运行估计转换()两次时,函数 matchImages()被调用,其中成员 imgs_ 被检查。这个是从 InputArray 派生的,并且(导致)size()(图像)为 0。

这导致提到的枚举。

我究竟做错了什么?关于缝合器或 cv::Mat 的初始化?

提前致谢

4

1 回答 1

0

我认为当您使用类似的图像时会发生这种情况。当您使用提取的特征点数量较少的图像时,它确实如此。

于 2013-09-05T11:58:53.510 回答