필터링(Filtering)은 디지털 이미지 처리에서 가장 기본이 되면서도 강력한 연산 중 하나로, 이미지의 각 픽셀 값을 주변 이웃과의 관계를 이용해 새롭게 계산함으로써 전체 이미지의 특성을 변화시키는 작업이다. 단순히 픽셀 하나를 변경하는 것이 아니라, 공간적인 문맥(Context)을 고려하여 이미지에서 의미 있는 정보(정보 구조, 패턴 등)를 추출하거나, 이미지를 더 나은 형태로 변형(enhance)하는 데 목적이 있다.
예를 들어, 이미지 내의 에지(edge), 코너(corner), 블롭(blob) 등을 감지하거나, 저해상도 이미지를 고해상도로 재구성하는 초해상도(super-resolution), 결측 영역을 보완하는 이미지 인페인팅(in-painting), 노이즈 제거(denoising) 등 다양한 고급 작업이 필터링의 개념 위에 구축된다.
이러한 필터링은 수학적으로는 하나의 함수 또는 시스템이 이미지 위에서 작동하는 것처럼 이해할 수 있다. 즉, 선형 시스템(linear system)을 이미지에 적용되는 함수의 일종으로 바라볼 수 있으며, 이 관점에서 "linear systems are a type of function that operates over images"라고 표현할 수 있다. 이러한 시스템적 시각은 필터링을 보다 정형화하고, 수학적으로 해석하며, 다양한 필터를 설계하는 데 중요한 기반이 된다.

Key Equations & Meaning
이미지에 작용하는 함수(시스템)의 관점으로 바라보는 시스템적 직관으로 보면 필터링은 다음처럼 정리된다.
이미지 는 시스템 에 입력되고, 새로운 이미지 는 시스템의 출력이다.
즉,
여기서 는 일반적으로 주변 이웃 픽셀들과의 연산을 기반으로 정의되는 함수(필터)이다.
Practical Example
이미지에서 노이즈가 많은 경우, 간단한 평균 필터(moving average)를 적용하면 전체 이미지가 부드럽게(Smoothing) 변형 되어, 고주파 노이즈가 감소한다.

또는 특정 패턴(에지, 코너 등)을 추출하고자 할 때는 샤프닝 필터나 에지 검출 필터(Sobel, Laplacian 등)를 사용할 수 있다.
이 모든 필터들은 결국 입력 이미지를 일정한 함수 또는 커널(kernel)을 통해 변환하는 시스템으로 불 수 있다.
Aside
최근의 신경망 구조, 특히 CNN(Convolutional Neural Network)은 본질적으로 비선형 시스템이다. 그러나 그 내부 구조를 뜯어보면, 여러 개의 선형 시스템(=필터링 연산)이 쌓여 있는 구조임을 알 수 있다.
즉, CNN은 필터링을 확장한 구조이며, 각 합성곱(convolution)은 특정 특징(feature)을 감지하는 역할을 수행한다. 이처럼 필터링 개념은 단순한 이미지 개선을 넘어, 딥러닝에서의 표현 학습(expression learning)의 핵심 구성 요소로도 발전하였다.


필터링은 입력 이미지 에 공간적 연산자(spatial filter)를 적용하여, 새로운 이미지 를 생성하는 연산이다. 이 과정은 이미지의 특정 성분을 강조하거나 억제하여, 원하는 특성(예: 부드럽게 만들기, 가장자리 강조 등)을 추출하는 데 사용된다.

위 이미지는 Baboon 이미지에 smoothing filter(평활화 필터)를 적용한 결과를 보여준다. 왼쪽 원본 이미지에 비해, 오른쪽 이미지는 고주파 성분이 제거되어 부드럽게(smooth) 처리되었음을 확인할 수 있다.
2D 이동 평균 필터(Moving Average Filter)는 가장 기본적인 스무딩(Smoothing) 필터 중 하나로, 이미지의 각 픽셀 주변 3x3 영역의 평균값을 계산하여 해당 픽셀을 대체하는 방식이다. 이를 통해 고주파 노이즈가 제거되고, 전체 이미지가 부드럽게 된다. 이 필터는 저역통과 필터(Low-pass filter)의 역할을 하며, 구조는 단순하지만 효과적이다.
이동 평균 필터는 다음과 같은 수식으로 정의된다.
이는 중심 픽셀 을 기준으로 주변의 8개 픽셀과 자신을 포함한 3x3 영역의 값들을 모두 더한 후 9로 나눈 평균값을 출력 에 저장하는 방식이다.
곁들여 사용되는 커널(마스크)는 아래와 같다.

