2016-03-06 105 views
-2

您好,我明白在Microsoft的官方文档中,获取的相机空间点已经以米为单位表示。但是,我仍然不确定这些数值是否以米为单位,因为这些数值是9位数或更多,有时是正数和负数。Kinect:获得以米为单位的关节坐标(x,y)

有人可以向我解释这些值是什么,他们已经在米?

Function to process body (placed the output of the joint[j].position in it

enter image description here

Results

enter image description here

做让我知道如果你都需要更多的信息。我很抱歉,因为我是kinect的新手。顺便说一句,这是kinect v2!

回答

1

每个联合有一个Position财产,这是一个CameraSpecePoint。 CameraSpacePoint对象有三个属性,分别为X,YZ,它们分别是float32,表示为

documentation解释:

相机空间指的是通过超高动力学使用的三维坐标系。的坐标系统被定义为如下:

  • 的原点(x = 0,Y = 0,Z = 0)位于在IR传感器的上Kinect的中心
  • X生长到传感器的左
  • ÿ长大(注意,此方向是基于传感器的倾斜)
  • 中的Z方向生长出传感器面临 1单元=1米

不e还表示您已在sprintf方法中使用%d来打印浮点值,而%d应仅用于带符号的十进制整数(请参阅this page中的表)。如果要打印X,Y和Z值,则必须使用%f;所以你的sprintf应该是这样的:

sprint(abc, "Head is at %f on X-axis\n", joints[j].Position.X); 
+0

完全正确。 – 16per9