곤약노트

이미지 변환 (Image Transformation) ⑥Convolution과 Image Filtering 본문

Data Science/High-Dimensional Data Analytics

이미지 변환 (Image Transformation) ⑥Convolution과 Image Filtering

곤약처럼 부드럽게, 쫀쫀하게 2025. 7. 11. 09:00

1. Convolution이란? 이미지 처리의 핵심 연산

Convolution(합성곱)은 두 함수(예: 이미지와 필터)를 합쳐서 새로운 결과를 만들어내는 수학적 연산입니다. 이미지 처리에서는 이를 활용해 이미지에 다양한 효과를 줄 수 있습니다.

 

Continuous:

$$(f * g)(t) = \int_{-\infty}^{\infty} f(\tau)\,g(t - \tau)\,d\tau$$

Discrete:

$$(f * g)[n] = \sum_{m=-\infty}^{\infty} f[m] \cdot g[n - m]$$

 

쉽게 말하면, 이미지에서 일정한 패턴(마스크, 필터)을 기준으로 각 픽셀을 바꿔주는 과정.

 

2. Convolution의 활용

- 노이즈 제거 (Denoising)

- 흐림 효과 (Blurring)

- 샤프닝 (Sharpening)

- 엠보싱 (Embossing)

-엣지 검출 (Edge Detection)

 

3. Image Filtering이란?

이미지 필터링(Image Filtering)은 마스크(mask) 또는 커널(kernel)이라고 불리는 작은 행렬을 이미지에 적용(convolve)해서 새로운 이미지를 만들어내는 기법입니다.

 

핵심 개념: 마스크(mask)
  • 마스크는 작은 행렬 (예: 3x3, 5x5 등)
  • 각 픽셀 주변의 값을 읽고, 가중치를 곱해 새로운 값을 계산
Sharpening [[0, -1, 0], [-1, 5, -1], [0, -1, 0]] 경계 강조, 선명하게
Blurring 1/9 * [[1,1,1],[1,1,1],[1,1,1]] 부드럽게 흐림
Edge Detection 여러 종류 있음 경계만 추출

 

4. Convolution 연산 방법 (with Mask) 

1. 마스크를 좌우, 상하로 뒤집기 (flip)

2. 이미지의 각 위치에 마스크를 올림

3. 각 대응되는 원소끼리 곱하고, 다 더함

4. 그 합을 결과 이미지의 해당 위치 픽셀로 지정

 

중심 기준으로 주변 픽셀을 반영해 새로운 값을 계산하는 것!

 

*경계 처리: Padding Convolution을 할 때, 이미지 가장자리는 마스크가 겹치기 어렵습니다. 그래서 보통 가장자리를 0으로 채워서 이미지 크기를 유지합니다.