私は現在、Kinect SDKを使用してC#でジェスチャ認識を開発しています。これまでのところ、ジェスチャ認識が瞬時に行われることが唯一の問題です。
例:messageBoxを使用して、手を頭上に上げるとアナウンスします。手を2秒間保持すると、ジェスチャをアナウンスする数十のmessageBoxが開きます。
これを止める方法はありますか?
ダレンは真実を言います。停止メカニズムを実装する必要があります。Kinectはすべてをリアルタイムで分析しているので、手が上にあるときはそこにあるまでそこにあります:)つまり、アクションがトリガーされるたびに。Atulsが言ったようにするか、私が好きなようにしてください。私はブールフラグを作成することを好みます。デフォルト値はfalseです。アクションがトリガーされると、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
必要になるたびに1回だけアクションをトリガーします。
手が頭の上にある場合は、単にイベントをトリガーしていると思います。これだけでは不十分です。
ジェスチャが認識されたらメッセージボックスを1回トリガーし、アルゴリズムをチェックしているメカニズムをリセットします。手が頭の下に移動するたびに、ジェスチャチェックを再開する必要があります。これをどのように行うかは、ジェスチャ認識をどのように実装したかによって異なります。
実装されているMinimumPeriodBetweenGesturesを@KinectToolboxで確認できます。同様に、要件に従って基準を定義できます。