Перейти к основному содержимому
Версия: 3.8.0

Калибровка камеры и коррекция дисторсии

Объект CameraCalibrator предназначен для калибровки камеры и коррекции дисторсии. Он может быть создан с помощью метода FacerecService.createCameraCalibrator.

Для коррекции дисторсии необходимо либо провести калибровку, либо загрузить откалиброванные параметры с помощью метода CameraCalibrator.loadCameraParameters. После это вы сможете произвести коррекцию дисторсии изображения с помощью метода CameraCalibrator.undistort.

Для проведения калибровки необходимо распечатать калибровочный шаблон и закрепить его на плоской поверхности, желательно черной.

Существует три вида калибровочных шаблонов:

  • asymmetric circles grid pattern
  • chessboard pattern
  • circles grid pattern

Примеры шаблонов:

Полноразмерные изображения находятся в каталоге share/calibration.

Рекомендуется использовать шаблон asymmetric circles grid.

Перед калибровкой необходимо инициализировать объект CameraCalibrator, вызвав метод CameraCalibrator.initCalibration. Затем снимайте калибровочный шаблон в различных позах и ориентациях камерой, которую нужно скалибровать, и передавайте кадры в метод CameraCalibrator.addImage.

Метод CameraCalibrator.getPatternSpaceCoverProgress позволяет получить оценку покрытия пространства позиций и ориентаций шаблонов. Метод CameraCalibrator.getTip выдает подсказку необходимой позиции и шаблона.

Далее вызовите метод CameraCalibrator.calibrate.

После успешной калибровки вы можете оценить результат коррекции дисторсии, вызвав метод CameraCalibrator.undistort. Если результат вас устроил, вы можете сохранить параметры калибровки с помощью метода CameraCalibrator.saveCameraParameters, или, в противном случае, добавить больше изображений и произвести калибровку еще раз.

Чтобы начать калибровку заново, вызовите метод CameraCalibrator.initCalibration.

Пример использования CameraCalibrator см. в test_calibration.