Рассчитать мировые координаты на основе калиброванной информации о камере - PullRequest
0 голосов
/ 11 января 2019

Я хочу рассчитать мировые координаты на основе внутренней и внешней информации откалиброванной камеры.

Итак, я дал следующую информацию (на основании этого: https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html):

f_x и f_y: фокусное расстояние в пикселях c_x и c_y: положение главной точки (центр изображения) Ширина и высота изображения, получаемого камерой в пикселях. (ширина: 1920px, высота: 1200px)

Я знаю, где находится моя камера в 3D-сцене, и я также знаю направление, в котором поворачивается моя камера.

Теперь у меня есть Mesh в моем мире Unity, и я хочу применить Raycast на основе, например, пикселя (x: 1000, y: 400). Затем мне нужно применить вращение, основанное на этой информации о направлении исходного / центрированного направления камеры, чтобы запустить Raycast. После этого я хочу использовать положение удара в сцене Unity, чтобы отметить положение элемента, который отображается в моем 2D-изображении, снятом камерой.

Давайте предположим следующий сценарий.

Ширина изображения: 1920, Высота изображения: 1200

Мировые координаты камер: X: 11,32 - Y: 3,85 - Z: 9,06

Вращение камеры: X: 12,55 - Y: -111,81 - Z: 0,66

Фокусное расстояние камеры: f_x & f_y: 1489,89

Основная точка камеры: c_x: 962,96 - c_y: 620,58

Чтобы рассчитать новое направление для Raycasthit, потребуется вычислить eurlerAngles между координатами изображения (1000, 400).

Расчет не должен быть сложным. Но я застрял и определенно мог бы здесь помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...