gpt4 book ai didi

c++ - OpenCV 拼接器模式 :SCANS crashes with certain properties

转载 作者:行者123 更新时间:2023-11-30 04:56:10 25 4
gpt4 key购买 nike

我正在尝试设置平面图像拼接应用程序,但如果我在 PlaneWarper 下方提供拼接器,应用程序会崩溃并出现错误访问异常。我还了解到 ORB 特征查找最适合平面拼接,但使用 OrbFeatureFinder 也会导致应用程序在拼接功能中崩溃。我知道我并不完全了解拼接管道的工作原理,所以如果有人能帮助我理解这里的问题,我将不胜感激。

vector<Mat> imgs;

cv::Mat stitch (vector<Mat>& images)
{
imgs = images;

Mat pano;
Ptr<Stitcher> stitcher = Stitcher::create(Stitcher::SCANS, true);
stitcher->setPanoConfidenceThresh(0.8f);
stitcher->setFeaturesMatcher(makePtr<cv::detail::AffineBestOf2NearestMatcher>(true, true, 0.8f));
Stitcher::Status status = stitcher->stitch(imgs, pano);

if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
//return 0;
}
return pano;
}

我在我的 Mac 上测试了带有 Orb 特征发现和平面变形的 stitching_detailed 程序,它给了我很好的结果,所以我尝试在 iOS 应用程序界面中运行 stitching_detailed.cpp,但这会导致所有类型的崩溃,所以我现在正在尝试这种方式。

拼接效果很好,但到处都有一些失真,使用 ORB 特征查找和平面变形在我的 Mac 上消除了它。

最佳答案

我只是粗略地看了一眼,但我怀疑您的问题在于 OpenCV 的结构。在 Mac 上运行时,它可以通过 OpenCL 使用 GPU。但是,在 iOS 设备上运行时,它无法使用 OpenCL,因为它不受支持。因此,它必须使用此处找到的基于 CPU 的实现。

https://github.com/opencv/opencv/blob/808ba552c532408bddd5fe51784cf4209296448a/modules/stitching/src/stitcher.cpp

您会看到变量 try_use_gpu 被广泛使用,根据它的配置和运行方式,这很可能是罪魁祸首。虽然我不能肯定你的情况,但我之前发现有 iOS 特定功能被破坏,或者根本不存在。话虽如此,您可能想要提交项目问题,希望有人能够解决并修复它。

关于c++ - OpenCV 拼接器模式 :SCANS crashes with certain properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52710938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com