· 출처
https://en.wikipedia.org/wiki/Kernel_(image_processing)
위키피디아의 image processing을 설명한 이미지 중 하나입니다.
Identity가 원본임을 확인할 수 있습니다. (행렬에선 항등행렬로 많이 쓰이는 용어입니다.)
Ridge or edge detection 은 외곽선을 통해 딥러닝 초해상도 등 다양한 연구로 많이 활용되었습니다.
등등 많은 processing 기능이 있지만 우리는 Gaussian blur 와 Box blur를 볼 것입니다.
· 출처
https://medium.com/@bdhuma/6-basic-things-to-know-about-convolution-daef5e1bc411
6 basic things to know about Convolution
In mathematics, convolution is an operation performed on two functions (f and g) to produce a third function. Convolution is one of the…
medium.com
사이트를 들어가면 바로 메인 창에 있는 이미지가 바로 Blur에 사용하는 convolution(컨볼루전) 이다.
이미지처럼 [1][1]의 pixel value 를 계산한다고 한다면
Source pixel =
{
0, 0, 0
0, 1, 1,
0, 1, 2
};
Other pixel =
{
4, 0, 0
0, 0, 0,
0, 0, -4
};
답 :
(0 x 4) + (0 x 0) + (0 x 0) + (0 x 0) + (1 x 0) + (1 x 0) + (0 x 0) + (1 x 0) + (2 x -4)
= 0 + 0 + 0 + 0 + 0 + 0 + 0 + (-8)
= -8
이 됩니다.
다른 픽셀들도 마찬가지로 서로 맞닿아있는(대각,위아래, 양옆) 것들을 컨볼루전 연산을 합니다.
이렇게 근처에 픽셀을 섞어서 계산하는 방법으로 블러를 사용할 수 있습니다.
계산 방법을 알았으니 이제 진짜 가우시안 블러와 Box Blur vs Gaussian Blur 뭐가 다른지 확인해볼까요?
박스 블러 (Box Blur)
정의
박스 블러는 이미지를 블러링하기 위해 커널 내의 모든 요소가 동일한 값을 가지는 단순한 블러링 기법입니다. 각 픽셀의 값을 주변 픽셀 값들의 평균으로 대체합니다.
특징
- 간단한 계산: 커널 내의 모든 요소가 동일한 값을 가지므로 계산이 단순합니다.
- 동일한 가중치: 커널 내 모든 값이 동일한 가중치를 가지기 때문에 주변의 모든 픽셀이 동일한 중요도로 고려됩니다.
- 균일한 블러링: 블러링이 균일하게 적용되며, 이미지의 모든 부분에서 동일한 수준의 블러링이 발생합니다.
예시 커널
3x3 박스 블러 커널:
1/9 1/9 1/9
1/9 1/9 1/9
이 커널은 각 요소가 1/9 로, 주변 9개의 픽셀 값을 평균내어 블러링을 수행합니다.
Normalize(정규화)의 성격을 띄고 있습니다.
가우시안 블러 (Gaussian Blur)
정의
가우시안 블러는 가우시안 분포를 따르는 가중치 값을 사용하여 이미지 블러링을 수행하는 기법입니다. 가우시안 커널은 중심에서 멀어질수록 값이 기하급수적으로 감소합니다.
특징
- 복잡한 계산: 가우시안 분포를 기반으로 하기 때문에 박스 블러보다 계산이 더 복잡합니다.
- 가중치 적용: 커널 내의 값들이 가우시안 분포를 따르며, 중심 픽셀에 더 높은 가중치를 부여하고 주변 픽셀로 갈수록 가중치가 감소합니다.
- 자연스러운 블러링: 가중치가 중심에서 멀어질수록 감소하기 때문에 더 자연스럽고 부드러운 블러링 효과를 제공합니다.
예시 커널
5x5 가우시안 블러 커널 (표준편차 σ=1.0\sigma = 1.0):
4/256 16/256 24/256 16/256 4/256
6/256 24/256 36/256 24/256 6/256
4/256 16/256 24/256 16/256 4/256
1/256 4/256 6/256 4/256 1/256
이 커널은 가우시안 분포를 따르며, 중심 값이 가장 크고 주변으로 갈수록 값이 작아집니다.
approximation(근사값, 푸리에 변환) 의 성격을 띄고 있습니다.
하지만 separable gaussian 은 분리가 가능하기 때문에
1차원 연산으로 2차원보다 더 빠르게 gaussain blur 를 연산할 수 있습니다.
차이점 요약
- 커널 값의 분포:
- 박스 블러: 모든 커널 값이 동일합니다.
- 가우시안 블러: 커널 값이 가우시안 분포를 따릅니다. 중심에서 멀어질수록 값이 감소합니다.
- 블러링 효과:
- 박스 블러: 단순하고 균일한 블러링을 제공합니다.
- 가우시안 블러: 부드럽고 자연스러운 블러링을 제공합니다.
- 계산 복잡도:
- 박스 블러: 계산이 간단합니다.
- 가우시안 블러: 계산이 더 복잡합니다.
- 적용 범위:
- 박스 블러: 주로 간단한 블러링이 필요한 경우에 사용됩니다.
- 가우시안 블러: 더 자연스러운 블러링이 필요한 경우에 사용됩니다.
이 차이점을 통해 각 기법의 장단점을 이해하고, 특정 응용 분야에 맞게 적절한 블러링 기법을 선택할 수 있습니다.
'컴퓨터 그래픽스 > Blur' 카테고리의 다른 글
Box Blur vs Gaussian Blur(1) - 커널(kernel)과 컨볼루션(convolution) (0) | 2024.06.26 |
---|