Interpolation은 이산적으로 주어진 샘플들 사이에서 존재하지 않는 값을 추정하는 작업이다. 한 지점에서 interpolation을 통해 값을 추정하기 위해서는 주변의 알려진 샘플 값들을 참조해야 하고 적절한 가중치를 주어야 한다. 또한 interpolation 함수는 충분히 부드럽게 주변 샘플 값들과 연결이 되어야 한다. 이런 관점에서 보면 interpolation은 주변 샘플에 적절한 가중치를 주는 kernel 함수와 convolution으로 이해할 수 있고, 또한 샘플링 과정에서 잃어버린 정보를 샘플 데이터를 smoothing해서 복원하는 과정으로 해석할 수 있다.
kernel 함수가
의 형태로 표현할 수 있다.
interpolation함수는 샘플 위치를 통과해야 하므로,
즉,
영상처리에서 잘 알려진 interpolation 방법은 nearest-neighbor, linear, cubic interpolation이 많이 사용된다. 아래 그림은 kernel의 중심이 원점에 있는 경우를 그렸다.
Nearest neighbor:


Linear interpolation:


Cubic interpolation:


Cubic interpolation kernel이 다른 nearest-neighbor, linear kernel 보다 low-pass 특성이 강해지므로 이미지가 더 잘 smoothing 되는 특성을 가질 것임을 알 수 있다.
double KernelCubic(double x) {
double absx = fabs(x);
if (absx < 1) return 0.5 * (2 + absx * (absx * (3 * absx - 5)))
if (absx < 2) return 0.5 * (4 - absx * (absx * (absx + 5) - 8));
return 0;
}
일반적인 cubic convolution kernel은 4개의 샘플데이터를 이용해 보간하므로 폭이 4(반지름 =2)이다.
로 표현된다. 다음 예는

일반적인 cubic convolution kernel은 한 개의 모양을 조정하는 한 개의 조정 parameter을 가지는 연속이고 한 번 미분가능한 형태로 주어진다.
실용적인 파라미터의 범위는

Lanczos Interpolation:


Fixed-Point Bicubic Interpolation
아날로그 신호로부터 디지털 데이터로 바꿀 때 보통 시간당(sound) 또는 공간적 거리당(image) 일정한 횟수로 데이터를 수집한다. 이 비율을 sampling rate이라 한다. 그런데 sampling rate을 바꾸어야 할
kipl.tistory.com
Bicubic Interpolation
이미지 처리에서 픽셀 좌표는 간격이 1인 2차원 그리드의 교차점으로 볼 수 있다. 이미지를 확대하거나 축소할 때, 픽셀과 픽셀 사이 구간에서 값이 필요한 경우가 생긴다. 간단히는 주변의 가장
kipl.tistory.com
'Image Recognition > Fundamental' 카테고리의 다른 글
Sampling Theorem (0) | 2021.05.12 |
---|---|
Lanczos Resampling (0) | 2021.05.08 |
Fowler Angle (0) | 2021.04.05 |
Brute-Force Euclidean Distance Transform (0) | 2021.03.14 |
이미지에 Poisson Noise 넣기 (0) | 2021.03.06 |