从深度流 - Kinect 1裁剪手区域

时间:2016-08-22 10:21:10

标签: c# kinect kinect-sdk

我一直在研究和尝试很多技术来解决这个问题。 我从Skeleton数据中获得了手的坐标。使用这些坐标我想从深度数据中裁剪区域,并在手位置改变时显示它。 我已经将rgb和深度流转换为位图。我在Windows窗体上工作,因为我的时间不足。 如何在深度数据坐标上映射骨架坐标? 以及如何简单地过滤出比特定值更远的每个深度帧像素?我知道Kinect提供了深度图,但是对于如何访问它并使其与Windows窗体一起工作有点了解。

1 个答案:

答案 0 :(得分:1)

您需要使用Coordinatemapper类将骨架关节映射到2D坐标。 SDK为彩色图像和深度图像定义了两个类:ColorSpacePoint和DepthSpacePoint。两个结构都包含x和y的值(以像素为单位),这就是您想要的。要进行转换,您可以通过以下方式尝试代码:

ColorSpacePoint colorspacepoint=m_pCoordinatemapper->MapCameraPointToColorSpace(point);

要访问帧数据,可以尝试使用IDepthFrame接口的AccessUnderlyingBuffer()方法。

希望这有帮助。