[ch04] 필터링 - 필터링 이해하기

빨주노·2021년 8월 20일
0

영상의 필터링 (image filtering)

  • 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업

주파수 공간에서의 필터링 (Frequency domain filtering)

  • FFT(Fast Fourier Transform) : 푸리에 변환에 근거하여 근사공식을 이용한 이산 푸리에 변환(discrete transform)을 계산할 때 연산횟수를 줄일 수 있도록 고안된 알고리즘이다.
  • IFFT(Inversed FFT) : 역 FFT

공간적 필터링 (Spatial domain filtering)

  • 영상의 픽셀 값을 직접 이용하는 필터링 방법
    • 대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용
  • 주로 마스크(mask) 연산을 이용함
    (마스크 = 커널(kernel) = 윈도우(window) = 템플릿(template))

다양한 모양과 크기의 마스크

마스크의 형태와 값에 따라 필터의 역할이 결정됨

  • 영상 부드럽게 만들기
  • 영상 날카롭게 만들기
  • 에지(edge) 검출
  • 잡음 제거

3x3 크기의 마스크를 이용한 공간적 필터링

  • (1, 1) 좌표에서 필터링
  • (2, 1) 좌표에서 필터링

최외곽 픽셀 처리

좌측의 ? 부분은 가운데 a를 기준으로 좌, 우, 대각선 대칭이 되도록 채워지는 것을 확인할 수 있다.

OpenCV 필터링에서 지원하는 가장자리 픽셀 확장 방법

default는 BORDER_REFLECT101이다.

기본적인 2D 필터링

cv2.filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None) -> dst
  • src : 입력 영상
  • ddepth : 출력 영상 데이터 타입. -1을 지정하면 src와 같은 dst 영상을 생성
    • ex) cv2.CV_8U, cv2.CV_32F, cv2.CV_64F
  • kernel : 필터 마스크 행렬. 실수형.
  • anchor : 고정점 위치. (-1, -1)이면 필터 중앙을 고정점으로 사용
  • delta : 추가적으로 더할 값
  • borderType : 가장자리 픽셀 확장 방식
  • dst : 출력 영상
profile
딥 하게 딥러닝 하는중

0개의 댓글

관련 채용 정보