首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kinect sdk 2.0与sdk 1.7

Kinect sdk 2.0与sdk 1.7
EN

Stack Overflow用户
提问于 2016-01-05 16:00:02
回答 1查看 297关注 0票数 1

我编写了一个与旧kinect一起工作的c#程序。我的图形库处理kinect。由于旧的Kinect不再正式销售,我现在用它的MicrosoftSDK2.0更新到较新的kinect one。对于我更新的库,我尽量保持大多数编码相同。因此,我可以发布一个更新库,而不是更新整个程序。

我想知道的是,新的kinect深度数据是否仍然包含播放器数据,就像它在1.7SDK中所做的那样--我做了一个位掩码操作来删除它:

代码语言:javascript
复制
realDepth[i16] = (short)(realDepth[i16] >> DepthImageFrame.PlayerIndexBitmaskWidth);

如果这还需要,我找不到任何关于它的原始深度格式的信息。

旧的Kinect,也有一些价值

  • 距离未知
  • 距离接近
  • 远距离

它还能提供这个吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-31 01:40:35

在Microsoft SDK2.0中,您不需要使用位掩码操作来获得正确的深度值。

当您访问DepthFrame对象时,可以使用以下内容:

代码语言:javascript
复制
private void ProcessDepthFrame(DepthFrame frame)
{
    int width = frame.FrameDescription.Width;
    int height = frame.FrameDescription.Height;

    ushort minDepth = frame.DepthMinReliableDistance;
    ushort maxDepth = frame.DepthMaxReliableDistance;

    ushort[] depthData = new ushort[width * height];

    frame.CopyFrameDataToArray(depthData);

    int colorIndex = 0;
    for (int depthIndex = 0; depthIndex < depthData.Length; ++depthIndex)
    {
        ushort depth = depthData[depthIndex];
        byte intensity = (byte)(depth >= minDepth && depth <= maxDepth ? depth : 0);

        // Do what you want
    }
}

还请注意,在上面的示例中,使用DepthMinReliableDistanceDepthMaxReliableDistance类的属性来计算深度值是否有效(这与SDKv1.x略有不同)。

有关更多信息,请查看本教程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34615955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档