C# 重置Kinect传感器
我正在从事一个基于Kinect的项目,我想在C# 重置Kinect传感器,c#,.net,wpf,kinect,kinect-sdk,C#,.net,Wpf,Kinect,Kinect Sdk,我正在从事一个基于Kinect的项目,我想在按钮上重置我的Kinect传感器,但只有两种方法sensor.start()和sensor.stop()。就像暂停传感器并再次启动它一样,它不会重置或重新初始化。那么,有什么方法可以实现这一点吗 提前谢谢 编辑: 有一个事件处理程序kinectSensorChooser1+=kinectSensorChooser1\u KinectSensorChanged,这将帮助我初始化传感器的新实例,因此,我想在函数中显式调用它 kinectSensorChoo
按钮上重置我的Kinect传感器
,但只有两种方法sensor.start()
和sensor.stop()
。就像暂停传感器并再次启动它一样,它不会重置或重新初始化。那么,有什么方法可以实现这一点吗
提前谢谢
编辑:
有一个事件处理程序kinectSensorChooser1+=kinectSensorChooser1\u 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);
}
您不需要重置传感器
听起来您正在坐姿模式下使用骨架跟踪:
this.kinect.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
在坐姿模式下,Kinect使用移动来检测用户。因此,如果骨架未被跟踪(例如,由于超出视野),用户将需要再次移动,以便传感器可以跟踪用户。这可能会在应用中给人留下传感器闲置的印象。重置kinect传感器的目的是什么?当kinect长时间使用时,它会停止工作/检测或进入类似闲置的状态。为此,我必须重新启动我想要避免的整个应用程序。这应该是可以避免的,而无需每隔一段时间重置传感器。我建议您发现问题,它停止工作,而不是创建一个解决方法。如果你想重新启动它,只需通过取消运行并创建一个新的来重新初始化传感器对象我在重新初始化传感器对象时遇到问题我编辑了这篇文章,我不知道为什么kinect会这样,这就是我选择这一步的原因。实际上,我面临的不是这样的情况:当我运行应用程序时,用户正在交互他离开了Kinect
传感器区域,并且在Kinect
前面很长一段时间没有任何人[超过15分钟
],之后,当用户再次/回来与Kinect交互时,它不会检测到用户,直到1)我必须用手盖住Kinect传感器并取下2)我重新启动应用程序