Matlab: Эпиполярные линии в какой системе координат?

По сути, у меня есть точка на одном изображении (в пиксельных координатах) и соответствующая эпилиния на другом изображении, заданная функцией Matlab epipolarLine() (у меня также есть все внутренние, внешние, фундаментальные матрицы). Кроме того, я точно знаю, в какой строке этого изображения находится соответствующая точка, поэтому математически можно найти совпадающую точку, пересекая строку с эпилинией. Однако я очень запутался в различных задействованных системах координат и смешиваю их.

Я попытался использовать целочисленное значение строки как x в эпиполярной линии Ax+By+C=0 и решил для y, но я получил десятичный ответ (десятичная часть в диапазоне 0,3-0,6, поэтому округление не имеет смысла ). Разве соответствующее значение y также не должно быть целым числом?

Однако я не знаю, в какой системе координат находятся эпиполярные линии. Возвращает ли Matlab линии в координатах пикселей, координатах второй камеры или координатах первой камеры? Кроме того, соответствует ли (x, y) в пиксельных координатах (row, col) или (col, row) на изображении?


person Booley    schedule 10.07.2014    source источник


Ответы (1)


Эпиполярные линии определяются координатами изображения в пикселях. Если вы посмотрите на пример в документации для epipolarLine, вы см., что линейные уравнения определены в пикселях.

(x,y) соответствует (col, row). Дополнительные сведения см. в документации. Итак, если вы знаете строку соответствующей точки, это будет значение y, а не x. Кажется, у вас там ошибка.

Что касается дробного местоположения, которое вы получаете, в этом нет абсолютно ничего плохого. Подумайте об этом так: у вас есть трехмерная мировая точка, которая проецируется на двумерную точку на изображении 1 с целочисленными координатами. Ничто не говорит о том, что соответствующая 2D-точка на изображении 2 также должна иметь целочисленные координаты. На самом деле крайне маловероятно, что 3D-точка будет проецироваться в 2D-точки с целочисленными координатами на обоих изображениях.

Из любопытства, как узнать строку соответствующей точки?

person Dima    schedule 10.07.2014
comment
Большое спасибо! Теперь это имеет смысл. Для индекса строк я обрабатываю структурированное сканирование с использованием коды Грея. Короче говоря, расшифровывая паттерны полос от проектора (моделируемого как вторая камера в стереосистеме), я могу сопоставить хорошо освещенные пиксели с первой камеры с рядами во второй камере. Затем я могу пересечь строки эпиполярными линиями, чтобы получить совпадения пар, а затем триангулировать (но я не знал, как совпадают координаты). - person Booley; 10.07.2014