더북(TheBook)

비등방성 확산 필터의 잡음 제거 효과를 알아보기 위하여 일반 영상에 가우시안 필터와 비등방성 확산 필터를 수행한 결과를 비교해보자. 그림 8-32는 camera.bmp 영상과 이 영상의 특정 y좌표에서의 그레이스케일 값을 1차원 함수 형태로 보여준다. 이러한 그래프를 프로파일profile이라고 부르며, 이 그림에서 y 값은 45를 사용하였다. 그림 8-32(a)의 원본 영상의 경우, 카메라맨의 머리를 지나가는 부분에서 그레이스케일 값이 급격하게 감소한 것을 볼 수 있다. 또한, 원본 영상에서 하늘 영역이 눈으로 보기에는 평탄한 느낌을 주지만, 실제 프로파일에서는 그레이스케일 값이 지글지글하게 나타나는 것을 볼 수 있다. 이 입력 영상에 대해 가우시안 필터링을 수행한 결과 영상과 프로파일 그래프를 그림 8-32(b)에 나타내었다. 그림 8-32(b)의 프로파일을 보면 하늘 영역의 날카로운 톱니 같은 프로파일이 상당히 평탄하게 펴진 것을 확인할 수 있다. 그러나 가우시안 필터는 카메라맨의 머리카락으로 인한 큰 엣지 정보도 무뎌지게 만드는 단점이 있다. 그림 8-32(C)는 비등방성 확산 필터를 수행한 결과 영상과 그 프로파일을 보여준다. 하늘 영역의 잡음은 깨끗하게 제거하고, 머리카락으로 인한 큰 그레이스케일 값의 변화는 그대로 유지해주는 결과를 보여준다. 즉, 비등방성 확산 필터는 경계선 정보는 유지하면서 영상의 잡음을 효과적으로 제거하는 능력이 있음을 확인할 수 있다.

그림 8-32 비등방성 확산 필터의 효과
(a) 입력 영상
(b) 가우시안 필터
(c) 비등방성 확산 필터

그러면 실제 비등방성 확산 필터링을 수행하는 함수를 작성해보자. 함수의 이름은 IppFilter Diffusion을 사용하기로 하고, IppFiilter.h 파일에 아래와 같이 함수 선언을 추가하자.

void IppFilterDiffusion(IppByteImage& imgSrc, IppFloatImage& imgDst, float lambda, float k, int iter);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.