Повторное вычисление 3D-координат точек на 2D-изображении с картой глубины - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в графике и зрении, и у меня возникли проблемы с вычислением трехмерных координат. Мне дано изображение, и я хочу пересчитать исходные координаты для определенного пикселя. У меня есть глубина этого пикселя, а также положение камеры (x_c, y_c, z_c) и ориентация камеры (x_o, y_o, z_o). В моем понимании одной этой информации недостаточно, так как мне нужно какое-то фокусное расстояние, чтобы получить угол пикселя относительно главной оси.

Но у меня есть проекционная матрица 4 на 4 камеры. Сначала я не понимаю, почему эта матрица имеет размеры 4 * 4, так как я всегда думал, что они должны быть 3 * 4. Во-вторых, я хотел спросить, есть ли способ получить фокусное расстояние из матрицы проекции, или есть более простой способ вычислить трехмерные координаты, чем вычисление фокусного расстояния, а затем линии, на которой должна быть расположена трехмерная точка. по.

Спасибо!

1 Ответ

0 голосов
/ 22 июня 2020

Если вы используете OpenCV, используйте reprojectImage3d (). Но вам требуется QMatrix в качестве входных данных. Вы можете сгенерировать этот QMatrix на этапе исправления.

Вы можете обратиться к приведенному ниже образцу для справки, как использовать этот API.

https://github.com/bkornel/Reproject-Image-To-3D/blob/master/main.cpp

...