코딩 및 기타/이미지

가우시안 필터 Gaussian Filter

정지홍 2025. 1. 9. 14:47

가우시안 커널을 생성하기 위한 식( 식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, 효과↑ 및 범위 ↑
  • 목적
    • 이미지 블러링
    • edge 검출 전처리

 

 

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을 거친거

'코딩 및 기타 > 이미지' 카테고리의 다른 글

HOG ( Histogram of Oriented Gradients )  (0) 2025.01.10
canny edge detection  (0) 2025.01.09
sobel 연산자  (0) 2025.01.09
이미지 양자화 ( image quantization )  (0) 2025.01.08
image binarization  (0) 2025.01.07