Я работаю над вычислением реальных координат объекта в сцене, используя пару стереоизображений. Изображения имитируют идеальные камеры-обскуры, поэтому нет искажений, которые нужно исправить, и нет вращения. Я знаю, что в OpenCV есть множество функций для калибровки стереокамер и создания карт несоответствий, но если все, что я хочу вычислить, — это координаты одной точки, есть ли простой способ сделать это?
Вычисление координат реального мира с использованием стереоизображений в Python и OpenCV
Ответы (1)
1) Случай отсутствия вращения, только перенос параллельно горизонтальной оси плоскости изображения, камеры с равным фокусным расстоянием.
Обозначим буквой «f» общее фокусное расстояние. Обозначим через «b» базовую линию стереопары, а именно расстояние между оптическими центрами камер. Дана трехмерная точка P, видимая в обеих камерах по горизонтали изображения с координатами x_left и x_right, обозначим через "d" их несоответствие, а именно разность d = x_left - x_right.
Из элементарной геометрии следует, что глубина z_left точки P в координатах левой камеры равна:
z_left = b * f / d.
2) Любой другой случай (неравные фокусные расстояния, различия в других собственных параметрах, нелинейная дисторсия объектива, межкамерный поворот, перемещение не параллельно оси x и т. д.):
Не беспокойтесь, используйте OpenCV,