Аналитическое вращение из 3 эпиполярных точечных соответствий
У меня 3 эпиполярных точечных соответствия, т.е. три ({x1, y1, 1}, {x2, y2, 1})
строит. На самом деле, у меня есть только (x1, y1, y2)
, так как x2
содержит огромную ошибку. Эти координаты уже отцентрированы и нормализованы. Данная матрица вращения 3D RotM
Вот как я вычисляю остаток для одной точки:
residual(RotM) = y2' - y2
where
rotated = RotM . {x1, y1, 1}
{x2', y2', 1} = rotated / rotated[3]
Конечно, я могу численно оптимизировать эти 3 остатка и получить RotM
потому что он также имеет 3 степени свободы. Но я хочу получить аналитические вращения.
Таким образом, вопрос, учитывая три (x1, y1, y2)
триплеты, какова формула для вычисления матрицы вращения? Я также был бы удовлетворен углами Эйлера или кватернионами.
Заметки:
- Вращение мало. Точно, допустимо отбросить кубические члены ряда Тейлора для углов Эйлера.
- Wolfram Mathematica отказывается решить эту проблему.
- Если я не ошибаюсь, такое преобразование называется "перспективное преобразование".