8.1.1 공간적 필터링의 기본 개념
필터filter는 일상 생활에서도 많이 사용하는 말이다. 필터는 무언가를 걸러 주는 기능을 수행한다. 예를 들어 에어컨에 들어 있는 필터는 유입되는 공기 중에서 먼지를 걸러 내는 역할을 한다. 영상 처리 및 신호 처리에서도 필터를 이용한 작업을 자주 수행한다. 영상을 포함한 신호에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러 내는 작업을 필터링filtering이라고 한다.
필터링의 개념은 신호 처리 분야에서 푸리에 변환Fourier Transform으로부터 시작되었다. 푸리에 변환이란 공간적인 신호를 주파수 공간으로 변환시키는 수학적인 개념이다. 공간적 영역의 영상을 주파수 공간으로 변환시키고, 주파수 공간에서 특정 주파수 성분을 제거하는 작업을 주파수 공간에서의 필터링이라고 한다. 실제 주파수 공간에서 필터링을 수행하는 방법에 대해서는 10장에서 자세하게 설명할 것이다. 이 장에서는 주파수 공간에서 수행하는 필터링이 아니라 단순히 픽셀 값을 그대로 사용하여 영상에서 원하는 정보만을 걸러 내는 영상 처리 기법에 대해 설명한다. 이처럼 픽셀 값을 직접 사용하여 필터링을 수행하는 방식을 공간적 필터링spatial filtering이라고 지칭한다.
공간적 필터링을 구현함에 있어서 마스크mask를 사용하는 방식이 가장 일반적이다. 마스크는 종종 윈도우window, 템플릿template, 커널kernel 등의 용어들과 혼용되기도 한다. 마스크를 사용하여 필터링을 수행하는 방법은 연산 방법이 매우 간단하고 이해하기가 쉽기 때문에 영상 처리를 처음 배우는 학생들이 따라 해보며 배우기 적합한 영상 처리 알고리즘이다.
그림 8-1은 3×3 크기의 마스크를 이용한 필터링 방법을 개괄적으로 보여준다. 그림 8-1에서 f(x, y)는 입력 영상을 의미하고, m(i, j)는 마스크를 의미한다.
마스크 연산에 의해 새로 결정되는 영상의 픽셀 값은 다음과 같다.
즉, 입력 영상의 특정 좌표 (x, y)에 마스크 m의 중앙을 위치시키고, 마스크의 크기만큼 영상의 픽셀 값과 마스크의 값을 곱한 후 그 값들을 모두 더하여 결과 영상의 (x, y) 좌표 값으로 설정하는 것이다. 여기서 마스크 m(i, j)의 값에 따라 이 마스크 연산이 어떤 역할을 하는지가 결정된다. 마스크 값의 형태에 따라 영상을 전반적으로 부드럽게 만들 수도 있고, 반대로 날카롭게 만들 수도 있다. 또는 영상에서 엣지edge 성분만 나타나도록 만들 수도 있다.