Opencv拼接图像导致错误

时间:2016-05-26 05:11:07

标签: opencv

我制作Image Stitcher合并了10张图像(或更多)。

合并图像似乎是正确的,但这个结果有一些问题。结果不完美,它有黑色区域。

这是输出

enter image description here

为什么会出现这个问题?当我运行这个程序时,它使用了大量的cpu和内存,this是否与问题有关?

+)用于合并的图像是2880 * 2880

+)这是我的代码

QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize)
{
    QUrl url(id);
    QString file = url.toLocalFile();
    QString queryStr = url.query();
    QUrlQuery query(queryStr);

    Mat pano;
    Stitcher stitcher = Stitcher::createDefault(true);
    stitcher.setFeaturesFinder(makePtr<detail::SurfFeaturesFinder>(100));

    vector<Mat> imgs;
    foreach (auto node, query.queryItems()) {
        if(node.first == "src") {
            imgs.push_back(cv::imread(node.second.remove(0,7).toStdString()));
        } else if(node.first == "hessian") {
            //stitcher.setFeaturesFinder(makePtr<detail::SurfFeaturesFinder>(node.second.toInt()));
            stitcher.setFeaturesFinder(makePtr<detail::SurfFeaturesFinder>(100));  
        }
    }
    Stitcher::Status status = stitcher.stitch(imgs, pano);
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << status << endl;
        return QImage();
    }
    return cvMatToQImage(pano);

}

+)我尝试缩小图片size(2880*2880->256*256),但Stitcher出现同样的问题。

0 个答案:

没有答案