如何在连接到单个PC的不同Kinect V2之间切换?

时间:2015-11-12 21:47:57

标签: kinect

我有两个Kinect V2,连接到一台PC上的两个不同的USB 3.0端口。我知道不可能同时使用基于SDK V2的两者,我知道我应该使用这种方法访问Kinect V2:

_sensor = KinectSensor.GetDefault();

但是,它总是返回其中一个传感器作为默认值,并且连接它的USB 3.0端口无关紧要。

首先,是否有任何方法可以获得连接到单个PC的连接Kinect V2的列表,并根据我们的偏好打开那个? 我想在每个时间帧中使用其中一个,但需要在它们之间切换。

2 个答案:

答案 0 :(得分:1)

有一种解决方法,这很烦人,但似乎有效:

您可以启用/禁用每个Kinect连接的USB端口/控制器。禁用除所需端口之外的所有端口,KinectSensor.GetDefault();应为您提供正确的传感器。

您可以在设备管理器中手动执行此操作。但我确信在代码中也有一些自动执行此操作的方法。

有关详细信息,请参阅Microsoft支持论坛上的主题Connection to multiple Kinect V2, NOT for synchronous acquisition

答案 1 :(得分:-1)

可以同时使用两个Kinects。我开发了一个应用程序,它同时使用两个Kinects,视频和骨架流。它是为sdk 1.8开发的。

因此,您可以获得所有可用的现成设备:

KinectSensor.KinectSensors.Where(kinect => kinect.Status == KinectStatus.Connected)

为什么需要在它们之间切换?您可以一次激活两者所需的流量。在sdk中,它表示当两个Kinect指向同一个对象时,它们都无法工作。但它正在发挥作用。如果你想在它们之间切换:

  1. 从第一个开始停止流动
  2. 从第二个
  3. 激活流程
  4. 转到第1页
  5. 这是不好的变种,因为p。 1和2可能需要大约第二次。这是非常缓慢的。