安卓系统中的图像全景拼接

3
在我的应用程序中,我需要连续拍摄照片并将它们制作成全景图。为此,需要进行Android传感器旋转计算。加速度计俯仰、翻滚和方位角根据设备方向返回值,但不够精确。举个例子,如果一张图片是起始图像,则下一张图像只有在足够的设备旋转之后才能点击。同样,需要拍摄5至6张图像并制作成一个全景图。
这里的问题是:
如何通过增强现实(如果可能的话)计算设备的旋转并自动拍摄照片?
非常感谢您的帮助。

@Cdr.Powell 我没懂,你能再讲清楚一些吗? - KP_
你说传感器不够准确。没错,但是使用不同的滤波算法(在我的情况下是低通和中值),我可以得到精度为1度的方向数值。但是这两个滤波器都有延迟,因此当设备转动时,滤波器需要大约2-3秒钟才能跟上移动速度。也许通过应用更先进的滤波算法,这可以得到改进。无论如何,我认为这比使用增强现实来触发下一张图像所需的图像识别算法要容易实现。 - Cdr. Powell
你好...你做过使用相机自动捕捉部分的吗?如果是,你用了什么?请帮帮我... - krushnakant
嗨KP_,你能告诉我你用来构建应用程序的SDK/Lib是什么吗?你是如何拼接这些图像的? - Heshan Sandeepa
1
@HeshanSandeepa 我使用了OpenCV库。 - KP_
显示剩余3条评论
1个回答

0

我的答案其实不关于陀螺仪,而且我不知道它对你是否重要,但希望它能对某些人有所帮助。

全景特性在标准的Android相机中已经实现至少自从Android 4.0(也许在早期版本中就已经可以使用了,但我不确定,您可以检查一下),因此,由于源代码是公开的,可能最简单的方法就是复制所需的功能。

虽然您可以从https://android.googlesource.com/(您需要LegacyCamera或Camera)下载应用程序的源代码,但您不能只是在Eclipse或其他IDE中打开任何标准应用程序的项目。例如,LegacyCamera依赖于Gallery2和其他可能难以解决的依赖项。

我花了几天时间将全景特性移动到一个独立的项目中。您可以从这里https://github.com/yankeppey/PanoramaSample下载它。几点备注:

  1. 功能核心(从几张图片创建一张全景图像,进度通知等)在本地部分。

  2. 我使用了Android 4.0-4.1中使用的LegacyCamera的Java代码,而不是4.2,因为对我来说要容易得多。本地部分来自于4.2,只有内部的小改动和几乎相同的JNI接口。

  3. 这个项目只是为了帮助你将全景功能移植到你自己的应用程序中,它不是一个库,不要期望没有错误的干净代码,它只是一个相当混乱和有错误的项目。如果我有时间,我会尽量让它变得更清晰,但是没有任何保证:)


你已经将它清理并使其在Android Studio中工作了吗? - AtifSayings

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接