CS/디지털영상처리

[디지털영상처리] Fourier Theory (2)

nowkoes 2023. 11. 18. 22:36

본문

Impulse Train

 

 결국 우리가 다루는 이미지는 샘플링을 거친 것을 보는 것이다. 즉, 연속적인 실제 세계를 이산적인 픽셀로 변환한 것이므로, 이 과정에서 임펄스 열을 사용하여 모델링하는 과정이 필요하다. 이번 시간에는 이러한 임펄스 열에 푸리에 급수와 푸리에 변환을 적용하면 어떻게 되는지 알아보자.

 

 

 다음과 같이 시간축 t에서 간격이 △T인 임펄스 열(Impulse Train)이 있다고 가정해 보자. 이를 이용해 푸리에 급수를 표현하면 다음과 같이 나타낼 수 있다.

 

 

 

 여기서 푸리에 계수를 구해보면 모든 n에 대해 1/△T이 된다는 점을 이용하여 임펄스 열을 다음과 같이 표현할 수 있다.

 

 

 이번에는 푸리에 변환을 적용해 보자. 아래 수식에 따라 푸리에 변환을 적용하면 주파수 u = n/△T일 때만 값을 가지고, 나머지 모든 주파수에서는 0이 된다.

 

 

 따라서 주기적인 임펄스 열에 푸리에 변환을 적용하면 다음과 같이 수식이 나온다. 즉, 샘플링된 신호의 푸리에 변환을 계산할 때 나타나는 주파수 영역의 특성으로 인해 간격이 1/△T로 바뀐다.

 


Convoluition

 푸리에 변환을 통해 복잡한 연산인 Convolution을 쉽게 구할 수 있다. 결론부터 말하자면 시간 영역에서의 Convolution은 주파수 영역에서 곱이고, 주파수 영역에서의 Convolution은 시간 영역에서 곱이다. 이를 수식으로 증명하면 다음과 같다.

 

 


실습

 

 위의 이미지에 푸리에 변환을 하면 어떻게 나타나는지, 또 어떻게 해석할 수 있는지 알아보자. 

 

I1 = rgb2gray(imread("FT_ex_1.jpg"));
I2 = rgb2gray(imread("FT_ex_2.jpg"));

F1 = abs(fft2(I1));
F2 = abs(fft2(I2));

figure(1);
subplot(2,2,1); imshow(I1, []);
subplot(2,2,2); imshow(F1, []);
subplot(2,2,3); imshow(I2, []);
subplot(2,2,4); imshow(F2, []);

출처: kr.mathworks.com/help/matlab/ref/fft2.html

 

 매트랩에서는 푸리에 변환을 위한 fft2() 함수를 제공한다. 전통적인 푸리에 변환 알고리즘은 N*M 이미지일 때 O(N^2 * M^2)의 연산을 필요로 하지만, 연산을 최적화하여 O(N logN * M logM)으로 줄여서 고속 푸리에 변환이라고 한다. 여기서 푸리에 변환 함수에 절댓값을 씌운 이유는 일반적으로 fft2() 함수의 결과가 복소 형태로 나와, 주파수의 성분과 강도를 파악하기 어렵기 때문이다.

 

출처: kr.mathworks.com/help/matlab/ref/fftshift.html?searchHighlight=fftshift&s_tid=srchtitle_support_results_1_fftshift

 

 푸리에 변환을 적용한 후 주파수 성분을 확인해 보면, 모서리 부분에 높은 주파수 성분(밝은 점)이 나타난다. 이는 푸리에 변환의 결과가 주파수 영역에서 중심이 (0,0)에 위치하게 된다. 이미지에서 좌표는 왼쪽 모서리를 기준으로 보여주기 때문에 fftshift() 라는 함수를 이용하여 주파수 성분을 중앙에 오도록 재배치한다.

 

I1 = rgb2gray(imread("FT_ex_1.jpg"));
I2 = rgb2gray(imread("FT_ex_2.jpg"));

F1 = fftshift(abs(fft2(I1)));
F2 = fftshift(abs(fft2(I2)));

figure(1);
subplot(2,2,1); imshow(I1, []);
subplot(2,2,2); imshow(F1, []);
subplot(2,2,3); imshow(I2, []);
subplot(2,2,4); imshow(F2, []);

 

 좌표의 중심을 중앙으로 옮기고 결과를 확인해 보면 정중앙에 가장 밝은 점이 하나 있고, 양 옆에 희미한 점이 하나씩 있는 것을 관찰할 수 있다. 즉, 저주파 영역은 매우 큰 값을 갖고 대부분의 다른 영역은 0에 가까운 값을 갖는다.

 

 DC 성분은 주파수가 0인 것으로, 변화가 없는 부분을 나타낸다. 이미지에서 이는 전체적인 밝기 또는 색상의 균일한 부분을 의미한다. 즉, DC 성분은 이미지 전체의 평균 밝기 또는 색상 값을 나타내는데, 주파수 영역에서 원점에 존재한다. 이 값이 클수록 이미지가 전반적으로 밝고, 작을수록 어둡다.

 

 또한 띠 형태의 주기에 따라 임펄스의 간격이 다르다는 것을 관찰할 수 있다. FT_ex_1.jpg는 주기가 길어서 주파수 영역에서의 주기가 짧고, FT_ex_2.jpg는 주기가 짧으므로 주파수 영역에서의 주기가 길다.

반응형