Использование матрицы вращения и перевода в OpenCV - PullRequest
2 голосов
/ 28 июля 2011

Я пытаюсь наложить изображение с правой камеры на изображение с левой камеры.Чтобы сделать это, я думаю, нужно уточнить матрицу поворота и перемещения для правой камеры относительно левой камеры.Затем я применил бы матрицу перевода и поворота к изображению на правильной камере?

Предполагая, что это правильный путь, я бы получил матрицу поворота и перевода из cvStereoCalibrate (), но как бы я использовал эти матрицычтобы дать мне «mapx» и «mapy», чтобы я мог использовать его для cvRemap () на правильном изображении?

Это похоже на получение внутреннего и искажения из cvCalibrateCamera2 (), а затем с помощью cvInitUndistortMap () для полученияmapx и mapy и, наконец, использование cvRemap () для получения неискаженного изображения.

Существует ли эквивалент cvInitUndistortMap () для поворота и перевода?

Мне не нужно, чтобы изображения отображались так, как если быони были сняты двумя камерами, которые выровнены по ряду.Я хочу откалибровать его для Microsoft Kinect таким образом, чтобы я мог сопоставлять точки от потока глубины до видеопотока.

Спасибо, Тайро

1 Ответ

0 голосов
/ 28 июля 2011

То, что вы пытаетесь сделать, называется образом выпрямление .

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

См. этот вопрос и ответ для обзора с более подробной информацией.

...