Я читаю следующую документацию: http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
Мне удалось успешно откалибровать камеру, получив матрицу камеры и матрицу искажений.
У меня было два подвопроса:
1) Как использовать матрицу искажений, поскольку я не знаю «r»?
2) Для всех видов у меня есть векторы вращения и перемещения, которые преобразуют точки объекта (заданные в координатном пространстве модели) в точки изображения (заданные в мировом координатном пространстве). Таким образом, всего 6 координат на изображение (3 вращательных, 3 поступательных). Как мне использовать эту информацию для получения вращательно-поступательной матрицы?
Любая помощь будет оценена. Спасибо!
Ответы по порядку:
1) «r» — радиус пикселя относительно центра искажения. То есть:
r = sqrt((x - x_c)^2 + (y - y_c)^2)
где (x_c, y_c) — центр нелинейного искажения (то есть точка на изображении, которая имеет нулевое нелинейное искажение. Обычно это (и приблизительно) идентифицируется с главной точкой, то есть пересечением фокальной оси камеры с изображением плоскость. Координаты главной точки находятся в 3-м столбце матрицы собственных параметров камеры.
2) Использование Формула Родригеса конвертировать между векторами вращения и матрицами вращения.