【问题标题】:Kinect Joint Absolute coordinatesKinect 关节绝对坐标
【发布时间】:2013-12-12 23:17:21
【问题描述】:
我正在使用 Kinect for Windows SDK (v1.8)
我成功地从 Kinect 读取动作,但我现在想知道如何获取我正在跟踪的关节的绝对位置(右手)
我正在使用以下函数 NuiTransformSkeletonToDepthImage,但 x 和 y 坐标的值范围为 100-200。
关于如何将返回的坐标转换为屏幕坐标的任何建议?
感觉我错过了一些非常明显的东西......
提前谢谢你
【问题讨论】:
标签:
c++
coordinates
kinect
absolute
【解决方案1】:
好的,经过相当多的环顾和反复试验;我找到了解决方案。
当你调用 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);
任何问题;随时问。