OpenCV Calibration parameter 이해하기
opencv를 이용한 작업을 하나 진행 중인데 camera calibration parameter가 잘 이해가 안되어서 공부
https://docs.opencv.org/4.x/d4/d94/tutorial_camera_calibration.html
OpenCV: Camera calibration With OpenCV
Prev Tutorial: Camera calibration with square chessboard Next Tutorial: Real Time pose estimation of a textured object Original author Bernát Gábor Compatibility OpenCV >= 4.0 Cameras have been around for a long-long time. However, with the introduction
docs.opencv.org
원문은 위와 같다.
요지만 정리해보자면,
핀홀 카메라는 디스토션이라는 단점이 있다. 그런데 이 디스토션은 상수로 처리되어서 한번 캘리브레이션 작업을 거친 후 사용하면 보정이 가능하다.
I. 디스토션 파라미터
디스토션을 위해 OpenCV는 radial factor와 tangential factor를 고려한다.
1. radial factor는 다음 식을 사용한다.
그래서 x,y 좌표계 상의 변형되지 않은 포인트는 변형된 이미지 상에서 x_distorted, y_distorted 상에 위치하게 된다. radial distortion의 존재는 barrel 혹은 fish-eye effect의 형태를 제공한다.
2. Tangential factor는 렌즈가 이미지 평면에 정렬되지 않을 상태로 이미지를 촬영할 때 발생한다. 이는 다음 식으로 보정된다.
지금까지 OpenCV는 다섯개의 distortion parameter를 생성하였고, 그 형상은 다음과 같다.
II. 카메라 행렬
자 그럼 이제 어느정도 익숙한 아래 식을 사용할 차례다.
w는 호모그라피 코디네이트 시스템을 설명하기 위해서 쓰였다. 미지의 파라미터 는 두가지다.
(f_x, f_y)는 카메라 포컬 길이이다.
(c_x, c_y) 는 픽셀 좌표계에서 표현된 중심이다.
위 행렬은 카메라 행렬이라고 부르는 4개의 파라미터로 구성된다. 디스토션 coefficients들은 카메라의 해상도에 관계없이 동일하지만, 그 값들은 calibrated resolution으로 부터 제공되는 현재 resolution을 따라서 scaled되어야 한다.
III. undistorted image 생성해보기
이 부분은
https://darkpgmr.tistory.com/31
카메라 왜곡보정 - 이론 및 실제
저번 카메라 캘리브레이션에 대한 포스팅에 이어 오늘은 카메라 렌즈 왜곡 보정에 대해 이론에서 실제까지 전반적인 내용을 포스팅합니다. 카메라 캘리브레이션 및 왜곡 보정은 영상처리 분야
darkpgmr.tistory.com
위 링크를 통해서 확인해보자.