2015-05-27 6 views
2

Я работаю над вычислением координат реального мира объекта в сцене с помощью пары стереоизображений. Изображения представляют собой симуляции идеальных камер-обскуров, поэтому нет искажений в правильности и вращения нет. Я знаю, что OpenCV имеет множество функций для калибровки стереокамер и создания карт несоответствий, но если все, что я хочу рассчитать, это координаты одной точки, есть ли простой способ сделать это?Расчет координат реального мира с использованием стереоизображений в Python и OpenCV

ответ

1

1) Корпус без вращения, только перевод, параллельный горизонтальной оси плоскости изображения, камеры с равными фокусными расстояниями.

Обозначить «f» общее фокусное расстояние. Обозначим «b» базовую линию стереопары, а именно расстояние между оптическими центрами камер. Учитывая трехмерную точку P, видимую в обеих камерах с горизонтальными координатами изображения x_left и x_right, обозначьте «d» их несоответствие, а именно разницу d = x_left - x_right.

По элементарной геометрии тогда следует, что глубина z_left Р в левых камерах координат:

z_left = B * F/D.

2) Любой другой случай (неравные фокусные расстояния, различия в других внутренних параметров, нелинейное искажение линзы, вращение между камерами, перевод не параллельно оси х, и т.д.):

Не bot, use OpenCV,

+0

Итак, если я получаю глубину от левой камеры, используя это уравнение, есть ли способ, которым я мог бы превратиться в координату XYZ, когда левая камера была источником? – Richard

+0

Да, вы можете. Преобразовать пиксель (x, y) относительно центра изображения в нормализованные координаты изображения (т. Е. Умножить их на отношение ширины датчика/изображения), сделать то же самое для базовой линии b в уравнении для z_left выше и выразить фокусное расстояние в метрах там как Что ж. Тогда Z = z_left, X = x_normalized * Z, Y = y_normalized * Z. Опять же, проще всего просто использовать OpenCV для выполнения этих вычислений, поскольку этот код был полностью отлажен и защищен от краев. –

+0

И если вы сочтете этот ответ полезным, вы должны оценить его. –