1

我正在使用 Kinect 在 Open GL (C++) 中制作应用程序。

我想得到头部(骨架)的坐标。

我看到了这个功能:

void CSkeletalViewerApp::Nui_DrawSkeletonSegment( NUI_SKELETON_DATA * pSkel, int numJoints, ... ),

但我不知道如何使用它并提取头部的坐标。

4

1 回答 1

2

从您发布的代码片段来看,我们可以假设您使用的是 Microsoft 的 Kinect for Windows SDK。

关节的坐标存储在NUI_SKELETON_DATA结构的 SkeletonPositions 成员中。该结构的实例可以在结构的 SkeletonData 成员中找到,NUI_SKELETON_FRAME只要骨架跟踪引擎完成跟踪,就会提供该成员。

当然,这只有在传感器正确初始化的情况下才有效。请查看 SDK 附带的示例项目,并阅读 Microsoft 的在线文档。

此外,请注意 Kinect 的坐标系以传感器为原点,提供的坐标值范围大致为 x 轴 -2.2 到 2.2,y 轴 -1.6 到 1.6,以及 0.0 到 4.0 z 轴(深度)。因此,您可能需要应用一些转换。

于 2012-05-29T08:29:29.597 回答