android 4.3/4.4上的相机应用程序在“sphere模式”下可以将不同方向的照片缝合成一个球形全景图,质量非常好。
结果说明:
http://i-cdn.phonearena.com/images/articles/73441-image/google-nexus-4-photo-sphere.jpg
http://www.studio8apps.com/wp-content/uploads/2013/05/glass_team_pano_resized.jpg
我要做的是为ipad实现一个功能完全相同的应用程序。
我尝试了两种方法:
开放式简历2.4.8
opencv 2.4.8提供了一个图像拼接管道,乍一看似乎非常有前途。然而,它有两个问题:
管道处理无序的输入照片,据我所知,它只使用图像特征匹配来定位照片之间的几何关系,当空白照片(如白色墙壁、蓝色天空)的图像特征提取失败时,管道性能较差。不过,ipad可以提供每张照片的任意空间方向数据(虽然有噪音),但我不知道如何在opencv缝合管道中利用这些数据。
我找不到一种方法来生成180x360度的全景图,就像photosphere使用这个管道所做的那样。向管道输送全方位照片只会产生具有弯曲图像边界的大全景图。
全景工具
我还尝试了panotools/hugin库,虽然这个库支持预定义的照片方向,但是结果很差,而且不稳定。此外,我尝试使用Focal(beta)应用程序on Google Play,其sphere模式也基于panotools/hugin,他们的结果(在sphere模式下)似乎并不比我们的好。
我的问题:
有什么库可以像谷歌的photosphere那样工作吗?因为我不是为商业用途而开发的,所以任何开源lib都是可以接受的。
有没有好的算法(或技术报告,学者论文)可供使用?如果有的话,哪一个最好?
谷歌如何实现自己的photosphere?如有任何建议,我们将不胜感激。
最佳答案
你可以在这里查看谷歌相机应用程序的源代码:
https://android.googlesource.com/platform/packages/apps/Camera/+refs
关于algorithm - Android 4.3/4.4上Google PhotoSphere的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21682541/