Kinect关节绝对坐标

我正在使用Kinect for Windows SDK(v1.8),我已经成功地从Kinect读取了运动,但是现在我想知道如何获取我要跟踪的关节的绝对位置(右手)

我正在使用以下函数NuiTransformSkeletonToDepthImage,但是在x和y坐标中,值的范围都在100-200之间。

关于如何将返回的坐标转换为屏幕坐标的任何建议?感觉到我虽然确实缺少一些明显的东西...

先感谢您

好吧,经过一番环顾和反复试验之后;我找到了解决方案。

调用NuiTransformSkeletonToDepthImage()时;您可以使用NUI_IMAGE_RESOLUTION枚举指定Kinect分辨率。我相信这些价值观是;80x60、320x240、640x480、1280x960

根据您决定使用的分辨率;您需要将返回的x和y坐标除以相应的分辨率。然后将其乘以窗口大小,然后在窗口中输入坐标。

我相信您也可以在创建Kinect Sensor接口的实例时指定分辨率。

作为我的解释的例子不太简洁:

float x, y
const Vector4 fromPos = skeleton.SkeletonPositions[NUI_SKELETON_POSITION_HAND_RIGHT];
NuiTransformSkeletonToDepthImage(fromPos, &x, &y, NUI_IMAGE_RESOLUTION_320x240);
x = x * ((float)WINDOW_WIDTH / 320.0f);
y = y * ((float)WINDOW_HEIGHT / 240.0f);

任何问题; 随便问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章