픽셀값의 변화가 없으면 Low, 많으면 High frequancy

변화를 없게 하고 싶으면 high성분을 없애는 low-pass filter(bullering, smoothing)

변화를 두드러지게 하고 싶으면 low성분을 없애는 high-pass filter(sharpening)

 

low-pass filter는 모든 값의 합이 1이 되어야 함 - average filter는 본래 값(중앙 값)을 더 많이 가져가지 못함 -> 가우시안 사용하여 해결

 

high-pass filter는 모든 값의 합이 0이 되어야 함 - laplacian filter -> 가우시안을 합한 log필터도 사용

 

※ 가우시안 필터를 사용하면 결과 값은 더 좋아지지만 연산량이 많아지게 됨

 

Edge Sharpening : 인쇄업계 용어, edge를 살리면서 원본까지 살리고 싶을 때 사용

high-pass filter의 경우 윤곽(edge)만 흰색, 나머지 부분은 모두 검정으로 나타나 원본과 많이 달라짐

-> unsharp masking을 사용

 

(a)는 원본 사진의 edge부분, (b)는 원본사진을 blur처리(low-pass filtering)하여 나온 edge부분

여기서 (b)에 적당한 k(k<0)값을 곱하여 원본이미지와 빼주면 edge는 부각되고 edge가 아닌 부분도 어느정도 살릴 수 있게 됨

 

filter계수

 

matlab에서 default α값은 0.2

 

high-boost filtering(고역증대필터) : A/(A-1) (original)-  1/(A-1)(low pass) or A/(2A-1) (original)-  (1-A)/(2A-1)(low pass)

 3/5≤A≤5/6으로 설정하는 경우가 최적

 

nonlinear filter : 범위내 최대, 최소, 중간값 등을 선택하여 mask를 만들어냄

 

매트랩 함수

 

zero padding 포함해야 값이 나옴

 

 

 

 

Edge-Pregerving Blurring Filters

Average와 Gaussian은 전체 image를 blurring하여 edge값도 blurring하는 문제점을 보임

따라서 edge를 가능한 sharp하게 유지하면서 low frequency components만을 blurring함

 

 

3가지 방법

1) Median filters

2) kuwahara filters

3) Bilateral filters

 

그 중 Bilateral filter의 matlab사용

 

 

ROI(Region of Interest Processing) : 제한된 영역만을 지정하여 Processing

 

 

위의 사진처럼 범위를 정하여 processing하고 싶을 때

matlab에서 roipoly(image 변수, [columns], [rows]) 으로 정의됨

 

>> ig=imread('iguana.tif');

>> roi=roipoly(ig,[406 600 600 406],[58 58 231 231]);

 

이렇게 범위를 지정한 후 지금까지 배웠던 filter들을 모두 적용할 수 있음

 

 

결과

 

 

 

 

 

 

 

 

+ Recent posts