Вычислить положения камеры и пикселя изображения в 3D после OpenCV StereoRectify - PullRequest
1 голос
/ 07 октября 2019

У меня есть полная стереокалибровка со всеми результатами из (Python) OpenCV (т.е. необходим вход и выход stereoRectify ).

Визуализация настройки стереокамеры

Моя цель - вычислить (для каждой из двух камер) центр камеры в мировых координатах и ​​позиции произвольных координат изображения (в пикселях) в мировой системе координат после стереопрямления,Позже я хочу определить пересечение этих точек перспективы (лучи, идущие от центра камеры через координаты изображения в мировой системе координат) с плоскостью в 3d, которую я вычислил в мировой системе координат.

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

Однако, после выпрямления обе камеры поворачиваются друг к другу (чтобы сделать ихкопланарный), и они выровнены по горизонтали, используя R_rect (оба шага вместе суммированы в R1 и R2). Далее матрица камеры меняется, и у нас появляются новые матрицы проекций P1 и P2. У меня проблемы с возвратом этих преобразований.

Пример: У меня есть точка [u, v] на выпрямленном изображении правой камеры. Я могу преобразовать эту точку в 3d (в системе координат выпрямленной правой камеры), используя проекционную матрицу P2. После этого я получаю точку [X, Y, Z] в системе координат камеры. Как мне узнать положение этой точки в мировой системе координат (то есть, из неопознанной левой камеры)?

...