1

我目前正在使用 Kinect SDK 在 C# 中开发一些手势识别。到目前为止一切都很好,唯一的问题是手势识别是即时的。

例如:当我将手举过头顶时,我正在使用消息框宣布。如果我握住手2秒钟,它将打开数十个消息框宣布手势。

有没有办法阻止这种情况?

4

3 回答 3

3

达伦说的是实话。您需要实现停止机制。Kinect 一直在实时分析所有内容,因此当您的手在上方时,它一直在那里,直到它在那里 :) 所以每次触发您的动作时。照阿图尔斯说的做,或者照我喜欢的做。我更喜欢创建一个布尔标志。默认值为假。当我的动作被触发时,我将其设置为 true,并且t trigger the action again until the flag is false. In your example I would set it to true when I raise my hand above the head and set it to false when I have my hand below my head. That way I每次我需要它时我只会触发一次动作

于 2012-05-08T06:37:51.927 回答
1

我想如果手在你的头上,你只是触发了这个事件。这还不够。

只需在识别手势时触发消息框一次,然后重置您拥有的任何检查算法的机制。每当您的手移到头下时,您都需要重新开始手势检查。你如何做到这一点取决于你如何实现手势识别。

于 2012-05-07T21:50:37.543 回答
1

您可以检查 MinimumPeriodBetweenGestures 作为实现 @Kinect Toolbox。同样,您可以根据您的要求定义标准。

于 2012-05-07T22:29:04.353 回答