我制作Image Stitcher
合并了10张图像(或更多)。
合并图像似乎是正确的,但这个结果有一些问题。结果不完美,它有黑色区域。
这是输出
为什么会出现这个问题?当我运行这个程序时,它使用了大量的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
出现同样的问题。