1

左右のスワイプに使用されるのと同じロジックを使用して、上下のスワイプを検出しようとしています。それが私が思いついたものです。

// Upward Swipe
        if (ScanPositions((p1, p2) => Math.Abs(p2.Y - p1.Y) > 0.4f,  // Height
            (p1, p2) => p2.Y - p1.Y > -0.01f, // Progression Upwards
            (p1, p2) => Math.Abs(p2.X - p1.X) < 0.2f, // Length
            SwipeMininalDuration, SwipeMaximalDuration))// Duration
        {
                RaiseGestureDetected("Upward Swipe Gesture Detected");
            return;
        }

        // Downward Swipe
        if (ScanPositions((p1, p2) => Math.Abs(p2.Y - p1.Y) > 0.4f,  // Height
            (p1, p2) => p2.Y - p1.Y < 0.01f, // Progression Downwards
            (p1, p2) => Math.Abs(p2.X - p1.X) < 0.2f, // Length
            SwipeMininalDuration, SwipeMaximalDuration))// Duration
        {
                RaiseGestureDetected("Downward Swipe Gesture Detected");
            return;
        }

スワイプの左/右と同様のロジックを使用して、heightFuntion について、y 軸の p2 と p1 の差は 40 を超える必要があると述べました (コードからわかるように)。これがうまくいくと確信していましたが、テストしたところ正確なジェスチャ出力が得られませんでした。実際には上向きであるのに、「下向きのスワイプが検出されました」という出力が得られることがあります。左スワイプと上スワイプを間違えることがあります。どこが間違っているのか教えていただけますか?投稿したばかりのアルゴリズムにエラーが含まれていますか? または、Kinect ツールボックスのどこかで何かを変更する必要がありますか? 同じアプリケーションで、上、下、左、右の手のスワイプを検出できるようにしたいと考えています。ありがとう

4

0 に答える 0