접선 왜곡(Tangential distortion)은 일반적인 렌즈를 사용하는 광학 시스템에서 발생하는 렌즈 왜곡(lens distortion)의 한 유형임.
- 렌즈 축에서 멀어진 객체의 위치가 왜곡되어 이미지 포인트가 이상적인 위치에서 접선 방향으로 이동되는 결과를 초래.
- Barrel distortion과 함께 대표적인 lens distortion임.
다음 접힌 글은 Barrel distortion에 대한 설명임:
2023.09.26 - [Programming/DIP] - [DIP] Radial distortion : barrel and pincushion distortions
[DIP] Radial distortion : barrel and pincushion distortions
0. Remapping matrix equation으로 표현할 수 없는 형태(non-linear)의 이미지 모양 변환을 위한 기능. OpenCV에서 cv2.remap() 함수를 통해 제공되며, lens distortion 및 radial distortion등을 모델링하거나 제거하는데
dsaint31.tistory.com
다음그림은 Tangential distortion의 주요 원인과 패턴을 보여줌.
접선 왜곡의 원인
주로 imaging plane (photodiode들이 놓인)이 lens와 평행하게 배치되지 않아 발생하게 됨.
Tangential distorton 의 특징
특정 이미지의 영역이 원래 보다 더 가깝게 보임: (위의 그림의 경우 아래쪽 영역이 보다 가까이 있는 것처럼 보이게됨.
수학적 표현
수학적으로, Tangential distorton 은 흔히 두 개의 parameters, $p_1$ 과 $p_2$, 로 사용하여 다음의 수식으로 모델링됨 (OpenCV 등).
이는 원래의 이미지 포인트 $(x, y)$ 가 왜곡된 $(x', y')$ 로 이동하는 것을 보옂무.
$$
x' = x + (2p_1xy + p_2(r^2 + 2x^2)) \\\\
y' = y + (p_1(r^2 + 2y^2) + 2p_2xy)$$
여기서 $r^2 = x^2 + y^2$ 으로 이미지 중심으로부터의 거리가 $r$임.
Barrel distortion까지 같이 고려할 경우:
$$\begin{bmatrix} x' \\ y' \end{bmatrix} = (1+k_1 r^2 +k_2 r^4 +k_3 r^6)\begin{bmatrix}x \\y \end{bmatrix} + \begin{bmatrix} (2p_1xy + p_2(r^2 + 2x^2)) \\ (p_1(r^2 + 2y^2) + 2p_2xy) \end{bmatrix}$$
Tangential distortion의 correction
- Tangential distortion 은 image processing을 통해 수정 가능함.
- 주로 chess board를 이용한 카메라 캘리브레이션 기법을 통해 barral distortion의 파라메터인 $k_1, k_2, k_3$과 함께 tangential distortion의 파라미터 $p_1, p_2$도 같이 구해짐.
- 이 parameters를 통해 다시 원래의 pixel 위치로 remapping을 수행함으로써 distortion을 제거함.
Camera calibration의 경우,
보통 intrinsic matrix, extrinsic matrix 도 같이 구해짐.
2024.06.22 - [Programming/DIP] - [CV] Geometric Camera Model and Camera Calibration: Pinhole Camera
[CV] Geometric Camera Model and Camera Calibration: Pinhole Camera
Geometric Camera Model (or Camera Model)은 real world 와 camera의 pose에 따라,real world 와 camera의 image 간의 관계를approximation 함. 이 문서에서는 기본적인 Pinhole Camera Model에 기반하여 설명함.pinhole camera는
dsaint31.tistory.com
같이 보면 좋은 URLs
https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html
OpenCV: Camera Calibration
Goal In this section, we will learn about types of distortion caused by cameras how to find the intrinsic and extrinsic properties of a camera how to undistort images based off these properties Basics Some pinhole cameras introduce significant distortion t
docs.opencv.org
https://darkpgmr.tistory.com/31
카메라 왜곡보정 - 이론 및 실제
저번 카메라 캘리브레이션에 대한 포스팅에 이어 오늘은 카메라 렌즈 왜곡 보정에 대해 이론에서 실제까지 전반적인 내용을 포스팅합니다. 카메라 캘리브레이션 및 왜곡 보정은 영상처리 분야
darkpgmr.tistory.com
[CV] Chessboard관련 함수들: OpenCV
cv.findChessboardCorners()cv.findChessboardCorners() 함수는 OpenCV 라이브러리에서 제공하는 함수chessboard 패턴의 코너를 찾는 데 사용됨.이 함수는 camera calibration 과정에서 자주 사용됨.입력 이미지에서 chessbo
ds31x.tistory.com
2023.09.26 - [Programming/DIP] - [DIP] Radial distortion : barrel and pincushion distortions
[DIP] Radial distortion : barrel and pincushion distortions
0. Remappingmatrix equation으로 표현할 수 없는 형태(non-linear)의 이미지 모양 변환을 위한 기능.OpenCV에서 cv2.remap() 함수를 통해 제공되며,lens distortion 및radial distortion등을모델링하거나 제거하는데 사용
dsaint31.tistory.com
2024.06.22 - [Programming/DIP] - [CV] Geometric Camera Model and Camera Calibration: Pinhole Camera
[CV] Geometric Camera Model and Camera Calibration: Pinhole Camera
Geometric Camera Model (or Camera Model)은 real world 와 camera의 pose에 따라,real world 와 camera의 image 간의 관계를approximation 함. 이 문서에서는 기본적인 Pinhole Camera Model에 기반하여 설명함.pinhole camera는
dsaint31.tistory.com
'Programming > DIP' 카테고리의 다른 글
[OpenCV] API Backend for VideoCapture (0) | 2024.09.11 |
---|---|
[DIP] Hu Moment (2) | 2024.09.10 |
[CV] Sharpness (선예도) (0) | 2024.09.05 |
[CV] Brightness vs. Intensity (0) | 2024.09.05 |
[CV] High Dynamic Range (1) | 2024.09.03 |