Как найти евклидово расстояние от конкретной камеры вместо перпендикулярного расстояния от базовой линии в стереотриангуляции? - PullRequest
1 голос
/ 17 мая 2019

Я хочу рассчитать глубину пикселя изображения в мировых единицах, используя принцип стерео триангуляции. Используя принцип стерео триангуляции, можно получить перпендикулярное расстояние от базовой линии, соединяющей левую и правую камеры Я хочу рассчитать глубину от левой камеры вместо базовой линии. Я использую одну камеру для захвата двух изображений. Моя камера установлена ​​на движущемся транспортном средстве. Я беру два последовательных изображения. Поскольку транспортное средство движется, базовая линия между двумя видами не является горизонтальной относительно направления обзора. Я рассчитываю расстояние определенного пикселя изображения, используя принцип триангуляции. Я выбираю соответствующий пиксель из левого и правого изображения вручную щелчком мыши.

Пусть (x1, y1) и (x2, y2) - соответствующие пиксели левого и правого изображения соответственно. CamDistance - захват расстояния между двумя видами. Вычисляя несоответствие, я получаю глубину пикселя в мировых единицах. Но полученная глубина - это перпендикулярное расстояние от базовой линии. Я хочу рассчитать глубину с левой или правой камеры. Пожалуйста, предложите мне, какие изменения я должен внести в формулу ниже, чтобы вычислить глубину от камеры вместо базовой линии.

Я попробовал следующую функцию для вычисления глубины пикселя

def PixDistance(x1,y1,x2,y2):

    Disparity=x1-x2
    Depth=CamDistance*f/Disparity
    AbsDepth=abs(Depth)
    return AbsDepth;

enter image description here

Заранее спасибо !!

...