필터링
[OpenCV with Python] Filtering : Noise 제거 - 양방향 필터 Bilateral Filter
가우시안 잡음 제거에는 가우시안 필터가 효과적이다 이처럼 잡음이 있는 지글지글한 부분을 가우시안 필터로 완만하게 수정할 수 있다. 하지만 가우시안 블러를 심하게 적용하면 영상에 있는 엣지 부분에 훼손이 생긴다. 이 단점을 보완한 것이 양방향 필터(Bilateral Filter)이다. 양방향 필터 Bilateral filter 가우시안 필터를 양쪽 방향으로 두번 한다고해서 양방향이라는이름이 붙여졌다. 평균 값 필터 또는 가우시안 필터는 엣지 부근에서도 픽셀 값을 평탄하게 만드는 단점이 있다. 양방향 필터는 기준 픽셀과 이웃 픽셀과의 거리, 그리고 픽셀 값의 차이를 함께 고려하여 블러링 정도를 조절한다. 수식을 보면 가우시안 필터 함수(G)가 2개 있는 것을 볼 수 있다. 양방향 필터의 작동 원리 양방향 필..
[OpenCV with Python] Filtering : 영상에 샤프닝 적용 - Unsharp Mask
영상에 샤프닝을 적용하기 위해 언샤프 마스크가 필요하다. 언샤프 마스크 필터링(Unsharp Mask Filtering)은 날카롭지 않은(unsharp) 영상, 즉 부드러워진 영상을 이용하여 날카로운 영상을 생성한다. 언샤프 마스크 필터 Unsharp Mask Filtering 언샤프 마스크 필터는 기존 영상의 픽셀 + (기존 영상의 픽셀 - 가우시안 필터링으로 블러가 적용된 영상의 픽셀) 로 만들 수 있다. - 기존 영상의 픽셀에서 픽셀 값이 변화하는 구간 - 가우시안 필터가 적용된 픽셀 값 - 기존 영상의 픽셀 - 가우시안 필터가 적용된 픽셀 값 ➡️ 위 사진을 기존 영상의 픽셀에 더해주면 언샤프 마스크 필터가 된다. ✔︎ 언샤프 마스크 필터 구현 - np.clip np.clip 함수로 언샤프 마스크..
[OpenCV with Python] Filtering : 필터링이란?
영상 필터링(Image Filtering)은 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업이다. 필터링 종류 필터링 작동 방법은 크게 두 가지로 나눌 수 있다. (1) 주파수 공간에서의 필터링 (Frequency domain filtering) 주파수 값을 이용하는 필터링 방법이다. 영상에서 주파수 값을 추출하는 FFT를 거쳐서 추출한 값과 설정한 관심영역을 곱하는 IFFT를 통해 주파수 필터링이 작용한다. (2) 공간적 필터링(Spatial domain filtering) 영상의 픽셀 값을 직접 이용하는 필터링 방법이다. 대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용한다. 주로 마스크연산을 이용한다. (마스크 = 커널(kernel) = 윈도우(window) = 템플릿(templ..