상세 컨텐츠

본문 제목

영상의 필터링

영상처리/OpenCV Python

by cepiloth 2021. 5. 25. 11:52

본문

728x90
반응형

영상에서 필요한 정보만 통과시키고 원치 않는 정보를 걸러내는 작업(e.g, 고주파 필터, 저주파 필터)

 

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

쉽게 말하면 저주파는 영상에서 부드러운 영역, 고주파는 픽셀 값이 커지는 부분

 

공간적 필터링 (Spatial domain filtering)

영상의 픽셀 값을 직접 이용하는 필터링 방법 
-  대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용하며 주로 마스크(mask) 연산을 이용함 
같은 용어 : 마스크(행렬), 커널(kernel), 윈도우(window), 템플릿(template) ​ 
- 다양한 모양과 크기의 마스크

 

- 마스크의 형태와 값에 따라 필터의 역할이 결정된다.
영상 부드럽게 만들기 - blur
영상 날카롭게 만들기 - sharpinig
에지(edge) 검출 - sobel, robert, canny edge
잡음 제거 - gauss blur

- 3x3 크기의 마스크를 이용한 공간적 필터링 : 컨볼루션(Convolution) 연산이라고도 불림

 

최외곽 픽셀 처리

0, 0 좌표 이전의 좌표 처리를 하는 방법 일반적으로는 제로 패딩 기법을 사용

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

OpenCV 에서는 기본적인 2D 필터로 filter2D메서드를 제공한다.

#OpenCV 기본적인 2D 필터링

/*
src : 입력 영상
ddepth : 출력 영상 데이터 타입. (e.g) CV_8U, CV_32F, CV64_F
kernel : 필터 마스크 행렬. 실수형
anchor : 고정점 위치, (-1, -1)이면 필터 중앙을 고정점으로 사용
delta : 추가적으로 더할 값
borderType : 가장자리 픽셀 확장 방식
dst : 출력 영상
*/
cv.filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, norderType, dst)

 

728x90
반응형

관련글 더보기

댓글 영역