opencv를 이용한 작업을 하나 진행 중인데 camera calibration parameter가 잘 이해가 안되어서 공부
https://docs.opencv.org/4.x/d4/d94/tutorial_camera_calibration.html
원문은 위와 같다.
요지만 정리해보자면,
핀홀 카메라는 디스토션이라는 단점이 있다. 그런데 이 디스토션은 상수로 처리되어서 한번 캘리브레이션 작업을 거친 후 사용하면 보정이 가능하다.
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
위 링크를 통해서 확인해보자.