Android 4.3/4.4 的相机应用程序在“球体模式”下可以将不同方向的照片拼接成一个球体全景,质量非常好。
结果说明:
我要做的是为 iPad 实现一个具有完全相同功能的应用程序。
我尝试了两种方法:
OpenCV 2.4.8 提供了一个图像拼接管道,乍一看似乎很有前途。但是,它有两个问题:
管道处理无序输入照片,据我所知它只使用图像特征匹配来定位照片之间的几何关系,当图像特征提取失败时管道表现不佳空白照片(如白墙,蓝天) ).然而,iPad 可以提供每张照片的任意空间方向数据(虽然有噪音),但我不知道如何在 OpenCV 拼接管道中利用这些数据。
我找不到像 PhotoSphere 使用此管道那样生成 180x360 度全景图的方法。向管道提供各个方向的照片只会产生具有弯曲图像边界的大全景。
我也尝试了 PanoTools/Hugin 库,虽然这个库支持预定义的照片方向,但结果很差而且不稳定。此外,我尝试在 Google Play 上使用Focal(beta) 应用,它的球体模式也是基于 PanoTools/Hugin,他们的结果(在球体模式下)似乎并不比我们的好。
我的问题:
您可以在此处查看 Google 的相机应用程序源代码:
https://android.googlesource.com/platform/packages/apps/Camera/+refs