2012-12-22 57 views
0

我在基於Kinect的項目工作,我想我Kinect sensorButton點擊事件,但只有兩個方法sensor.start() & sensor.stop()復位。它就像暫停傳感器並再次啓動它,它不會重置或重新初始化。那麼,有什麼辦法可以達到這個目的?重置Kinect傳感器

在此先感謝..

編輯:

有一個事件處理程序kinectSensorChooser1 + = kinectSensorChooser1_KinectSensorChanged,這將幫助我在初始化傳感器的新實例的話,我想明確地調用它在一個函數中。

kinectSensorChooser1_KinectSensorChanged(object sender, DependencyPropertyChangedEventArgs e) 
{ 
     KinectSensor old = (KinectSensor)e.OldValue; 
     StopKinect(old); 
     KinectSensor sensor = (KinectSensor)e.NewValue; 
} 

我不知道該怎麼稱呼它,因爲

private void ResetSensor() 
{ 
    // this doesn't work like others so what parameters should I pass then.. 
    kinectSensorChooser1_KinectSensorChanged(null, null); 
} 
+0

重置kinect傳感器的目的是什麼? –

+0

長時間使用時,停止工作/檢測或進入空閒狀態。爲此,我必須重新啓動我想避免的整個應用程序。 – SidPen

+0

這應該有可能避免不必每隔一段時間重置一次傳感器。 –

回答

0

你不應該需要重置傳感器。

這聽起來像你在坐着的模式下使用骨架追蹤:

this.kinect.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated; 

就座模式,Kinect的使用運動來檢測用戶。因此,如果沒有跟蹤Skeleton(例如由於走到視野外),用戶將需要再次移動,以便傳感器可以跟蹤用戶。這可能會給傳感器爲空閒的應用程序帶來印象。

+1

其實這不是我面對什麼樣的情況是: 當我運行的應用程序和用戶交互並且他離開'Kinect'傳感器區域,並且在'Kinect'前面沒有任何人長時間[超過15分鐘],然後當用戶再次返回與kinect交互時,它不會'檢測用戶,直到 1)我必須用我的手覆蓋kinect傳感器,並刪除 2)我重新啓動應用程序 – SidPen