Я готов сшить панораму на 360 ° для 6 камер fi sh -eye.
Чтобы найти взаимосвязь между камерами, мне нужно вычислить матрицу гомографии. Последнее обычно вычисляется путем нахождения признаков на изображениях и сопоставления их.
Однако для моей камеры я уже знаю :
- intrinsi c матрица камеры K , которую я вычислил посредством калибровки камеры.
- Extrinsi c параметры камеры R и t . Ориентация камеры фиксирована и не меняется в любой момент. Камеры расположены на круге известного диаметра d, причем каждая камера расположена со сдвигом на 60 ° по отношению к кругу.
Поэтому, я думаю, я мог бы вручную вычислить матрицу гомографии, что, как я предполагаю, приведет к более точному подходу, чем выполнение сопоставления признаков.
В литературе я нашел следующую формулу для вычисления матрицы гомографии, которая связывает изображение 2 с изображением 1:
H_2_1 = (K_2) * (R_2)^-1 * R_1 * K_1
Эта формула учитывает только угол поворота между камерами, но не вектор перемещения, который существует в моем случае.
Как я могу включить перевод t каждой камеры в вычисление H?
Я уже пытался вычислить H без учета перевода, но, поскольку d> 1 метр, изображения не выровнены точно на панораме.
EDIT:
Основываясь на ответе Франческо ниже, я получил следующие вопросы:
После калибровки линзы рыбий глаз, я получил матрицу K
с фокусным расстоянием f=620
для изображения размером 1024 x 768. Считается ли это большим или малым фокусным расстоянием ?
Мои камеры расположены по кругу диаметром 1 метр. Приведенное ниже объяснение дает мне понять, что из-за этого "большого" перемещения между камерами у меня есть замечательные эффекты двоения с объектами, которые относительно близки к ним. Следовательно, если модель Homography не может полностью представить положение камер, можно ли использовать другую модель, например, Fundamental / Essential Matrix, для сшивания изображений?