가우시안 커널을 생성하기 위한 식( 식1 )
average filter : 출처: datahackers ( 그림 1)
가우시안 필터에 대한 사진 ( 그림 2 )
가우시안 필터
- image 처리에서 주로 사용하는 필터중 하나이며, image에서 noise를 제거하거나 부드럽게 만들기 위해서 사용
- 각각의 픽셀의 값에 가우시안 분포를 적용해서, 주변 픽셀들과의 가중 평균을 계산하는 방식으로 동작
- 만약에 평균 필터를 사용한다면, 주변 픽셀들을 평균값으로 대체하나, 이는 대상 점에서 가까운 픽셀과 먼 픽셀의 연관을 반영 못함. ( 그림1 참고 )
- 하지만 gaussian filter는 댕상 점의 값이 크며, 대상점에서 멀어질수록 작아진다. ( 그림 2 참고 )
- 특징
- Gaussian Filter는 gaussian분포에 기반을 둔다.
- 식1을 가지고 가우시안 필터를 만드는데, 가우시안 분포는 평균이 0이고 표준편차에 영향을 받는다. 표준편차가 커질수록 필터의 영향 범위가 넓어진다.
- kernel의 size : Gaussian Filter를 적용시, kernel의 size는 filter의 효과를 결정한다.
- if, size of kernel is bigger, 효과↑ 및 범위 ↑
- 목적
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread('txt.jpg', cv2.IMREAD_GRAYSCALE)
gaussian_blurred = cv2.GaussianBlur(image, (3, 3), 1 )
- cv2.GaussianBlur( src , ksize , sigmaX , sigmaY=0 , borderType=cv2.BORDER_DEFAULT )
- src is image
- ksize is size of Gaussian_kernel 커널 크기가 커질수록 더 넓은 범위에서 블러링함.
- sigmaX 는 x축 방향으로의 Gaussian분포의 standard deviation(std)
- sigmaY는 y축 방향으로의...
- bordertype은 sobel 연산자 의 내용 참고
origin에 blur하고 sobel을 거친거