Kinect视线与头关节之间的角度

时间:2011-12-06 03:48:54

标签: kinect

如何找出Kinect视线与头关节之间的角度。我已经尝试了很多,但我没能成功。我没有线索,下一步该做什么。

请帮我弄清楚找出这个角度的方法。

2 个答案:

答案 0 :(得分:1)

我希望我能正确理解你的问题,但这应该很容易。

头部关节有3个坐标(X,Y,Z)。 Z是距离kinect深度相机的距离。 您可以将kinect深度相机视为位于世界(0,0,0)中。这意味着深度图像的中心是原点。

在这种情况下,您可以使用Atan2来计算X和Y角度,如下所示:


X angle = atan2(headjoint.Position.Y, headjoint.Position.Z);
Y angle = atan2(headjoint.Position.X, headjoint.Position.Z);

  • 我使用atan2而不是atan,因为如果Z值为0,它会将你从一个分区保存到零崩溃.Atan2知道如何处理这种情况。
  • 这些得到的角度以弧度表示。
  • X角表示绕X轴旋转。
  • Y角表示绕Y轴旋转。

答案 1 :(得分:0)

安德烈的答案是正确的,但X和Y角是错误的方式。

如果你想在X轴上找出玩家的角度(使用c#),请执行:

xAngle = Math.Atan2(headjoint.Position.X, headjoint.Position.Z);

要在Y轴上找到角度,请执行以下操作:

yAngle = Math.Atan2(headjoint.Position.Y, headjoint.Position.Z);

这对我非常有用,因为我试图将音频光束朝向播放器。干杯!