1

左スワイプと右スワイプのジェスチャ認識しかないSwipeGestureRecognizerを使用しましたが、両手で上下にスワイプしたい..

何か案が......

SwipeGestureRecognizerは dll であるため、スワイプ認識エンジンのロジックを確認できません。

  public event EventHandler<KinectGestureEventArgs> SwipeLeftDetected;
  public event EventHandler<KinectGestureEventArgs> SwipeRightDetected;

誰もがSwipeGestureRecognizerロジックのコードを持っているので、理解して上にスワイプするために実装しようとすることができますか?

前もって感謝します!

4

4 に答える 4

2

ここを見てくださいhttp://blog.exceptontuesdays.com/post/27989563563/gestures-with-microsoft-kinect-for-windows-sdk-v1-5

UP/DOWN ジェスチャはありませんが、他にもたくさんあります。

ソースコードもそこで入手できます。

 switch (e.GestureType)
            {
                case GestureType.Menu:
                    Debug.WriteLine("Menu");
                    Gesture = "Menu";
                    break;
                case GestureType.WaveRight:
                    Debug.WriteLine("Wave Right");
                    Gesture = "Wave Right";
                    break;
                case GestureType.WaveLeft:
                    Debug.WriteLine("Wave Left");
                    Gesture = "Wave Left";
                    break;
                case GestureType.JoinedHands:
                    Debug.WriteLine("Joined Hands");
                    Gesture = "Joined Hands";
                    break;
                case GestureType.SwipeLeft:
                    Debug.WriteLine("Swipe Left");
                    Gesture = "Swipe Left";
                    break;
                case GestureType.SwipeRight:
                    Debug.WriteLine("Swipe Right");
                    Gesture = "Swipe Right";
                    break;
                case GestureType.ZoomIn:
                    Debug.WriteLine("Zoom In");
                    Gesture = "Zoom In";
                    break;
                case GestureType.ZoomOut:
                    Debug.WriteLine("Zoom Out");
                    Gesture = "Zoom Out";
                    break;

                default:
                    break;
于 2012-10-09T11:56:50.243 に答える
2

ここでは少し暗めのショットを撮っていますが、Kinect ツールボックスについて言及している場合は、そのためにCodeplex プロジェクトがセットアップされています。具体的には、SwipeGestureDetector.csを確認する必要があります。

実際、あなたの説明と Codeplex のコードを見ると、Kinect ツールボックスを使用していない可能性がありますが、これは開始するのに適した時期かもしれません。また、リンクされた .cs ファイルに上/下スワイプ認識を追加するのは比較的簡単です。

于 2012-08-31T03:40:18.133 に答える
1

kinect.toolboxを使用していると思います。@Coeffectがソースコードのリンクを紹介したので、ソースコードにアクセスして、必要に応じて変更することができます。これは、kinect.toolboxの使用方法と、それに新しいジェスチャーを追加する方法を示す非常に便利なリソースです。同様に、上にスワイプするジェスチャを追加できます。このようなものをSwipeGestureDetector.csに追加できると思います

LookforGesture()
{

     // from down to up
     if (ScanPositions ((P1, P2) => Math.Abs ??(p2.X - p1.X) <0.20f, 
       (P1, P2) => p2.Y - p1.Y <0.01f, (P1, P2) => 
       Math.Abs ??(p2.Y - p1.Y)> 0.2f, 250, 2500))
     {
         RaiseGestureDetected ("SwipeUp");
         return;
     }
     ...
 }
于 2012-10-05T13:53:56.943 に答える
0

スワイプは非常に認識しやすいジェスチャーです。簡単な計算を使用します。ジェスチャーを 3 つのフェーズに「カット」する必要があります。スタート、ミドル、エンド

上から下へのスワイプを認識したい場合、最初のジェスチャーは手が頭の上にあるときです。例えば、頭上10cm。したがって、すべてのフレームで、手が 10 cm 上にあるかどうかを確認します。はいの場合は、中央の位置に到達するかどうかを確認する必要があります。ここでは、肩の高さで手を使います。ウェイマークも実装するので、IMO この種のジェスチャは直線で行う必要があります。手が頭の上から肩まで一直線になった場合は、終了位置に到達するかどうかを確認する必要があります。胸より下の高さを使用します。そうすれば、簡単な計算を使用して、各フレームで手の位置を確認するだけで、独自のスワイプ認識を実装できます

于 2012-09-03T10:41:29.153 に答える