David의 개발 이야기!

[CV Lecture 04] Image - Resizing 본문

컴퓨터비전

[CV Lecture 04] Image - Resizing

david.kim2028 2023. 11. 29. 21:22
반응형

A. Interpolation 

항상 헷갈리고, 이름만 보면 무서운 interpolation..

 

interpolation은, 주어진 데이터 포인트들 사이의 값을 추정하는 과정이다. 주어진 데이터들을 기반으로 missing 데이터를 예측하거나, 추론하는데 사용하는 방법이다. 

 

즉, 이미지를 확대하거나, 축소할때 원본 이미지에 없던 새로운 픽셀 값을 결정해야하는데, 이때 interpolation 기법을 사용해 새로운 픽셀 값을 추정한다. 

 

일반적인 Interpolation 방법으로는 다음과 같은 것들이 있다.

 

1. Neareat- neighbor interpolation (NN): 가장 가까운 픽셀 값을 그대로 사용. 계산이 간단하나 화질 저하 우려

2. Bilinear interpolation : 주변 4개의 픽셀 값을 기반으로 가중 평균을 취해 새로운 픽셀 값을 결정.

                                           Nearest-neighbor 보다 더 매끄럽지만, 여전히 제한적일 수 있음. 

3. Bicubic interpolation : 주변 16개의 픽셀을 사용해 보다 부드럽고 정교함.

 

B. Image - Resizing

 

1. Upsampling

 

기존의 이미즈를 크게 만들려면 어떻게 해야할까?

 

1. 새로운 이미지를 만든다. ( Create new image )

2. 좌표를 match 한다. ( Match up coordinate )

3. 새로운 지점에 값을 입힌다. ( Iterate over new points ) 

- Map to old coordinate

- Interpolate old values

 

 

왼쪽 상단 모서리를 (-0.5, -0.5) 라고 하면, 

 

-0.5 = a * (-0.5) + b

3.5 = a * (6.5) + b

 

가 된다. 왼쪽 상단 모서리를 기준으로 좌표계가 2개 있다고 생각하면 된다.

 

2. Downsampling

크기를 줄일려면 어떻게 해야할까?

 

1. Smoothing

2. Downsampling 

 

를 반복하면 된다!

 

만약에 Smoothing을 하지 않으면, 이미지가 지글지글해지는 것을 아래 그림과 같이 볼 수 있다.

 

 

 

오늘은 Interpolation 기법과, Image를 Resizing 하는 것을 배웠다.

반응형
Comments