我正在尝试为iPhone / iPad创建一个Panorama应用程序。
图像拼接位正常,我正在使用openCV库,结果非常接受。
但是我在开发用于在捕获全景图时帮助用户的UI方面有点困难。
大多数应用程序(即使在Android上)都会为用户提供某种标记,可以完全匹配用户相机的移动。 [我正在使用iOS 7 - 默认相机的全景功能作为初步基准]。
但是,到目前为止,我已经离开了。
我尝试了什么: 我已经尝试使用加速度计和陀螺仪数据来跟踪标记。采用这种方法 -
我在加速度计数据上应用了LPF并使用简单 牛顿力学(具有精心调整的阻尼系数) 翻译屏幕上的标记。 此方法存在问题:非常不稳定的数据。标记往往会在点之间跳跃和摆动。在流畅的动作和混蛋之间很难分辨。
我尝试过使用LPF-ed陀螺仪和陀螺仪之间的补充过滤器 加速计数据转换blob。 这种方法存在问题:比第一种方法略好,但仍然很随机。
我也尝试使用图像处理来计算光流。我 使用openCV的
goodFeaturesToTrack(firstMat, cornersA, 30, 0.01, 30);
从第一张图像中获取可跟踪点(从相机中采样)
选择器)然后使用calcOpticalFlowPyrLK
获取位置
这些点在下一张图片中。
这种方法的问题:然而,通过跟踪这些点获得的运动矢量太嘈杂,无法计算结果
准确的运动方向。
我认为接下来我应该做什么:
也许从加速度计和陀螺仪数据计算DCT矩阵 使用一些算法用另一个算法过滤一个输出。
处理图像处理算法,使用一些不同的技术 (???)。
使用卡尔曼滤波器融合状态预测 加速度计+陀螺仪与图像处理模块的加速度计。陀螺仪。
我需要的帮助:
你能建议一些更简单的方法来完成这项工作吗?
如果没有,你能突出我的方法中可能出现的任何错误吗?它真的必须这么复杂吗?
请帮忙。