Opencv缝合图像结果错误
我制作了Opencv缝合图像结果错误,opencv,Opencv,我制作了图像缝合器,它可以合并10幅(或更多)图像 合并图像似乎是正确的,但这个结果有一些问题。结果不是很完美,它有黑色区域 这是输出 为什么会出现这个问题?当我运行这个程序时,它使用了大量的cpu和内存,这与问题有关吗 +)用于合并的图像为2880*2880 +)这是我的密码 QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) { QUrl url(id);
图像缝合器
,它可以合并10幅(或更多)图像
合并图像似乎是正确的,但这个结果有一些问题。结果不是很完美,它有黑色区域
这是输出
为什么会出现这个问题?当我运行这个程序时,它使用了大量的cpu和内存,这与问题有关吗
+)用于合并的图像为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);
}
QImage requestImage(常量QString&id,QSize*size,常量QSize&requestedSize)
{
QUrl(id);
QString file=url.toLocalFile();
QString queryStr=url.query();
QUrlQuery查询(queryStr);
马特帕诺;
Stitcher-Stitcher=Stitcher::createDefault(true);
缝合器设置特征指示器(makePtr(100));
向量imgs;
foreach(自动节点,query.queryItems()){
如果(node.first==“src”){
imgs.push_back(cv::imread(node.second.remove(0,7.toStdString());
}else if(node.first==“hessian”){
//setFeaturesFinder(makePtr(node.second.toInt());
缝合器设置特征指示器(makePtr(100));
}
}
缝合器::状态状态=缝合器缝合(imgs,pano);
如果(状态!=缝合器::确定)
{
无法添加一些代码。问题出在哪里?您期望的结果是什么?如果您认为图像大小有问题,请尝试缩小它们。我编辑了这篇文章,我尝试缩小图像大小,但出现了相同的错误。请添加一些代码。问题出在哪里?您期望的结果是什么?如果您认为有问题图像大小有问题,请尝试缩小。我编辑了这篇文章,尝试缩小图像大小,但出现了相同的错误。。