[ch04] 필터링 - 블러링(2) : 가우시안 필터
평균값 필터에 의한 블러링의 단점
-
필터링 대상 위치에서 가까이 있는 픽셀과 멀리 있는 픽셀이 모두 같은 가중치를 사용하여 평균을 계산
-
멀리 있는 픽셀의 영향을 많이 받을 수 있음
-
(1차원) 가우시안 함수 (Gaussian function)
가우시안 함수의 특징
그래프는 좌우대칭의 종 모양의 곡선으로, 극한에 가까워질수록 값이 급격하게 감소하는 모습을 보인다.
2차원 가우시안 함수
2차원 가우시안 필터 마스크 (σ=1.0)
- 필터 마스크 크기 : (8σ + 1) 또는 (6σ + 1)
정 가운데 값인 0.1592를 중심으로 좌, 우, 대각선 대칭을 이룬다.
가우시안 필터링 함수
cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None) -> dst
- src : 입력 영상. 각 채널 별로 처리됨.
- dst : 출력 영상. src와 같은 크기, 같은 타입.
- ksize : 가우시안 커널 크기. (0,0)을 지정하면 sigma 값에 의해 자동 결정됨.
- 따라서, 임의로 지정하지 않는 것이 좋다.
- sigmaX : x방향 sigma
- sigmaY : y방향 sigma
- borderType : 가장자리 픽셀 확장 방식.
다양한 크기의 sigma를 사용한 가우시안 필터링
src = cv2.imread('rose.bmp', cv2.IMREAD_GRAYSCALE)
cv2.imshow('src', src)
for sigma in range(1, 6):
# sigma 값을 이용하여 가우시안 필터링
dst = cv2.GaussianBlur(src, (0, 0), sigma)
desc = 'sigma = {}'.format(sigma)
cv2.putText(dst, desc, (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
1.0, 255, 1, cv2.LINE_AA)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
sigma가 커질수록 가우시안 필터의 효과가 커지는 모습을 확인할 수 있다.
Author And Source
이 문제에 관하여([ch04] 필터링 - 블러링(2) : 가우시안 필터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@redorangeyellowy/ch04-필터링-블러링2-가우시안-필터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)