0

画面に触れずにユーザーが行ったジェスチャ、つまり、ユーザーがAndroidデバイスの画面をスピーカーからマイクにスワイプするだけ(たとえば、画面から3 cm)のジェスチャーを検出したいと考えています。センサー タイプ TYPE_PROXIMITY を試してみました。これにより、デバイスは、ユーザーが手をデバイスの近くに置いて離したことを認識しているようです。しかし、ジェスチャの方向、つまり、ユーザーが手のひらをスピーカーからマイクにスワイプするか、その逆かを知りたいです。他のセンサー タイプを試す必要がありますか? または、それを達成するために複数のタイプのセンサーを組み合わせる必要がありますか?

Briefly, I want to know: 1. How to detect user swiping over the screen? 2. How to detect the direction of the swipe?

PS: it's not gesture detecting of screen touching, which I can handle by implementing GestureDetector.

Kindest regards, Nessus.

4

2 に答える 2

1

画面上に 1 cm ホバリングしているユーザーの立場を形成することは、画面上に指を置くことに比べて非常に不便です。小さい開口部を備えた前面カメラで見られるスワイプは、適度な速度のスワイプでモーション ブラーが混入します。

数年前、スワイプのモーションブラーが最終的に背景の画像を遮る方法を検討することで、この問題を解決しました。特に背景にグラデーションがあると、動く手のモーションブラーで消えてしまいます。したがって、垂直方向のグラデーションをヒストグラム化すると、スワイプするとヒストグラムを移動する穴が表示され、この穴の動きの方向がスワイプの方向になります。

さらに 2 つのヒント: 背景にグラデーションがあまりない場合は、単純に画像の解像度を下げて、解像度が低いほどモーション ブラーの影響を受けにくい手のグラデーション画像を操作できます。カメラ自体が移動すると、ヒストグラムを移動する穴とは対照的に、エッジ ヒストグラムがグローバルに変換されます。最後に、組み込みのジャイロスコープによって極端な電話の回転を検出して、誤検知を回避できます。

于 2014-02-26T06:13:07.503 に答える