Как я могу проецировать точки из 2D в 3D, используя OpenCV? - PullRequest
0 голосов
/ 17 апреля 2019

Я работаю над Калибровка камеры и 3D реконструкция проблема.

Есть ли метод в OpenCV или любом другом пакете Python, который проецирует точки из 2D в 3D с учетом

  1. R - матрица вращения,
  2. T - матрица перевода,
  3. фокусное расстояние (f_x, f_y) и оптические центры (c_x, c_y).

1 Ответ

1 голос
/ 17 апреля 2019

Поскольку вы не используете стерео, из одной 2D-точки и калибровки камеры вы не можете получить 3D-точку (по крайней мере, без дополнительных ограничений, например, что точка находится на уровне земли или что-то в этом роде).

То, что вы можете получить из одной 2D-точки, - это 3D-луч (3D-вектор), в котором находится 3D-точка.Ссылаясь на рисунок ниже, из [https://docs.opencv.org/2.4/_images/pinhole_camera_model.png]:

enter image description here

Из (X, Y, Z) вы можете получить (u, v), нолюбая точка в красной линии также будет проецироваться на ту же точку (u, v).Это означает, что с учетом (u, v) вы не можете знать, какую точку вдоль этой линии вы наблюдаете.

...