【问题标题】:OpenCV Stitcher returns ERR_NEED_MORE_IMGSOpenCV Stitcher 返回 ERR_NEED_MORE_IMGS
【发布时间】:2012-09-19 15:05:28
【问题描述】:

我在这里遇到了一个问题,使用 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。 进一步通过estimateTransform() 两次调用函数matchImages() 来检查成员imgs_。这个是从 InputArray 派生的,并且(结果) size( ) (of images) 为 0。

这导致提到的枚举。

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

提前致谢

【问题讨论】:

  • imgs.size() 在调用stitch 之前返回什么?另外,您是否有任何理由从 IplImage 转换并且您不直接使用 imread 读取 Mat 中的图像?
  • 你能贴出left.jpgright.jpg 的图片吗?我想尝试在本地重现。
  • @solvingPuzzles:我得到了相同的状态,我使用了这篇文章中的图片:link

标签: opencv


【解决方案1】:

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

【讨论】:

  • 嗨,Hwan,欢迎来到 Stack Overflow。如果您可以用更多信息来证实您的答案,说明为什么会出现这种情况,以及它如何应用于该问题,则最好是这样。此外,参考资料(如果适用)对提高答案的质量大有帮助。尝试采取这些步骤来改进您的答案 - 这真的很有帮助!要了解有关 Stack Overflow 的更多信息并在此处工作,请访问 About 页面。谢谢!
猜你喜欢
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2012-10-24
  • 1970-01-01
相关资源
最近更新 更多