Image warping
이미지 워핑은 이미지의 형태를 변형하는 과정으로, 특정 알고리즘에 따라 이미지의 픽셀을 새로운 위치로 매핑함으로써 이미지의 모양을 변형시키는 과정이다. 아래와 같이 다양한 워핑 기법이 존재한다.
이미지 필터링이 아래와 같이 화소의 range를 바꾸는 기법이라면
이미지 와핑은 아래와 같이 spatial domain 자체를 바꾸는 기법이다.
Forwad Warping
Source image(f(x))의 픽셀들을 h(x)함수에 따라 Target(g(x))의 지정된 위치에 옮기는 방식이다.
그러나 새롭게 옮긴 값들이 아래 그림과 같이 픽셀들의 사이에 위치하게 되는 문제가 있다.
이를 해결하기 위해 고안된 방법이 splatting이다.
Splatting이란 본래 액체가 팍 튄다는 뜻인데 p'점을 떨어뜨리면 주위로 물감이 튀듯 그려진다는 의미를 담은 이름이다. 위 그림과 같이 forward warping과정에서 지정된 지점 기준으로 일정한 사이즈의 원을 정하고 그 범위에 포함되는 픽셀을 모두 p값으로 바꾸는 것이다.
Inverse Warping
Inverse warping은 Forward warping과는 반대로 변화시킬 틀에 들어갈 픽셀에서 h(x)연산을 역추적하여 어느 픽셀에서 값을 가져와야하는지 따지는 방식이다.
이때도 마찬가지로 아래와 같이 픽셀들 사이값을 가져와야하는 일이 발생하는데 이를 해결하기 위해 진행하는 interpolation의 몇가지 방식을 살펴보자.
Nearest neighbor 기법은 가장 가까운 픽셀의 값을 그대로 갖고와서 사용하는 것이다. 위 그림의 예시로 든다면 파란점이 좌하단 값과 가장 가까우니 해당 픽셀의 값을 가져와서 g(x)의 붉은 점 위치의 값으로 사용하는 것이다.
Nearest neighbor 기법은 Zero-Order 기법이어서 그 연산 과정은 간단하지만 aliasing을 방지하기에 충분한 방법이 아니다.
위 그림과 같이 자글자글 거리는 jaggies가 발생한다. 이를 개선한 가장 많이 쓰이는 방식은 Bilinear Interpolation이다.
Bilinear Interpolation은 아래 그림과 같이 픽셀들 사이의 지점을 이용해야할때 그 주변 픽셀들에서 거리에 따라 가중치를 적용하여 값을 참조해오는 방식이다.
가까울 수록 더 많이 참조되는 일반적인 거리 기반 가중치 적용 기법이라고 보면된다.
추가적으로 Bicubic interpolation 기법이 존재하는데 이는 아래와 같이 linear 함수가 아닌 3차함수를 이용하여 interpolation을 진행하는 것이다.
Bicubic 기법은 Bilinear 기법보다 성능이 조금 상승되나 연산량이 너무 많이 증가해서 보통의 경우 그 trade-off가 합리적이라고 판단되지 않아서 자주 사용되지 않는다.
'Quality control (Univ. Study) > Digital Image Processing' 카테고리의 다른 글
Digital Image Processing - Color Image Processing (1) | 2024.05.01 |
---|---|
Digital Image Processing - Fourier transform / Frequency domain (0) | 2024.04.18 |
DIP 실습 - Median / Bilateral / Canny edge detection (0) | 2024.04.12 |
Digital Image Processing - Subsampling (3) | 2024.04.10 |
Digital Image Processing - Smoothing / Edging (0) | 2024.04.05 |