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