Unsharp Masking
개요
지난 시간에 배운 라플라시안 샤프닝 기법과 마찬가지로 오늘 배울 Unsharp Masking도 밝은 부분을 더 밝게 하고 어두운 부분을 더 어둡게 하여 이미지의 대비를 강조한다. 하지만 두 방법의 차이점은 Unsharp Masking이 원본 이미지를 블러 처리하여 생성된 흐릿한 이미지와 원본 이미지 사이의 차이를 이용한다는 점이다. 이 차이 정보를 원본 이미지에 다시 더해주어 세부 사항을 강조하고 이미지의 선명도를 향상한다.
본문
원리
다음과 같이 이미지의 경계 부분을 그래프로 그려보자. 지난 시간에도 다뤘지만, 기울기가 급격하게 변화하는 부분은 밝기가 변하는 지점으로, 경계가 명확해지는 곳이다. 이미지에 가우시안 필터, 평균 필터, 중앙값 필터 등의 블러 필터를 적용하면, 이런 급격한 기울기 변화가 완만해지면서 디테일한 정보가 줄어들고, 결과적으로 그래프가 부드러워진다. 블러 처리된 이미지는 디테일이 감소하여 전체적인 이미지의 대비가 줄어든 상태를 나타낸다.
이제 원본 이미지에서 블러 처리된 이미지를 빼면, 두 이미지 간의 차이가 강조된다. 이 차이는 실제로 해당 신호를 두 번 미분한 것과 유사한 효과를 나타내며, 경계 부분에서의 대비를 강조하는 결과를 만들어낸다. 이렇게 생성된 차이 이미지를 Unsharp Mask라고 부르며, 이것은 원본 이미지의 경계를 더욱 뚜렷하게 만드는 데 기여한다.
마지막 단계로, Unsharp Mask를 원본 이미지에 더함으로써, 경계가 강조된 이미지를 얻게 된다. 이 과정을 통해 이미지의 선명도는 개선되며, 디테일이 더욱 돋보이게 된다. 이렇게 샤프닝 된 이미지는 대비가 높아지고 눈에 띄는 향상된 시각적 선명도를 제공한다.
해당 과정을 수식으로 표현해 보자. 마스크 함수는 원본 함수에서 블러링 한 함수를 뺀 것이다. 따라서 Sharpening 된 이미지 배열 g(x,y)는 다음과 같이 표현된다.
여기서 k=1인 경우 Unsharp Masking이라고 하고, k > 1인 경우 Highboost Filtering이라고 한다.
실습
figure(1);
I = imread("dip_xe.jpg");
subplot(2, 3, [1, 4]); imshow(I); title("Original");
다음과 같은 이미지에 Unsharp Masking 기법을 적용해 보자.
w = fspecial('gaussian', [5 5], 1);
Iblurr = imfilter(I, w, 'same', 'replicate');
subplot(2, 3, 2); imshow(Iblurr); title("Blurred");
Imask = I - Iblurr;
subplot(2, 3, 3); imshow(Imask(:,:,1), []); title("Mask");
다음과 같이 3차원 이미지에 블러한 이미지를 빼면, 마스크가 나온다. 이때 Iblurr의 단일 채널을 이용하면 더욱 뚜렷하게 볼 수 있다. 이는 단일 채널만 사용하는 것이 해당 채널에서의 변화를 보다 명확하게 보여주는 반면, 전체 마스크 이미지를 사용할 땐 세 채널 모두의 변화를 합쳐서 보여줘 흐릿해 보인다. 그리고 이러한 변화는 빼기 연산으로 이루어지므로, 음수 값이 될 수 있으므로 imshow의 두 번째 인자로 빈 배열 []을 사용해 픽셀 값을 자동으로 조절해줘야 한다.
res = I + Imask;
subplot(2, 3, 5); imshow(res); title("Unsharp Mask");
k = 4.5;
res_highboost = I + k * Imask;
subplot(2, 3, 6); imshow(res_highboost); title("Highboost");
마지막으로 원본 이미지에 마스크 이미지를 더하여 Unsharp Masking 기법을 적용하고, k의 값을 조절하여 Highboost filtering 기법을 적용해 보자. k값이 커질수록 노이즈도 같이 증폭되는 것을 관찰할 수 있다.
'CS > 디지털영상처리' 카테고리의 다른 글
[디지털영상처리] Fourier theory (1) (0) | 2023.11.16 |
---|---|
[디지털영상처리] Image Sharpening (3) (0) | 2023.11.10 |
[디지털영상처리] Image Sharpening (1) (0) | 2023.11.06 |
[디지털영상처리] Smoothing Spatial Filtering (0) | 2023.11.05 |
[디지털영상처리] Spatial Filtering (1) (2) | 2023.11.02 |