Camera Calibrator
1 개요
카메라의 내부, 외부 파라미터를 추정하여 카메라의 왜곡된 시점을 보정하는 알고리즘입니다.
카메라 렌즈에 의해 발생한 왜곡을 보정하는데 사용됩니다.
왜곡이 보정된 이미지로 정확한 측정 및 검사를 하기위해 사용됩니다.
2 알고리즘 상세 설명
Source Image | Calibration Result | Undistorted Image |
---|---|---|
![]() |
![]() |
![]() |
Fig. Camera Calibrator
내부 파라미터에 해당하는 카메라의 초점거리, 렌즈의 비틀림 등의 데이터와 외부 파라미터인 카메라의 위치 및 각도를 추정합니다.
일반적으로 체스보드 또는 점 형태의 격자 이미지를 사용하여 캘리브레이션을 진행합니다. 이외에도 십자형태의 격자, 사각형 격자 이미지도 지원합니다.
Source Image | Calibration Result |
---|---|
![]() |
![]() |
Fig. Camera Calibrator With ROI
영역을 특정하지 않고 처리할 수 있지만, 영역을 특정하여 보정할 수 있습니다.
노이즈같은 이미지 상태에 따라 자동 검출이 되지 않을 경우 영역을 특정하여 사용합니다.
3 파라미터 설정 및 사용 방법
SetGridType
- 캘리브레이션 보드 타입을 설정합니다.
- 기본값은 체스보드 형태입니다.
EnableAutoCalibration
- 기본값은
true
이며 자동으로 이미지에서 카메라 파라미터를 계산하여 왜곡을 보정을 합니다. false
인 경우 이미지 캘리브레이션을 하지않고, 계산해둔 파라미터로 왜곡을 보정을 합니다
- 기본값은
SetIntrinsicParameters
EnableAutoCalibration
가false
일 때 카메라 파라미터를 설정합니다.
GetResultIntrinsicParameters
- 캘리브레이션 결과 카메라 파라미터들을 가져옵니다.
4 예제 코드
CCameraCalibrator calibrator;
//////////////////////////////////
// 공통 파라미터 설정
//////////////////////////////////
//////////////////////////////////
// 추가 옵션 설정
//////////////////////////////////
// 캘리브레이션 계산합니다.
calibrator.Calibrate();
// 카메라 파라미터를 가져옵니다.
CCameraCalibrator::SIntrinsicParameters cameraParams;
calibrator.GetResultIntrinsicParameters(cameraParams);
// 왜곡을 보정합니다.
calibrator.Execute();
5 관련 알고리즘
COrthogonalCalibrator
,
CChessBoardDetector
,
CGridOfDotsDetector
,
CGridOfCrossDetector
,
CGridOfRectangleDetector