【问题标题】:how to detect this specific movement gesture via sensors?如何通过传感器检测这种特定的运动手势?
【发布时间】:2013-09-15 11:20:54
【问题描述】:

我正在开发一个 Android 项目。它的目标是检测设备的预定义移动手势。如果设备在轴(X、Y 或 Z)上旋转 45 度,然后旋转回其第一个位置(第一个和第二个位置将不准确,我的意思是如果它旋转 50 度而不是 45 度,不是重要!!!)然后手势已经发生,应用程序应该检测到它。

我尝试使用设备的加速度计和磁传感器来持续监控设备的方向并检测手势,但结果不可接受 (explained here)。请问有什么起点或想法吗?

【问题讨论】:

  • 我认为您不需要精确的测量来识别手势。有很多鼠标手势识别的例子。用户将无法快速旋转手机:) 我会尝试找到合适的,但你也可以看看。
  • 是的,你完全正确!准确性并不是那么重要,算法应该足够聪明以检测手势!感谢您的关注:)))

标签: java android accelerometer android-sensors gesture-recognition


【解决方案1】:

似乎没有人会提供具体而有价值的答案。所以让我尝试这样做。

首先,即使是有点原始和直接的方法,也可以发现您不需要处理来自传感器的所有数据的事实。此外,人类的速度并没有那么快,因此也无需每秒执行 10000 个值来识别任何特定的动作。

您真正需要的只是确定关键点并做出决定。听起来像tanget 吗?

我的实际建议是使用普通鼠标和可用的手势识别框架来测试您的解决方案。因为实际的想法几乎是一样的。所以请检查:

这样可能更容易开发出合适的解决方案。

更新

假设我拿着手机,需要将手机逆时针旋转 90 度,然后顺时针旋转 180 度。我希望你不要指望我在空中做一些复杂的 3D 形状(这会破坏可用性,坦率地说我不想丢掉我的手机),所以可以说我们可以跟踪或者我们可以轻松模拟它。

请查看我的other answer 以了解类似问题的简单但有效的解决方案:

【讨论】:

  • 显然,我必须使用 Android 设备 sensors 来检测该手势,我已经尝试过使用 AccelerometerMagnetic 传感器的方法,我发现了限制其中(stackoverflow.com/questions/18786694/…)现在,第一个问题是使用哪些传感器,然后如何实现……你知道,检测触摸手势、鼠标手势和……与传感器手势有很大不同
  • What you actually need is just to identify key points and make your decision...完全正确,但如何?!!传感器的限制不允许我达到这个目标
  • 您是否正在为特定手机开发程序? Buggy 传感器与正确的解决方案无关。用新手机更换手机并继续。 completely correct, but how - 你看过我提供的例子/框架了吗?
  • 是的,谢谢。我看到了它们,但是您认为我们检测鼠标手势的方式可以帮助检测运动手势吗?我不这么认为
  • 我已经更新了我的答案。这是我的最后贡献,我认为你有一切可以解决你的任务。编码愉快。
猜你喜欢
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多