我使用Kinect SDK從Kinect讀取數據。當時我有一個應用程序,它每隔幾秒鐘就從流中保存一個圖像並開始記錄音頻,但是我只希望在檢測到運動時執行代碼(例如,在檢測到運動時開始記錄的安全攝像頭)。如果檢測到移動,我看不到任何在代碼示例中引發的事件,唯一的事情就是關閉nui_SkeletonFrameReady如果檢測到人體,我可以使用它(如果我是正確的話)。有沒有簡單的方法去解決這個問題?移動發生時引發事件
0
A
回答
1
目前還沒有在這種情況下引發的事件。我所做的是訂閱了API隨附的圖像就緒事件,並使用AForge.net上的庫將以前的圖像與當前圖像進行比較。
0
可以初始化與RuntimeOptions.UseSkeletalTracking標誌Kinect的運行時從設備接收骨架跟蹤數據:
var runtime = new Runtime();
runtime.Initialize(RuntimeOptions.UseSkeletalTracking| RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseColor);
然後訂閱SkeletonFrameReady事件:
runtime.SkeletonFrameReady += nui_SkeletonFrameReady;
此事件將觸發不斷地,你將需要遍歷SkeletonFrame集合中的六個可能的骨架集合,以確定是否有任何正在被跟蹤。
void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
SkeletonFrame allSkeletons = e.SkeletonFrame;
//get the first tracked skeleton
SkeletonData skeleton = (from s in allSkeletons.Skeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();
if skeleton != null
{
// Start recording audio, etc
}
}
更多細節和例子在這個第9頻道的視頻中發現:
相關問題
- 1. 當移動時發生持續事件時移動條凍結
- 2. 發生鼠標點擊事件時發生鼠標移動事件
- 3. 在事件發生時移位一次
- 4. PHP事件發生倒計時和事件發生時更新
- 5. 自動事件SQL ASP.net時間發生
- 6. 按下按鈕時移動鼠標會引發什麼事件?
- 7. 等到事件發生時
- 8. 等到事件發生時
- 9. 發生Control.ParentChanged事件時?
- 10. IllegalArgumentException事件發生時,javafx
- 11. 在發生任何錯誤時引發Python中的事件?
- 12. C#ConcurrentQueue - 在Enqueue發生時引發事件?
- 13. 如何在數據網格發生變化時引發事件
- 14. 引發事件
- 15. 引發事件
- 16. 當iFrame滾動到底部時發生jQuery觸發事件
- 17. 當沒有拖動發生時,鼠標事件不會觸發
- 18. Twitter引導阻止事件發生
- 19. 激活邊界計時器事件引發異常時引發
- 20. 當程序運行時發生事件時會發生什麼
- 21. MouseLeave事件在控件的滾動條上移動時觸發
- 22. Appcelerator:引發事件
- 23. 引發事件TreeViewItem.MouseDoubleClickEvent
- 24. C#引發事件
- 25. 發生KeyEvent.VK_SPACE後發生多個事件
- 26. Mouseenter事件發生
- 27. CheckedChanged事件發生
- 28. 當從mssql移動到mysql時發生Nhibernate事務問題
- 29. 組件保存時發生的事件
- 30. 文本動畫不發生在事件發射(或事件不發射)
也許我沒有那麼清楚,我真的很想知道幀間移動發生的時間,跟蹤/檢測骨骼沒有任何關係。我提到我知道發現骨骼時發生的事件,但我正在尋找一種簡單的方法來檢測何時發生任何運動。迄今爲止我遇到的最好的解決方案是http://www.aforgenet.com上的一個項目,在該項目中,我可以使用它的檢測來區分最新圖像和最新圖像。我希望API可能包含類似的東西... –