이 마스크는 모든 방향에 대해 동일한 가중치를 부여한다.
1단계: 입력 이미지 설정
중앙에 근처에 밝기가 90인 정사각형 블록들이 있고 주변은 모두 0인 상태이다.

2단계: 첫 번째 컨볼루션 결과
위 이미지에서 커널이 좌상단 외곽의 3x3 영역을 덮고 있지만, 모든 값이 0이므로
3단계: 밝기 90이 한 칸 포함됨
아래 이미지의 이동된 3x3 커널 안에 우하단 밝기 값이 90인 칸이 포함되었다.

4단계~6단계
90이 두 개, 세 개, 네 개 포함되며 점점 출력값이 20, 30으로 증가한다.

마지막 단계
중앙부 전체가 평균화되어, 중심부는 90이 유지되지만, 가장자리에는 점진적으로 낮은 밝기로 블렌딩된다.

이는 Smoothing 필터의 전형적인 효과로, 경계가 흐려지고 잡음이 줄어드는 결과를 초래한다.
아래 실제 이구아나 예시 이미지를 통해 확인해보면, 오리지널 이미지와 스무딩된 이미지를 비교해보면, 뾰족한 부분들이 약간 부드러워졌고 세부 디테일이 줄어든 것을 확인할 수 있다.

Advanced Notes
Moving Average Filter는 간단하지만, 모든 방향으로 동일한 가중치를 주기 때문에 에지나 세부 패턴 정보까지 희생하는 단점이 있다. 이를 개선하기 위해 가우시안 필터는 중심부에 더 큰 가중치를 주고, bilateral filter는 거리와 강도 차이까지 고려한다.
또한, 이 필터는 컨볼루션 연산의 기본 형태를 구성하므로, CNN의 첫 번째 필터링 단계와도 본질적으로 동일하다. 단지 CNN에서는 필터 값이 학습되지만, 여기서는 고정된 평균 필터 값을 사용하는 차이만 존재한다.
선형 시스템(Linear System)은 입력에 대한 반응(output)이 특정한 수학적 성질을 만족할 때 정의된다. 이러한 시스템은 이미지 필터링의 핵심 기반으로, 선형성과 시불변성(shift-invariance)을 갖출 때 컨볼루션 연산으로 구현 가능하다는 이점이 있다.
특히, 이동 평균 필터(Moving Average Filter)는 선형 시스템의 대표적인 예로, 이 필터가 실제로 시불변 시스템인지를 수식적으로 증명할 수 있다. 이로써 필터링 연산이 수학적으로도 안정성과 일반성을 확보하게 된다.
1. Additivity(가법성)
두 입력의 합에 대한 시스템의 반응은, 각각의 입력에 대한 반응의 합과 같다.
2. Homogeneity(동차성)
입력에 스칼라를 곱하면, 출력도 같은 스칼라가 곱해진다.
3. Superposition (중첩 원리)
가법성과 동차성을 동시에 만족하는 복합 성질로, 이 성질이 선형성(linearity)의 정의다.
4. Shift-Invariance(시불변성)
연산자 가 시간이나 위치 이동에 영향을 받지 않는 시스템이라면, 시불변(Shift-invariant)하다고 한다.
이를 이미지로 표현하면, 입력 이미지를 이동시켜도 출력 이미지가 동일하게 이동하면 시불변이다.
시불변 시스템은 컨볼루션의 기반이 되는 시스템으로, 필터링 연산의 지역적 일관성을 보장한다.
즉, 이미지의 어느 위치에 있든 같은 연산(예: 평균, 에지 검출 등)이 적용됨을 의미한다.
이러한 성질 덕분에 이미지 필터는 특정 위치에 대해 따로 설계할 필요 없이, 하나의 커널만으로 전체 이미지에 적용 가능하다.
1. 이동 평균 필터 수식
2. 입력을 (n_0, m_0)만큼 이동시킨 경우
3. 시스템에 이동된 입력을 통과시켜도
결과적으로 출력도 동일하게 이동됨. 즉 시불변이라는 의미이다.
Advanced Notes
시불변성은 필터가 위치에 관계없이 동일한 방식으로 작동함을 보장한다. 이 성질이 없다면, 예를 들어 이미지 중앙과 모서리에 서로 다른 처리를 해야 하고, 이는 필터 설계가 복잡해지는 결과를 낳는다.
또한 이 개념은 딥러닝 CNN의 기본 전제이기도 하다. CNN의 커널은 이미지 전체를 대상으로 반복적(shift)으로 적용되기 때문에, 시불변성을 가정하지 않으면 CNN 자체가 성립할 수 없다.
2D 임펄스 함수는 이미지 처리 및 선형 시스템 이론에서 시스템의 반응을 테스트하거나 필터의 본질적인 특성(Impulse Response)을 정의하기 위해 사용된다.
이는 1차원 시스템에서의 단위 임펄스 함수(Dirac delta, )를 2차원으로 확장한 것이다.
간단히 말해, 입력 이미지 중 오직 한 지점에서만 1의 값을 가지며, 그 외에는 모두 0인 이미지를 의미한다.
수식으로 표현하면 2차원 임펄스 함수 는 다음과 같이 정의된다.

