Matlab을 이용한 영상처리 - 7. 고주파 필터, 저주파 필터

Programming/Image Processing 2010. 8. 27. 17:28

영상처리에서 작은 영역에서 픽셀의 변화가 클때 고주파라고 지칭하고, 픽셀의 변화가 작을때  저주파라고 지칭한다.
고주파 필터는 고주파만을 살리고 저주파들을 감소시키거나 없애는 필터이며,
저주파 필터는 저주파만을 살리고 고주파들을 감소시키거나 없앤다.

고주파필터의 예로 laplacian, 저주파필터의 예로 gaussian이 있다.

이번 포스팅에서는 상기 두개의 필터링을 사용해보자.

먼저 고주파 필터부터 생각해보자.
이미지에서 어떤 부분들이 고주파가 될 수 있을까? 에지(edge) 부분이 고주파가 될 가능성이 크다.

때문에 고주파 필터를 사용하면 대체로 이미지가 분명해 진다.

고주파 필터의 마스크는 다음과 같은 형태이다.

              1    -2    1
Mask  =  -2    -4   -2
              1    -2    1

Mask의 큰 특징은, 바로 배열 내부의 값들의 합이 0이라는 것이다.

filterring을 할때, 마스크들의 각 인덱스와 이미지의 픽셀들을 곱해 총 합을 구하여 그 중앙의 픽셀을 결정한다는 것을 잊지말자.
만약 저주파라면 주변픽셀들의 값들이 비슷하기 때문에 더했을때 대체로 0에 가까울 수 밖에없으며,
반대로 고주파일때는 큰값을 가지게 된다.

소스를 살펴보자.


11번라인에서 laplacian 필터를 선택하고 있다. laplacian은 실제로는

           0.1667    0.6667     0.1667
Mask = 0.6667   -3.3333    0.6667
           0.1667    0.6667     0.1667

와 같은 값을 가지고 있다. 이 마스크 값의 합도 0에 가깝다 .

12번라인에서 필터를 이미지 g에 적용하고 13번에서 출력하고 있다.
결과를 보자.


이처럼 경계들이 강조된 이미지가 출력된다.



반대로 저주파 필터링인 Gaussian은 표준함수를 이용하는데 , σ 가 커지면 표준함수가 퍼지고 , 작아지면 표준함수가 집중되는 양상을 보인다.



11~12라인까지 필터 사이즈 11 x 11 , σ = 0.5 인 가우시안 필터를 만들어 적용,
13라인에서 3차원 그래프 ( 해당 필터 )

16~17라인까지 필터 사이즈 11 x 11, σ = 2 인 가우시안 필터 적용,
18에서 그래프를 출력하고 있다.


결과는 다음과 같다 .


첫번째 filter - f 의 결과는 원본과 별 차이가없어 이미지 첨부를 생각하였다.
두번째 필터와 그 그래프를 보면 대체적으로 average 필터와 비슷한 결과를 출력함을 확인할 수 있다.