2014-09-30 3 views
2

Поэтому у меня есть фотоаппарат, который я использую, чтобы получить координаты камеры (координаты объекта w.r.t. камеры) объекта InFront его. Поэтому я смог добиться этого.Координаты точки по отношению к эталонной системе координат

Итак, теперь я хочу найти координаты этого объекта относительно системы координат, которую я положил на землю. (координаты координаты/мировые координаты)

Я понимаю его просто матрицу вращения/перевода.

Мне сложно получить эту матрицу. У любого есть представление о том, как я могу это сделать?

Так что я в основном имеют камеры координат XYZ моего целевого объекта и оси, которые я лег, чтобы действовать в качестве моей справочной системы координат

Спасибо!

ответ

0

Вы можете выполнить процедуру калибровки, чтобы идентифицировать общие 2 точки вашей уложенной системы координат. Это невозможно сделать только с помощью Kinect. Вам нужно будет указать физические точки для определения вашей системы координат x, y. Например, вы можете установить вертикальный полюс на координате 0,0, и как только вы коснетесь этого полюса, вы можете получить соответствующую координату Kinect для этого физического полюса, теперь эта координата kinect является вашим относительным 0,0 в компьютерном пространстве. Теперь любая точка, которую вы находите в компьютерном пространстве, должна пересчитываться до найденной вами относительной точки.

2

Предполагая, что вы есть:

  • набор XYZ координат, которая принадлежит гусеничного особенности WRT вашего объекта к камере.
  • Координаты XYZ одинаковых функций в некоторой системе координат (или координатах) CAD (или мира).

Вы можете получить вращение и перемещение пути вычисления оптимального вращения между этим парным набором координат точек, используя алгоритм Kabsch: https://en.wikipedia.org/wiki/Kabsch_algorithm

Таким образом, в основном вы:

  1. получить центроид каждого координатного набора [XYZ] _i, где i = 1, 2.
  2. децентроид каждой координаты (вычесть каждый центроид от каждого [XYZ])
  3. образуют ковариацию матрица (назовем его С)
  4. Применение SVD к ковариационной матрицы [U, S, V] = SVD (C)
  5. вращения = V * U 'где' оператор транспонирования
  6. перевод = - R * centroid_of_ [XYZ] _1 + centroid_of_ [XYZ] _2

Существует хорошее руководство о поиске этого вращения ~ перевод пара здесь: http://nghiaho.com/?page_id=671

Я надеюсь, что это помогает.

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