2022 하계 모각코

[3회차] Computer Vision - Gaussian blur, mean filtering, median filtering

yeonarom 2022. 7. 14. 19:10

[Computer Vision]

오늘의 Computer Vision에 사용한 원본 이미지는 아래와 같다.

원본 이미지


Gaussian blur

Gaussian blur는 가우시안 함수를 사용해 이미지를 흐리게 하는 것이다.

이미지 노이즈를 줄이고 디테일을 줄이기 위해 그래픽 소프트웨어에서 널리 사용되는 효과다.

 

Gaussain blur는 이미지의 각 픽셀에 적용할 변환을 계산하기 위해 가우시안 함수를 사용하는 이미지 흐림 필터 유형이다.

1차원에서 가우스 함수의 공식은 다음과 같다.

$$ G(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{x^2}{2\sigma^2}} $$

 

2차원에서 가우스 함수의 공식은 다음과 같다.

$$ G(x, y) = \frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}} $$

여기서 x는 수평축의 원점으로부터의 거리, y는 수직축의 원점으로부터의 거리, sigma는 가우스 분포의 표준편차이다.

이 공식을 사용해 이미지에 Gaussian blur를 적용해보자.

def gaussian(sigma, x, y):
    g = 1/(2*math.pi*(sigma**2))*np.exp(-(x**2+y**2)/(2*(sigma**2)))
    g = g/np.sum(g)
    return g

위와 같이 가우시안 함수를 작성하였다. 이 함수를 이용해 Gaussian blur를 수행한다.

blur = gaussian_blur(img, image, kw, kh, sigma)
plt.imshow(blur.astype(np.uint8))

여기서 img는 원본 이미지, image는 Gaussian blur를 수행한 결과를 담을 이미지, kw와 kh는 kernel의 가로, 세로 길이이고 sigma는 가우시안 함수에 사용될 표준편차이다.

아래는 kw=10, kh=10, sigma=10으로 하여 Gaussian blur를 실행했을 때 이미지의 모습이다.

 

Gaussian blur 적용 이미지


Mean filtering

Mean filtering은 각 픽셀의 값을 주위 픽셀의 평균값으로 적용하는 것이다.

3x3 kernel을 이용해 Mean filtering을 한다면 한 픽셀을 kernel의 중앙값으로 하여 kernel에 들어있는 픽셀의 값을 모두 더해 9로 나눈값으로 해당 픽셀의 값을 지정해준다.

주위 값을 비교해야하므로 kernel의 가로, 세로 길이는 같아야한다.

 

이미지에 Mean filtering을 적용해보자.

mean = mean_filtering(img, image, kw, kh)
plt.imshow(mean.astype(np.uint8))

여기서 img는 원본이미지, image는 Mean filtering을 수행한 결과를 담을 이미지, kw와 kh는 kernel의 가로, 세로 길이이다.

아래는 kw=10, kh=10으로 Mean filtering을 수행한 결과이다.

Mean filtering 적용 이미지


Median filtering

Median filtering은 각 픽셀의 값을 주위 픽셀의 중앙값으로 적용하는 것이다.

3x3 kernel을 이용해 Median filtering을 한다면 한 픽셀을 kernel의 중앙값으로 하여 kernel에 들어있는 픽셀의 값을 크기순으로 나열해 중앙값으로 해당 픽셀의 값을 지정해준다.

이 경우에 흰색과 검은색처럼 data들의 중심에서 멀리 벗어나는 값들은 제외시킬 수 있다는 장점이 있다.

하지만 편차가 적은 영역에서는 대부분이 비슷한 값으로 치환되어 detail이 떨어질 수 있다.

 

이미지에 Median filtering을 적용해보자.

median = median_filtering(img, image, kw, kh)
plt.imshow(median.astype(np.uint8))

여기서 img는 원본이미지, image는 Median filtering을 수행한 결과를 담을 이미지, kw와 kh는 kernel의 가로, 세로 길이이다.

아래는 kw=10, kh=10으로 Median filtering을 수행한 결과이다.

Median filtering 적용 이미지

'2022 하계 모각코' 카테고리의 다른 글

[4회차] 학습 계획서  (0) 2022.07.26
[3회차] Computer Vision - Rotation  (0) 2022.07.14
[3회차] 학습 계획서  (0) 2022.07.14
[2회차] Computer Vision - Scaling  (0) 2022.07.07
[2회차] 학습 계획서  (0) 2022.07.07