OpenCV缝合器抛出调整大小错误

OpenCV Stitcher throwing resize error

本文关键字:调整 错误 OpenCV      更新时间:2023-10-16

我正试图使用OpenCV缝合器编写代码,将一组图像缝合在一起,并不断出现此错误。

OpenCV错误:断言失败(dsize.area()>0||(inv_scale_x>0&inv_scale_y>0))在cv::resize,file中C: \Users\car4p\Downloads\opencv-master\opencv-mater\modules\imgproc\src\imgwarp.cpp,3230线

我四处搜索,发现阅读图像没有问题,图像显示良好,并且有0多个列。我相信输出中有一个错误,但不知道如何修复。如果有人以前处理过这个问题或知道解决方案,我们将不胜感激。

我用C++编写,使用OpenCV 3.1和Visual Studio 2015。

读取图像的代码

imgs.push_back(imread("testerer1.jpg"));
imgs.push_back(imread("testerer2.jpg"));
imgs.push_back(imread("testerer3.jpg"));    
imgs.push_back(imread("testerer4.jpg"));

图像拼接编码

Mat stitchImages(vector<Mat> imgs) {
    Stitcher stitchs;
    vector<Mat> stitchedImg;
    stitchs.createDefault(false);
    Stitcher::Status status = stitchs.stitch(imgs, stitchedImg);
    return stitchedImg[0];
}

sticher类中的第二个参数是Mat(ouputarray),而不是向量<Mat>

参见http://docs.opencv.org/master/d2/d8d/classcv_1_1Stitcher.html#details