즉 위 그림을 보면, 정중앙 한 점에서 수직으로 1의 값을 가지는 "스파이크(spike)"처럼 나타난다. 이는 임펄스 함수가 무한히 작고, 무한히 큰 진폭의 이상적인 자극을 수학적으로 단순화한 표현이다.
이 임펄스를 moving average filter(3x3 평균 필터)에 통과시키면, 그 필터가 어떤 출력을 만드는지 확인할 수 있다.

왼쪽 입력 은 (3,3) 위치에만 값이 1이고 나머지는 0이다. 오른쪽 출력 은 초기 상태로 아직 계산되지 않음을 볼 수 있다.

이후 계속 이동을 하다가,

입력 필터의 우 하단 픽셀 한 개에 1이 포함되고, 필터는 3x3이므로,

필터가 우측으로 한 칸씩 이동해도, 임펄스가 여전히 필터 영역에 포함이 된다. 따라서 임펄스가 포함된 위치마다 씩 추가된다.

필터가 계속 이동하면서 Output영역 중 중앙 3x3 영역이 모두 로 채워진다.

결과적으로, 입력 에 대한 출력은
즉, 임펄스가 필터를 통과하면 필터 자체가 출력으로 나타난다는 원리이다.
어떤 2D 입력 이미지 도 다음과 같이 2D 디랙 델타 함수 의 선형 결합으로 표현될 수 있다.
즉, 이미지 는 각 위치 에서의 픽셀 값 과, 해당 위치에 놓인 임펄스 들의 가중합으로 표현된다.
이 표현은 basis function 분해와 유사하며, 입력을 임펄스들의 조합으로 나타낸다는 점에서 필터링 개념 확장에 매우 중요하다.
필터 가 선형 시스템이라고 할 때, 선형성과 이동 불변성(Shift-Invariance)을 가정한다.
를 위와 같이 임펄스들의 조합으로 표현하면, 의 결과는 다음과 같이 전개된다.
선형성(Linearity)에 의해 다음과 같이 분리된다.
이동 불변성(Shift-Invariance)에 따라 시스템 에 임펄스를 입력하면 그에 대응되는 임펄스 응답 이 동일한 방식으로 이동되어 나온다.
최종적으로, LSI 시스템의 출력은 Convolution(컨볼루션)으로 표현된다.
여기서 는 2D 컨볼루션 연산을 의미한다.
이 수식은 디지털 영상 필터링에서 핵심 공식이며, 임펄스 응답 이 어떤 필터이냐에 따라 스무딩, 엣지 검출 등 다양한 효과를 구현할 수 있다.