Используйте фундаментальную матрицу для вычисления перевода координат с использованием OpenCV
Я пытаюсь вычислить соответствие координат нескольких точек между двумя изображениями.
У меня есть группа точек, чьи соответствия известны, я использую их с OpenCVfindFundamentalMatrix()
чтобы найти фундаментальную матрицу.
Я подтвердил, чтоx^T * F * x' = (0)
для каждой точки, и результат всегда правильный или очень близкий.
Дело в том, что теперь я хотел бы использовать координаты точки на первом изображении (y
) и фундаментальная матрица (F
) чтобы найти координаты точки на втором изображении (y'
). Сначала я подумал о простом использовании уравнения выше, но учитывая толькоz
изy'
точка, может бытьбесконечность решений.
Как еще я могу использовать фундаментальную матрицу для вычисления переводов?
Чтобы быть более понятным: знание фундаментальной матрицы "связывание" две проекции, как я могу использовать его для перевода координат любой известной точки(a, b, 1)
от первой проекции ко второй проекции?
Учитывая, что мы знаемa
, b
а такжеF
в этом уравнении: (a ', b & quot ;, 1)T * F * (a, b, 1) = (0)
Я сделал простой рисунок в качестве примера:http://i.imgur.com/drNr2.jpg , Идея состоит в том, чтобы найти координаты красной точки(xq, yq)
в проекции 2, учитывая, что мы знаем его координаты в проекции 1 и координаты всех других точек в обеих проекциях (и некоторых других, поскольку алгоритм для поиска фундаментальной матрицы фактически требует не менее 8 точек)
Другая точность: в моем примере известные точки копланарны, но исследуемая точка не обязательно будет.
Я надеюсь, что это сделало мою проблему более ясной :)