coordinates - OpenNI 返回坐标范围

标签 coordinates coordinate-systems openni

我正在使用 OpenNI 的 HandsGenerator 类,我想用它来跟踪用户的 Action 。

我已经注册了自己的回调来获取手的更新位置,一切正常,除了我找不到有关返回的 XnPoint3D 的坐标系等信息。是否有某个规范精确指定了 X、Y、Z 范围,或许还有缩放信息(这样我就知道 XnPoint3DX 中的 100 变化) code> 对应于 10 厘米的移动,或者其他)。

最佳答案

HandsGenerator 从传感器返回现实世界坐标(以毫米为单位)。这意味着位于深度图中间的深度点的 X 和 Y 将为 0。

100 的变化(X、Y 或 Z)实际上是 10 厘米的变化(100mm = 10cm)。

X 和 Y 值的范围取决于手点的 Z 值。假设您的手点位于深度图的左上角(或投影坐标中的 0,0),则可能的 X 和 Y 值取决于手的距离有多远。手越近,X 和 Y 越小。要获得手位置的最大范围,您应该选择任意最大 Z 值,然后找到该距离处深度图角点的 X 和 Y 值。或者换句话说 - 将投影坐标 (0,0,maxZ) 和 (DepthmapWidth,DepthmapHeight,maxZ) 转换为现实世界坐标。 Z 值小于 maxZ 的所有手点都将落在这 2 个现实世界坐标之间)

请注意,您可以使用 DepthGenerator::ConvertProjectiveToRealWorld 将投影坐标转换​​为现实世界。

关于coordinates - OpenNI 返回坐标范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255445/

相关文章:

javascript - 在 WebGL 中获取鼠标单击的 3D 坐标

python - Numpy - 坐标系之间的转换

qt - 在 Windows 7 上开始使用 Kinect + OpenNI + Qt

c# - 获取 3D 模型特定顶点可见时的屏幕空间坐标

java - openNi,openCV,处理: kinect with Java

c++ - 如何在 openni 和 opencv 中使用 Kinect

java - 在 ImageView FloodFill 算法中获取触摸坐标不准确

ios - 如何在 iOS 中获取缓冲区多边形坐标(纬度和经度)?

Python - 将 GPS 位置批量转换为 Lat Lon 小数

cocoa - CALayer坐标系