如何将kinect骨架数据校准到视频输入?

时间:2011-09-14 03:00:22

标签: xna-4.0 kinect

如何校准xna相机投影,以便在重叠时kinect的骨架数据点与视频输入对齐?

1 个答案:

答案 0 :(得分:1)

我在WPF中完成了这个,我假设它与XNA相同..

这是我使用的代码,我相信它是从SDK文档中的一个示例Kinect项目中获取的。您的结果可能会有所不请注意,320x240部分似乎与您正在使用的实际分辨率无关。我将深度流设置为640x480,RGB流设置为1280x1024。

nui是我的运行时对象。

private Point getDisplayPosition(Joint joint)
{
    float depthX, depthY;
    nui.SkeletonEngine.SkeletonToDepthImage(joint.Position, out depthX, out depthY);
    depthX = Math.Max(0, Math.Min(depthX * 320, 320));  //convert to 320, 240 space
    depthY = Math.Max(0, Math.Min(depthY * 240, 240));  //convert to 320, 240 space

    int colorX, colorY;
    ImageViewArea iv = new ImageViewArea();
    // only ImageResolution.Resolution640x480 is supported at this point
    nui.NuiCamera.GetColorPixelCoordinatesFromDepthPixel(ImageResolution.Resolution640x480, iv, (int)depthX, (int)depthY, (short)0, out colorX, out colorY);

    return new Point(colorX, colorY);
}