OpenCV缝合器返回错误\u需要\u更多img

OpenCV缝合器返回错误\u需要\u更多img,opencv,Opencv,我这里有一个问题,使用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; i

我这里有一个问题,使用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 );
IplImage*pLeft,
*普里特;
pLeft=cvLoadImage(“left.jpg”);
pRight=cvLoadImage(“right.jpg”);
cv::Mat cvMatLeft(pLeft,true),
cvMatRight(pRight,true);
std::向量imgs;
imgs.向后推(cvMatLeft);
imgs.推回(CVA右侧);
cv::Mat Cvmotput;
cv::Stitcher myStitcher=cv::Stitcher::createDefault(true);
cv::Stitcher::Status myStatus=myStitcher.stitch(imgs、CVMA输出);
运行此代码时,我返回了enum ERR\u需要更多img。 当我调试OpenCV调用的函数时,我确实认识到以下不确定性:

stitch()的第一个参数是一个名为images的cv::InputArray。仔细看一看,参数sz.width和sz.height为0。 在两次运行estimateTransform()之后,在检查成员imgs_uu的位置调用函数matchImages()。这一个是从InputArray派生的,结果是图像的大小()为0

这将导致上述枚举

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


提前感谢

我想当你使用类似的图片时会出现这种情况。使用提取的特征点数量较少的图像时,确实如此。

调用stitch之前imgs.size()返回什么?另外,您是否有任何理由从IplImage转换而不使用imread直接读取Mat中的图像?您是否可以发布
left.jpg
right.jpg
图像?我想试着在本地复制它。@solvingPuzzles:我得到了相同的状态,我使用了本文中的图片:Hi Hwan,欢迎来到Stack Overflow。如果你能用更多的信息来证实你的答案,说明为什么会这样,以及它如何适用于这个问题,那是最好的。此外,参考资料(如果适用)对于提高答案的质量也有很大帮助。试着采取这些步骤来改进你的答案——这真的很有帮助!要了解有关堆栈溢出的更多信息,请访问页面。谢谢