2014-11-21 6 views
2

У меня есть две соответствующие точки (x1, y1) в левом изображении и (x2, y2) в правильном изображении. Расстояние между двумя камерами составляет 10 метров. Я хочу знать, как найти 3D-точку в координатах правой камеры? Имею следующие данные:Как найти 3D-точку для 2 изображений

R=[ 1 0 0; 
    0 0.9 -0.25; 
    0 0.2 0.96] 
t=[ 0.5; -10; 2.75]; 
Kleft= [-1000 0 511; 
     0 -1000 383; 
     0 0 1]; 
Kright=[-500 0 319; 
     0 -500 119; 
     0 0 1]; 
Essentail Matrix=[0 -5.2445 -8.9475; 
        2.7500 -0.1294 -0.4830; 
        10.0000 0.4830 -0.1294] 

ответ

0

Для алгоритма триангуляции см. Хартли, Ричард и Эндрю Зиссерман. Многомерная геометрия в компьютерном зрении. Второе издание. Кембридж, 2000. с. 312.

Или вы можете использовать функцию triangulate в System Vision System Toolbox для MATLAB.

0

Вы можете следить за советом Димы на случай, если вы действительно с нетерпением ждете преследования (Multi View Geometry, не является дочерней игрой: P). В случае, если вы просто ищете решение вопроса здесь,

Сначала вычислите координаты двух пикселей в метрической системе координат, это делается путем умножения инверсии соответствующей матрицы K на однородную координаты пикселей,

X1_metric = (Kleft)^- 1 * (x1, y1, 1)

X2_metric = (Kright)^- 1 * (х2, у2, 1)

Теперь, рассчитать косой матрицей вектора X2_metric, т. е. если X2_metric = [a, b, c], то

skew (X2_metric) = [0 -c b; с 0 -a; -ba 0]

Теперь найти коэффициент масштабирования, лямбда = (косой (X2_metric) * т)/(косой (X2_metric) * R * X1_metric)

Мы почти закончили, 3D-координата точки в кадре левых изображений,

X1 (3D) = (лямбда * X1_metric)

для расчета 3D координаты в кадре правых изображений, просто сделать следующее преобразование,

X2 (3D) = (R * X1 (3D)) + t

Я надеюсь, что это помогло :)

+0

У меня вопрос, t = 10 в последнем уравнении? Или это вектор перевода из данных? – nikhilk

+0

t - это вектор перевода, который вы упомянули в вопросе. – Vishu

+0

Итак, этот метод работает независимо от расстояния между двумя камерами? – nikhilk