[딥러닝]OpenCV Python의 Filter
OpenCV에서 제공하는 2D 이미지에 적용 가능한 선형, 비선형 필터링 함수들에 대해 알아보자.
https://docs.opencv.org/4.x/d4/d86/group__imgproc__filter.html
OpenCV: Image Filtering
Functions and classes described in this section are used to perform various linear or non-linear filtering operations on 2D images (represented as Mat's). It means that for each pixel location \((x,y)\) in the source image (normally, rectangular), its neig
docs.opencv.org
🟥 OpenCV Filterring
Filtering은 Convolution과는 다른 개념으로 사용되는 이미지 처리 방법 중 하나이다. 그리고 특정 목적에 따라 필터를 달리하여 사용할 수 있고 서로 다른 방법을 결합하여 이미지 처리 작업을 더 효과적으로 수행할 수도 있다.
• Blurring Filters
주로 노이즈를 줄이거나 부드러운 효과를 주기 위해 사용되는 필터
- Average Blurring
> 커널의 평균을 사용하여 이미지를 부드럽게 만드는 필터
>이미지를 흐리게 하고 작은 노이즈를 제거
- Gaussian Blurring
> 가우시안 분포를 사용하여 블러링을 수행
> 노이즈 제거에 효과적이며, 엣지의 변화가 적음
- Median Blurring
> 주변 픽셀 값들의 중간값을 사용하여 블러링을 수행
> 특히 Salt-Pepper 노이즈 제거에 효과적
- Bilateral Filtering
> 엣지 보존 블러링으로, 엣지를 유지하면서 노이즈를 제거
> 엣지 주변의 블러링을 최소화하여 디테일을 보존
• Sharpening Filters
이미지의 에지와 디테일을 강조하여 더 선명한 효과를 주기 위해 사용
- Unsharp Masking
> 이미지의 고주파 성분을 강조하여 샤프닝 효과 창출(부드러운 이미지를 날카롭게)
- Laplacian Filter
> 라플라시안 연산을 사용하여 샤프닝을 수행
> 에지의 변화를 강조하여 선명한 이미지를 생성
• Edge Detection Filters
이미지에서 에지를 검출하여 개체의 형태와 경계를 식별하기 위해 사용
- Sobel Operator
> 이미지의 수평 및 수직 방향으로 에지를 검출
> 미분 연산을 통해 에지를 강조
- Scharr Operator
> Sobel 연산자의 개선된 버전으로, 더 정확한 에지 검출이 가능
> 에지 검출의 민감도를 높임
- Canny Edge Detector
> 멀티스테이지 에지 검출 알고리즘으로, 가장 널리 사용되는 에지 검출 방법 중 하나
> 노이즈 제거, 그라디언트 계산, 비최대 억제, 이력 임계값 등의 단계를 거쳐 정교한 에지를 검출
• Morphological Filters
이미지의 형태를 변형하거나, 구조적인 특징을 추출하기 위해 사용
- Erosion(침식)
> 전경 픽셀을 축소시켜 작은 개체나 노이즈를 제거
- Dilation(팽창)
> 전경 픽셀을 확장시켜 객체를 강조하고 구멍을 메움
- Opening(열기)
> 침식 후 팽창을 수행하여 작은 개체를 제거
- Closing(닫기)
> 팽창 후 침식을 수행하여 작은 구멍을 메움
- Gradient
> 팽창과 침식의 차이를 구하여 에지를 강조
etc)
- 미분 기반 필터링에는 Sobel, Scharr, Laplacian이 해당한다.
- Laplacian Filter를 이용한 엣지 검출도 가능하다.
- 엣지 검출은 grayscale이 용이하다.
참고하기 좋은 글