Kinect スケルトン トラック プログラムに関するプログラムを作成しています。その間にジェスチャーの定義をプログラムに記述します。ジェスチャーの定義をユーザーが定義できるようにしたい。これを行う 1 つの方法は、DFA を使用することです。C# の始め方がわかりません。誰でも助けることができますか?
1 に答える
0
Lists を使用してスケルトンのジョイント (一種のバッファー) の座標を保存すると、おそらく DFA を実行できます。トランジションをすべての方向の座標の範囲として定義できます。最終的な状態は、バッファー内の要素がほぼ同じ領域にあるときです。
したがって、C# では、ユーザーが追加したときに更新されるジェスチャのシーケンスを保存するデータ型を作成する必要があります。
ジェスチャを保存すると、コードは次のようになります。
While(!Joint_stable && (i < buffer.count() ) )
{
While ((buffer.Joint.ElementAt(i+1).X-buffer.Joint.ElementAt(i)).X>0 && (buffer.Joint.ElementAt(i+1)-buffer.Joint.ElementAt(i).Y )>0 ) //Think about adding tolerence here
{
Gesture.add("Upper_Right");
}
...
}
アドバイスとしては、kinect センサーはそれほど正確ではないため、ある程度の許容範囲を確立するようにしてください。
私の答えがあなたに役立つか、少なくともインスピレーションを与えることを願っています:)
于 2013-04-01T13:46:41.570 に答える