iphone - 在 iOS 6 中捕捉全景图的库

标签 iphone ios ios6 panoramas

<分区>

在 iOS 中有很多显示全景图片的方法和库,虽然内置相机中有全景功能,但无法在应用程序中使用它。

有没有我可以用来捕捉全景图像的库?

谢谢!

最佳答案

These people可能会向您出售 C++ 库的许可证。他们的代码进入了 App Store 中提供的出色的 Autostich 应用程序。

自动拼接基于 SIFT 图像特征检测。 openCv c++ library 中提供了 SIFT 和许多其他技术.该站点提供了预构建的 iOS 框架。

更新

OpenCV 有一个带有大量文档的 Stitcher 类...

OpenCV Stitching pipline

OpenCV Stitcher class

"High level image stitcher. It’s possible to use this class without being aware of the entire stitching pipeline. However, to be able to achieve higher stitching stability and quality of the final images at least being familiar with the theory is recommended (see Stitching pipline )."

更新 2

如果您以前没有使用过 openCV,那么第一个障碍就是将库编译并安装到您的项目中。可以取巧,看我的问答here (安装并运行 openCV)和 here (一个示例如何将 c++ 代码与 objective-c 分开,示例 github 项目)。

当您使用 openCV 时,这应该是开始查询的最快方式:

Stitcher::stitch(InputArray images, OutputArray pano)

参数:
图像——输入图像。
全景——最终全景。

然后加快它的速度 - 如果你有它们 - 提供感兴趣的矩形区域(指示照片重叠​​的地方)

Stitcher::stitch(InputArray images, const std::vector<std::vector<Rect>>& rois, OutputArray pano)  

您可以深入研究拼接管道以优化过程的许多细节,但这应该足以让您入门。

如果您查看 openCV 发行版的 samples/cpp 文件夹,您会看到几个拼接示例,stitching.cppstitching_detailed.cpp .

要提供输入图像,您需要连接相机并设计一个体面的用户界面来帮助用户拍摄正确类型的照片(例如,具有良好的重叠)。

如果您想使用 openCV 查看现有项目,here is one for android声称做你想做的事 - 不同的平台,但原则是相同的(在相同的库中使用 java 接口(interface))。特别看看PanoActivity.java .

更新 3
我上传了a very basic sample to github .在没有任何优化或调整的情况下,它的出色表现给我留下了深刻的印象。它拼接我的 github 项目中的示例照片几乎和 Autostitch 应用程序一样好。

更新 4 一段时间后... 我做了一个新的示例项目 updated for use with Swift and Cocoapods

关于iphone - 在 iOS 6 中捕捉全景图的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062932/

相关文章:

iphone - 删除图像文件并将其重新添加到我的 iOS4 应用程序包中时出现问题

ios - 如何从 URL 方案中检索参数值

ios - 调试和发布中的不同 URL -iOS

ios - 我的应用从 ios 6.0 切换到 5.0 时应该注意什么?

ios - iOS 6 上的长期后台任务执行

ios6 - 使用状态栏在 Xcode 4.5 iOS 6.0 中更改为横向

iphone - 动画期间的布局 subview ?

iphone - 为什么我的 iOS 分发签名身份被撤销?

iphone - 如何在Three20的AppDelegate中添加全局右栏按钮(UINavigationController)

ios - SwiftUI View 无需输入自动滚动到底部