在iOS中有很多方法和库可以显示全景图片,虽然内置相机中有全景功能,但无法在应用程序中使用它。
我可以使用任何库来捕捉全景图像吗?
谢谢!
答案 0 :(得分:34)
These people可能会向您出售c ++库的许可证。他们的代码进入了App Store中提供的出色的Autostich应用程序。
自动调整基于SIFT图像特征检测。 openCv c++ library中提供了SIFT和许多其他技术。该站点提供预构建的iOS框架。
更新
OpenCV有一个Stitcher
类,包含大量文档......
“高级图像拼接器。可以在不了解整个拼接管道的情况下使用此类。但是,为了能够实现更高的拼接稳定性和最终图像的质量,建议至少熟悉该理论(见Stitching pipline)。“
更新2
如果您之前没有使用过openCV,那么第一个障碍是将库编译并安装到您的项目中。可能很棘手,请参阅我的问题和答案here(安装和运行openCV)和here(如何使用示例github项目将c ++代码与objective-c分开)。
当你使用openCV时,这应该是开始查询的最快方式:
Stitcher::stitch(InputArray images, OutputArray pano)
参数:
图像 - 输入图像。
全景 - 最后的全景。
然后加快速度 - 如果你有它们 - 提供感兴趣的区域(指示照片重叠的地方)
Stitcher::stitch(InputArray images, const std::vector<std::vector<Rect>>& rois, OutputArray pano)
您可以深入了解拼接管道以优化流程的许多细节,但这应该足以让您入门。
如果您查看openCV发行版的samples / cpp文件夹,您会看到几个拼接示例,stitching.cpp
和stitching_detailed.cpp
。
要提供输入图像,您需要与相机连接并设计一个不错的用户界面,以帮助用户拍摄正确类型的图片(例如,具有良好的重叠)。
如果你想看一个使用openCV的现有项目,here is one for android声称要做你正在做的事情 - 不同的平台,但原则是相同的(使用java接口进入相同的库)。请特别注意PanoActivity.java。
更新3
我上传了a very basic sample to github。如果没有任何优化或调整,我会对它的工作表现给我留下深刻的印象。它在我的github项目中缝合样本照片几乎和Autostitch应用程序一样。
更新4 一段时间后...... 我制作了一个新的示例项目updated for use with Swift and Cocoapods