我正在尝试使用Kinect绘制骨骼图,可以看到该设备最多支持4个传感器同时连接。
然而,不幸的是,我目前只有一个传感器可供使用,因此,如果您连接了多个传感器,我不确定SDK的行为。
具体来说,数据是否合并在公开的API中?假设您正在使用处理的方法
private void Kinect_AllFramesReady(object sender, AllFramesReadyEventArgs e)
{
}
事件SkeletonFrame.SkeletonArrayLength
是否增加到12、18、24?
如何访问每个传感器的不同ColorImageFrame
或DepthImageFrame
?通常情况下,你可能会做这样的
using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
{
//Write pixels
}
访问相机,但我看不到任何明显的方法来访问特定于设备的数据。
在构建同时使用多个Kinect传感器的应用程序时,对以上内容的解释以及对哪些(如果有的话)其他差异的理解非常重要的指导将不胜感激。
每个KinectSensor都可以有单独的绑定和事件。
foreach (var sensor in KinectSensor.KinectSensors)
{
if (potentialSensor.Status == KinectStatus.Connected)
{
//add binding and events.
}
}
因此,这取决于您,您可以将事件绑定到同一个处理程序,并根据发送者决定如何处理它,但我认为您需要创建自己的逻辑,将数据绑定在一起。
SkeletonArray长度不会增加,因为它是每个SkeletonStream唯一的。