Калибровка камеры с помощью OpenCV: использование матрицы искажений и поворота-трансляции

Я читаю следующую документацию: http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html

Мне удалось успешно откалибровать камеру, получив матрицу камеры и матрицу искажений.

У меня было два подвопроса:

1) Как использовать матрицу искажений, поскольку я не знаю «r»?

Формула для получения исправленных координат

2) Для всех видов у меня есть векторы вращения и перемещения, которые преобразуют точки объекта (заданные в координатном пространстве модели) в точки изображения (заданные в мировом координатном пространстве). Таким образом, всего 6 координат на изображение (3 вращательных, 3 поступательных). Как мне использовать эту информацию для получения вращательно-поступательной матрицы?

Любая помощь будет оценена. Спасибо!

1

Решение

Ответы по порядку:

1) «r» — радиус пикселя относительно центра искажения. То есть:

r = sqrt((x - x_c)^2 + (y - y_c)^2)

где (x_c, y_c) — центр нелинейного искажения (то есть точка на изображении, которая имеет нулевое нелинейное искажение. Обычно это (и приблизительно) идентифицируется с главной точкой, то есть пересечением фокальной оси камеры с изображением плоскость. Координаты главной точки находятся в 3-м столбце матрицы собственных параметров камеры.

2) Использование Формула Родригеса конвертировать между векторами вращения и матрицами вращения.

1

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


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