2016-03-06 5 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, Y и Z, которые являются float32 и выражены в метрах.

Как объяснено в documentation:

пространство Камера относится к системе координат, используемой 3D Kinect. Система координат определяется следующим образом:

  • Происхождение (х = 0, у = 0, г = 0) находится в центре ИК датчика на Kinect
  • Х возрастает до датчика влево
  • Y растет (заметим, что это направление основано на наклона датчика)
  • Z растет в направлении датчик сталкивается 1 единица = 1 метр

Не e также, что вы использовали %d в методе sprintf для печати значения поплавка, а %d должен использоваться только для десятичного целого числа со знаком (см. таблицу в this page). Если вы хотите напечатать значения X, Y и Z, вы должны использовать %f; поэтому ваш sprintf должен выглядеть следующим образом:

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

полностью правильно. – 16per9

 Смежные вопросы

  • Нет связанных вопросов^_^