Как получить мировые координаты? - PullRequest
2 голосов
/ 25 мая 2020

У меня есть камера с разрешением по ширине и высоте и параметрами камеры:

[[position_x, position_y, position_z], [focal_point_x, focal_point_y, focal_point_z], [view_up_x, view_up_y, view_up_z]]

Скажем, мне дали точку плоскости изображения камеры с координатами x, y (0, 0 верхний левый угол width-1, height-1 нижний правый угол).

Как получить мировые координаты моей точки x, y из такой камеры, данных изображения?

1 Ответ

0 голосов
/ 25 мая 2020

Я постараюсь выделить некоторые моменты, которые я нашел в старой книге (ссылка в конце этого ответа).

Прежде всего, вы не можете напрямую сопоставить ось z мировой координаты с координатой вашего изображения (x, y), потому что это проблема один-ко-многим: одна точка пикселя может быть в любом z- точка линии оси. Однако существует множество исследований и алгоритмов оценки этой оси Z только с одной перспективой изображения, а другие с использованием двух перспектив изображения (стереозрение).

Но если у вас уже есть словесная координата оси Z, вы можете вычислить X и Y, используя приведенную выше формулу.

enter image description here

где:

  1. (x, y) = координаты изображения некоторой точки
  2. (X0, Y0, Z0) = координаты слова камеры
  3. (X, Y, Z) = словарные координаты некоторой точки
  4. α = угол между x и ось X
  5. θ = угол между осью z и Z
  6. λ = фокусное расстояние

enter image description here

Я не специалист по робототехнике, но, возможно, это поможет вам прояснить ваш путь. Я использую изображения из книги ниже (страница 313).

Справочник : ФУ, КС; GONZALEZ, R. C .; ЛИ, C. SG. Робототехника: управление, зрение, зрение и интеллект. [с. Л.]: Макгроу - Хилл, 1987.

...