CS/디지털영상처리

[디지털영상처리] Filtering in Frequency Domain (2)

nowkoes 2024. 1. 4. 18:42

본문

2D DFT Properties (1)

출처: newion.uwinnipeg.ca/

 

 지난 시간엔 샘플링을 위한 조건에 대해 배웠었다. 이번 시간에는 이차원에서의 이산 푸리에 변환의 중요한 성질들을 다뤄보도록 하겠다.

 

 

 위의 표에서 주목해야 할 점은 Translation이다. DFT를 적용한 결과는 일반적으로 저주파수에서 고주파수로 정렬되어 나타난다. 이는 주어진 이산 신호에 대해 직류 성분(가장 낮은 주파수)부터 높은 주파수의 성분까지 차례대로 계산되기 때문이다. 결과적으로 DFT의 출력은 주파수가 증가하는 순서로 배열된다. 

 

 

  그러나 이러한 배열은 직관적으로 이해하기 어려우므로, 이미지의 DFT 결과에서 저주파수 성분을 중앙에 위치시키기 위해 반주기씩 이동시키는 과정이 적용된다. 이 과정을 통해 저주파수 성분이 중앙으로 이동하고, 고주파수 성분은 양쪽 끝으로 이동한다. 이러한 재배열은 이미지의 주파수 성분을 더 쉽게 분석하고 해석할 수 있게 한다. DFT는 신호가 무한히 반복된다고 가정하므로, 이는 실제 디지털 이미지 자체가 주기적이지 않더라도 적용될 수 있다. 

  • 저주파수가 양쪽 끝단에 있을 때 직관적이지 않은 이유는 우리가 일반적으로 이미지를 볼 때 중앙이 저주파수인 것이 익숙하기 때문이다.
  • 반주기를 이동하는 이유는 주파수 스펙트럼의 대칭성 때문이다. 실수 신호에 대한 DFT 결과에 반주기를 이동시키면 이 대칭성을 중앙에서 볼 수 있게 된다. 

 

 

 이미지의 크기가 M*N이고 0이 아닌 정수 k1과 k2가 있다고 가정해 보자. 위의 식을 통해 공간 영역과 주파수 영역에서의 신호 f(x, y)와 F(u, v)가 M과 N에 대해 주기적임을 알 수 있다. 

 

 

 여기서 DFT의 Translate 성질을 이용하여 u0에 M/2를 대입하면, 1차원 DFT에서 주파수 영역이 반주기만큼 이동하는 것을 확인할 수 있다. 이 원리를 2차원으로 확장하면, 아래와 같이 주파수 스펙트럼이 중심으로 이동하는 것을 확인할 수 있다.

 


2D DFT Properties 실습

 다음으로 중요한 성질은 푸리에 크기(Spectrum)와 각도(Phase angle)다. 일반적으로 푸리에 변환 결과는 복소 지수의 형태기 때문에 다음과 같이 크기(절댓값)와 방향(각도)으로 나타낼 수 있다.

 

 

 여기서 크기와 각도를 이용하여 이미지에서 주요한 성분을 추출할 수 있다. 여기서 크기를 Fourier(혹은 Magnitude) Spectrum, 각도를 Phase Angle이라고 표현한다.

 

 

 푸리에 스펙트럼은 이미지의 주파수 성분의 강도, 즉 크기를 나타낸다. 이는 이미지의 밝기와 색상 강도에 직접적으로 연결된다. 이미지에서 저주파수 성분은 넓은 영역에 걸쳐 서서히 변화하는 밝기와 색상을 나타내며, 이는 전체 이미지의 기본적인 색감과 밝기를 결정한다. 저주파수 성분이 강할수록 이미지의 평균 밝기는 더 강해다.

 

 푸리에 페이즈는 이미지 내 주파수 성분의 시간적 또는 공간적 위치를 나타낸다. 이미지에서 페이즈 정보는 윤곽선, 모서리, 텍스처 등과 같은 구조적인 정보를 포함하며, 이는 이미지의 형태와 윤곽을 결정하는 중요한 요소다. 페이즈는 주파수 성분들이 상호 작용하여 이미지의 세부적인 구조를 형성하는 방식을 나타낸다.

 

I1 = rgb2gray(imread('FAKER.jpg'));
F_shifted = fftshift(fft2(double(I1)));
F_magnitude = abs(double(F_shifted));
F_phase = angle(double(F_shifted));

I2 = imresize(imread('rect.jpg'), [size(I1,1), size(I1,2)]);
G = fftshift(fft2(double(I2)));
G_magnitude = abs(G);
G_phase = angle(double(G));

좌:  출처: hankyung.com/article/202311198304i

 

 이제 이를 확인해 보자. 이미지를 불러온 뒤 각 이미지에 대해 푸리에 변환을 적용하고 크기와 각도로 나눴다. 여기서 fftshift() 함수 이미지의 저주파수 성분을 중앙으로 옮기는 작업을 한다.

 

figure(1);
subplot(2,3,1), imshow(I1, []), title('Original image of I1');
subplot(2,3,2), imshow(F_phase, []), title('Phase of I1');

reconstructed_phase = ifft2(ifftshift(exp(1i*F_phase)));
subplot(2,3,3), imshow(reconstructed_phase, []), title('Phase based reconstruction of I1');

reconstructed_magnitude = ifft2(F_magnitude);
subplot(2,3,4), imshow(reconstructed_magnitude, []), title('Spectrun based reconstruction of I1');

reconstructed_rect = ifft2(ifftshift(G_magnitude .* exp(1i*F_phase)));
subplot(2,3,5), imshow(reconstructed_rect, []), title('Reconstruction by I1 phase + I2 Magnitude spectrum');

reconstructed_G_phase = ifft2(ifftshift(F_magnitude .* exp(1i*G_phase)));
subplot(2,3,6), imshow(reconstructed_G_phase, []), title('Reconstruction by I2 Phase + I1 Magnitude spectrun');

결과

 

 페이즈 정보만을 이용한 재구성에서는 원본 이미지의 윤곽이나 구조를 식별하기 어려운 노이즈처럼 보인다. 그러나 페이즈 정보에 크기를 1로 고정한 스펙트럼을 결합했을 때, 이미지의 윤곽과 형태가 뚜렷하게 나타난다. 이는 페이즈 정보가 이미지의 구조적 요소를 담당한다는 것을 보여준다. 반면, 스펙트럼 정보에 각도를 1로 고정하고 결합한 경우에는 이미지의 색감이 변화하는 것을 관찰할 수 있다. 이는 스펙트럼이 이미지의 밝기와 색상에 주로 영향을 미친다는 것을 나타낸다.

반응형