2014-01-07 113 views
3

我想寫一個C#手和指尖檢測程序,現在我已經能夠獲得手點並將它們存儲在列表中,但我有點卡在關於如何呈現該數據以便可視化結果。Kinect「睡眠」命令

我現在的解決方案是在畫布上畫一個黑點(我試圖用Ellipse形狀),但我認爲這非常耗時,所以我不能看結果。

有沒有辦法讓Kinect忽略下一個,例如30幀,換句話說,我可以讓kinect每30幀只調用一次onFrameReadyEvent?

如果任何人有結果呈現任何其它解決方案隨時分享;)提前

感謝。

回答

1

由於OnFrameReadyEvent是一個事件,請查看Reactive Extensions

Rx有一個Throttle擴展方法,您可以使用它只能獲得每秒1幀。舉一個例子,看看這個SO問題:
How to throttle event stream using RX?

+1

雖然我相信RX是一個很好的解決方案這一點,我相信像'source.Buffer(1,30).Concat()'會很好地工作,因爲與'Throttle'相反,這是行不通的,因爲幀事件不斷髮生,因此油門窗口永遠不會結束。另一個解決方案可能是'Sample',這可能就是你的意思。假設你想要一個基於時間的解決方案,'Sample'可以完美*。 –

+1

這是真的。我想我把「每30幀一次」稱爲「每秒只有一次」。要從字面上理解每30幀中的一幀,您還可以「跳過」29幀,並獲得相同的結果。 Rx真的很贊:) –

+1

確實。不過,你需要跳過(29).Repeat()。 ;)哦,Rx ......我們又如何在Rx之前做這件事?我忘了。 :) –