У меня есть полная стереокалибровка со всеми результатами из (Python) OpenCV (т.е. необходим вход и выход stereoRectify ).
Визуализация настройки стереокамеры
Моя цель - вычислить (для каждой из двух камер) центр камеры в мировых координатах и позиции произвольных координат изображения (в пикселях) в мировой системе координат после стереопрямления,Позже я хочу определить пересечение этих точек перспективы (лучи, идущие от центра камеры через координаты изображения в мировой системе координат) с плоскостью в 3d, которую я вычислил в мировой системе координат.
Для неопознанная камера , я могу просто использовать обратное перемещение и обратное вращение для преобразования точек из системы координат правой камеры в левую камеру (которую я считаю мировой системой координат). Преобразование из 2D координат изображения в 3D в системе координат камеры может быть получено с использованием матрицы камеры.
Однако, после выпрямления обе камеры поворачиваются друг к другу (чтобы сделать ихкопланарный), и они выровнены по горизонтали, используя R_rect
(оба шага вместе суммированы в R1
и R2
). Далее матрица камеры меняется, и у нас появляются новые матрицы проекций P1
и P2
. У меня проблемы с возвратом этих преобразований.
Пример: У меня есть точка [u, v]
на выпрямленном изображении правой камеры. Я могу преобразовать эту точку в 3d (в системе координат выпрямленной правой камеры), используя проекционную матрицу P2
. После этого я получаю точку [X, Y, Z]
в системе координат камеры. Как мне узнать положение этой точки в мировой системе координат (то есть, из неопознанной левой камеры)?