матрица проекции из гомографии

Я работаю над стереозрением с stereoRectifyUncalibrated() метод под OpenCV 3.0.

Я калибрую свою систему с помощью следующих шагов:

  1. Обнаружение и сопоставление характерных точек SURF между изображениями с 2 камер
  2. Применять findFundamentalMat() с соответствующими парами
  3. Получить выпрямляющие омографии с stereoRectifyUncalibrated(),

Для каждой камеры я вычисляю матрицу вращения следующим образом:

R1 = cameraMatrix[0].inv()*H1*cameraMatrix[0];

Чтобы вычислить трехмерные точки, мне нужно получить матрицу проекции, но я не знаю, как я могу оценить вектор перевода.

Я старался decomposeHomographyMat() и это решение https://stackoverflow.com/a/10781165/3653104 но матрица вращения не такая, как у R1.

Когда я проверяю выпрямленные изображения с R1 / R2 (используя initUndistortRectifyMap() с последующим remap()), результат кажется правильным (я проверял эпиполярными линиями).

Я немного потерян со своими слабыми знаниями в зрении. Таким образом, если бы кто-то мог объяснить мне. Спасибо 🙂

1

Решение

Код в ссылке, которую вы предоставили (https://stackoverflow.com/a/10781165/3653104) вычисляет не вращение, а позу камеры 3х4.

Последний столбец позы — ваш вектор перевода

0

Другие решения


По вопросам рекламы [email protected]