영상 필터링 (Image Filtering)
개요
- 영상의 각 픽셀 값을 그 주변 픽셀들과 결합(연산)하여 새로운 픽셀 값을 만들어내는 과정으로, 영상을 부드럽게 하거나(노이즈 제거), 선명하게 하거나(샤프닝), 특징을 추출할 수 있음.
필터링의 목적 및 방법
1. 노이즈 제거 (Noise reduction)
- 센서 잡음, 압축 잡음, 조명 변화 등 제거
2. 영상 개선 (Image enhancement)
- 흐릿한 영상을 선명하게 → 샤프닝 필터
3. 특징 추출 (Feature extraction)
- 엣지, 코너, 패턴 등을 검출
- 컴퓨터 비전 및 객체 인식의 전처리 단계
4. 주파수 성분 제어
- 저주파(밝기 변화) ↔ 고주파(경계, 세부 무늬) 조절
- 푸리에 변환 기반 필터링과 연결
필터링의 두 가지 접근 방법
1. 공간 영역 필터링 (Spatial domain filtering)
- 영상 좌표계에서 직접 연산
- 커널(마스크, mask)을 영상에 슬라이딩하며 적용
- 컨볼루션(Convolution) 또는 상관(Correlation) 연산 사용
2. 주파수 영역 필터링 (Frequency domain filtering)
- 영상 → 푸리에 변환(FFT) → 주파수 영역에서 마스크 적용 → 역변환
- 저역 통과, 고역 통과, 대역 통과 필터 가능
- 이론적으로 정확한 성분 분리 가능하나, 구현이 복잡하다.
컨볼루션 (Convolution)
개요
- 공간 영역 필터링의 핵심 연산으로, 입력 영상과 필터(커널)를 겹쳐가며 곱하고 더해서 새로운 픽셀 값을 만든다.
연산 방법
- 컨볼루션 연산은 정의된 필터(커널)의 영역만큼 원본 영상의 대상 픽셀에서 범위 내 대응되는 각 점끼리의 곱셈을 한 것을 모두 더하는 연산으로, 원본 영상의 모든 픽셀에 대해 sliding 하며 수행한다.
- 출력 이미지의 크기가 바뀌는 것을 방지하기 위해(첫번째 픽셀에서도 온전히 커널에 대한 컨볼루션 연산을 하기 위해) Zero Padding 등의 방법이 사용된다.
- : 출력 영상
- : 입력 영상
- : 필터(커널)
- : 커널 사이즈
필터(커널)
- 작은 커널: 연산량 적고, 세부 보존.
- 큰 커널: 더 강한 블러 / 노이즈 제거 가능, 하지만 세부 손실.
- 홀수 크기(3×3, 5×5)를 사용하는 이유: 중심 픽셀 기준을 명확히 하기 위해.
OpenCV
- OpenCV의
filter2D
함수를 이용해 생성된 커널과 이미지의 컨볼루션 연산을 할 수 있다. - cv2.filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None) → dst
- src : 입력 영상
- ddepth : 출력 영상 데이터 타입. (e.g) cv2.CV_8U, cv2.CV_32F, cv2.CV_64F, -1을 지정하면 src와 같은 타입의 dst 영상을 생성한다.
- kernel: 필터 마스크 행렬. 실수형.
- anchor: 고정점 위치. (-1, -1)이면 필터 중앙을 고정점으로 사용
- delta: 추가적으로 더할 값
- borderType: 가장자리 픽셀 확장 방식
- dst: 출력 영상
주요 필터링 방법
- 블러링 및 샤프닝 필터 : 5-1. 블러링 및 샤프닝 필터
- 엣지 검출 필터 : 5-2. 엣지 검출 필터
스무딩(Smoothing) 필터
- 블러링(Bluring), 저주파 통과, 노이즈 제거 중심
- 평균 필터 (
cv2.blur
)- 커널 평균을 계산 → 단순 블러 효과
- 장점/단점 (연산 빠름 / 엣지 흐려짐)
- 가우시안 필터 (
cv2.GaussianBlur
)- 가우시안 분포 기반 가중치 → 부드러운 블러
- σ(표준편차)에 따른 효과 차이
- 중간값 필터 (
cv2.medianBlur
)- 중앙값 대체 → Salt & Pepper 노이즈에 강함
- 양방향 필터 (
cv2.bilateralFilter
)- 공간 + 색상 거리 모두 고려 → 엣지 보존 블러
샤프닝(Sharpening) 필터
- 고주파 강조, 선명도 향상
- 언샤프 마스킹 (Unsharp Masking)
- 블러 영상 빼서 고주파만 강조 (
cv2.filter2D
로 구현)
- 블러 영상 빼서 고주파만 강조 (
엣지 검출(Edge Detection) 필터
- 특징 추출, 고주파 성분만
- 라플라시안 필터 (
cv2.Laplacian
)- 2차 미분 기반, 경계 강조
-
- Sobel 필터 (
cv2.Sobel
)- 1차 미분 기반, 수평/수직 방향 엣지
- Sobel 필터 (
- Canny Edge Detector (
cv2.Canny
)- 다단계 처리(가우시안 → 그라디언트 → 얇게 → 이력 임계)
Prev : 4. 영상 리사이징 및 보간법
Next :