如何校准xna相机投影,以便在重叠时kinect的骨架数据点与视频输入对齐?
答案 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);
}