使用OpenCV SDK在Unity中从手机摄像头捕获图像进行全景拍摄

问题描述 投票:0回答:1

如何使用手机的摄像头(而非一体机)拍摄图像以创建全景图像?换句话说,我正在尝试使用Unity在手机上复制相机应用程序。我知道捕获图像后如何缝合图像的几种方法,但是我不知道是“捕获”过程,即如何确定手机是从左向右旋转还是从右向旋转。 -左还是根本不动?我应该使用陀螺仪读数吗?如果是,IMU漂移怎么办?另外,大多数支持全景功能的现代手机使用什么方法?

android ios unity3d gyroscope panoramas
1个回答
0
投票

电话使用传感器融合,有时还会结合视觉,以便确定如何对运动进行刺激。最常见的是使用卡尔曼滤波器,在该方法中,您可以通过不同的度量获得多个信息源,这些信息源可以汇总到所需的变量中。基本上,您要寻找的是设备方向https://developer.android.com/reference/android/hardware/Sensor#TYPE_GEOMAGNETIC_ROTATION_VECTOR以Android为例。它使用磁力计,加速度计和陀螺仪1.用磁力计估算地球北2.加速度计估计重力方向3.陀螺仪用于计算动态时间的运动,加速度计和磁力计将防止陀螺仪漂移,而陀螺仪有助于提供有效的结果,而设备在运动且加速度计对重力方向的评估由于线性加速度而不够准确。我可以继续详细介绍,但是它并不重要,因为它已经为您实现了。这会给您一个相对于地球坐标系的旋转矢量。在生成所需图像或实时图像之后,您应该使用一些视觉来完善结果,因为传感器精度至少会给您2-3度的误差。

希望有帮助,这个项目祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.