我正在使用OPENNI和NITE,我试图从PrimeSense提供的StickFigure示例中获取3种类型的信息,
现在我需要帮助以下两个::
如何获取相同的RGB值?
如何获取与StickFigure边界相关的数据,当我的意思是边界时,我指的是blob数据或与人物的肉体/轮廓部分相关的数据认可?
我们非常感谢任何建议或解决方案。
thankyou
答案 0 :(得分:0)
答案 1 :(得分:0)
xnConvertRealWorldToProjective(depthGenerator.ConvertRealWorldToProjective with C ++ wrapper)会将世界空间中的一个点(就像从骨架中得到的那样)转换回深度图中的2d像素坐标。 通过执行depthGenerator.GetAlternativeViewpointCap()的操作来启用深度注册.SetAlternativeViewpoint(imageGenerator)。
这会修改深度,使其看起来好像是从RGB CMOS的位置捕获的(例如,深度和rgb像素将精确对齐),因此您可以使用另一个中的坐标(除了可能缩放x,y,因为分辨率差异)。
您的用户生成器节点有一个名为GetUserPixels的函数(例如users.GetUserPixels(0,sceneMD)),它将使用标签映射填充场景元数据对象 - 一个16-bpp像素映射,其中每个像素都是拥有像素的用户的标识符,如果像素不属于用户,则为0。
NiUserTracker源提供了这方面的示例用法(这是他们为用户着色的方式与背景不同),请参阅OpenNI \ Samples \ NiUserTracker(SceneDrawer.cpp很有趣)的来源。