2015-07-29 3 views
1

У меня есть два набора данных, связанных с видеопоследовательностью. Один содержит относительные данные о ротации и трансляции, сгенерированные с использованием одного алгоритма. Другая состоит из наземных матриц, основанных на истине, связанных с каждым кадром.Как получить относительный перевод и поворот из двух внешних матриц камеры?

Я хотел бы сравнить наборы данных, чтобы определить несоответствие между ними. Мой вопрос: как я могу получить относительный перевод и поворот из двух внешних матриц камеры?

ответ

1

Если у вас есть camera1 поза P1 = [R1|T1] и camera2 позе P2 = [R2|T2] затем P1to2 = P2 * P1^-1.

Интуитивно представить себе простой случай, когда обе камеры имеют нулевой сдвиг, camera1 имеет поворот на оси X +30 градусов и camera2 вращения по оси X +60 градусов.

P1 = [R1|0] P2 = [R2|0] 

Так они оба отличаются от поворота на +30 градусов по оси X:

P1to2 = P2 * P1^-1 = [R2|0] * [R1|0]^-1 = [R2|0] * [R1^1|0] 

R2 * R1^1 = 60 - 30 on X = rotation of +30 degrees on X 
+0

Можете ли вы подтвердить, что поза P = N^-1, где N - внешняя матрица? –

+0

Да, это правильно. – aledalgrande

+0

Как рассчитать относительный перевод? –

0

Внешняя матрица состоит из матрицы 3x3 вращения и вектора сдвига 3x1.

Итак, M 3x4, является просто объединением двух [R t]. Если я не понимаю ваш вопрос, получение вращения и перевода тривиально.

+0

R и т представляют собой поворот и перевод мира по отношению к камере. Получение их мировых координатных эквивалентов тоже не сложно. Я ищу дельта между двумя кадрами, учитывая их внешние матрицы. Например, перевод между кадром 1 и фреймом 2. –

+0

Вы имеете в виду преобразование между пиксельными координатами в кадрах 1 и 2? – Photon