【发布时间】:2011-09-27 11:29:17
【问题描述】:
如何校准 xna 相机投影,以便 kinect 的骨架数据点在叠加时与视频源对齐?
【问题讨论】:
如何校准 xna 相机投影,以便 kinect 的骨架数据点在叠加时与视频源对齐?
【问题讨论】:
我已经在 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);
}
【讨论】: