如何根据kinect深度数据确定“真实世界”x,y坐标?

时间:2012-06-19 20:07:47

标签: c# kinect

kinect传感器返回的深度值对应于距xy平面的真实世界z距离(以mm为单位)。到目前为止,我在最新的sdk中找不到任何返回x和y坐标相似的东西。这是在sdk中提供的吗?如果做不到,那么计算x和y的好方法是什么?

1 个答案:

答案 0 :(得分:6)

您可以使用返回SkeletonPoint的KinectSensor.MapDepthToSkeletonPoint方法。示例代码可以是

using (DepthImageFrame depthimageFrame = e.OpenDepthImageFrame())
        {
            if (depthimageFrame == null)
            {
                return;
            }

            pixelData = new short[depthimageFrame.PixelDataLength];

            depthimageFrame.CopyPixelDataTo(pixelData);

            for (int x = 0; x < depthimageFrame.Width; x++)
            {
                for (int y = 0; y < depthimageFrame.Height; y++)
                {
                        SkeletonPoint p = sensor.MapDepthToSkeletonPoint(DepthImageFormat.Resolution640x480Fps30, x, y, pixelData[x + depthimageFrame.Width * y]);                        
                }
            }

        }