2013-04-01 28 views
0

我正在編寫關於Kinect骨架軌跡程序的程序,而手勢的定義是寫在程序中的。我希望手勢的定義由用戶定義。執行此操作的一種方法是由DFA完成。我不知道如何從C#開始。任何人都可以幫忙嗎?用C#定義的手勢,用什麼框架來編寫Kinect骨架軌跡程序?

+0

顯示一些代碼。 – SilentAssassin

+0

兩個手勢庫已經可用於Kinect,可能服務於您的目的或提供靈感:http://kinecttoolbox.codeplex.com/和https://github.com/EvilClosetMonkey/Fizbin.Kinect.Gestures –

回答

0

嘗試使用列表來存儲骨架關節的座標(緩衝區的類型),然後您可以運行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感應器不準確,從而嘗試建立一種寬容。

我希望我的回答會幫助你,或者至少給你一些靈感:)

+0

感謝您的建議,我會嘗試一下。雖然我沒有找到好的原則來估計手勢狀態的準確性,但我會考慮一段時間。 –