我正在使用Kinect在Open GL(C ++)中制作应用程序。
我想获得头部(Skeleton)的坐标。
我看到了这个功能:
void CSkeletalViewerApp::Nui_DrawSkeletonSegment( NUI_SKELETON_DATA * pSkel, int numJoints, ... )
,
但我不知道如何使用它并提取头部的坐标。
答案 0 :(得分:2)
根据您发布的代码判断,我们可以假设您使用的是Microsoft的Kinect for Windows SDK。
关节的坐标存储在NUI_SKELETON_DATA
结构的SkeletonPositions成员中。可以在NUI_SKELETON_FRAME
结构的SkeletonData成员中找到此结构的实例,只要骨架跟踪引擎完成跟踪,就会提供该结构。
当然,这只有在传感器正确初始化的情况下才有效。请查看SDK附带的示例项目,并阅读Microsoft的在线文档。
另外,请注意Kinect的坐标系在传感器上有原点,在x轴上提供的坐标值大致为-2.2到2.2,在y轴上为-1.6到1.6,从0.0到在z轴(深度)上4.0。因此,您可能需要应用一些转换。