본문 바로가기
과학/영상처리

[영상처리] 영상에서의 푸리에 변환(Fourier Transform) 및 고속 푸리에 변환(FFT)

by 원쓰원 2023. 1. 4.

 

1. 영상에서의 주파수

영상에서의 주파수(Frequency)

주파수 변환의 대표적인 예인 푸리에 변환과 고속 푸리에 변환을 알아보기 전에, 영상에서의 주파수가 무엇을 의미하는지부터 알아보겠습니다. 

일반적으로 주파수(Frequency)란 특정 신호가 얼마나 자주 변화하는지를 나타냅니다. 영상에서 인접한 픽셀끼리 음영이 급격히 변화할 때 즉, 색이 급격하게 변화할 때 높은 주파수를 나타냅니다. 반대로, 변화가 적을 때는 낮은 주파수를 띱니다. 다시 말해, 저주파 영역이란 주변 영역과 색의 차이가 적은 부분을 의미하고, 고주파 영역은 주변 영역과의 색 차이가 큰 부분을 의미합니다. 이러한 고주파 성분은 주로 영상에서 물체의 에지(Edge)에 나타납니다. 혹은, 노이즈(Noise)가 해당될 수도 있습니다. 영상은 2차원(RGB의 경우 3차원)으로 이루어진 벡터이기 때문에, 주파수 또한 2차원(RGB의 경우 3차원)으로 나타납니다.

2. 푸리에 변환(Fourier Transform)

(1) 푸리에 변환이란 무엇인가

일반적인 푸리에 변환의 개념을 살펴보겠습니다. 푸리에 변환(Fourier Transform)이란 시간 영역(Time domain)에서 표현된 신호를 주파수 영역(Frequency domain)의 표현으로 변환해주는 과정입니다. 영상처리에서는 2차원 푸리에 변환을 사용하게 됩니다. 이는 영상을 x축 또는 y축 방향으로 따라가면서 픽셀의 밝기 변화를 주파수로서 분석하는 것입니다. 이렇게 푸리에 변환을 통해 얻은 각 주파수 성분을 스펙트럼(spectrum)이라 부르며, 이 또한 이미지처럼 표현할 수 있습니다.

또한, 푸리에 변환은 주로 특정 신호를 시간 영역이 아닌, 주파수 영역에서 분석하기 위해 사용됩니다. 이것의 기본적인 개념은 하나의 신호는 여러 개의 sin(삼각함수에서의 사인 함수) 신호와 cos(삼각함수에서의 코사인 함수)신호의 합으로 표현할 수 있다는 것이고, 각 성분이 어떻게 구성되어 있는지를 파악한다는 것입니다.

 

(2) 2D 이산 푸리에 변환(2D Discrete Fourier Transform)

푸리에 변환(Fourier Transform)을 영상처리에 적용하기 위해서는 영상 신호가 가지고 있는 몇 가지 특징을 이해해야 합니다. 먼저, 영상은 2차원의(x축 방향의 변화와 y축 방향의 변화가 동시에 포함된) 신호이기 때문에, 해당 경우에는 2차원에서 정의되는 푸리에 변환이 필요합니다. 2차원 영상에 대한 푸리에 변환(2D Discrete Fourier Transform)은 아래와 같이 정의합니다. 이는 다른 말로 이산 시간 푸리에 변환(Discrete Time Fourier Transform, DTFT)이라고 부릅니다.

이산시간 푸리에 변환(Discrete Time Fourier Transform, DTFT)

일반적인 푸리에 변환은 연속 시간(Continuous time)에서 수행되지만, 영상의 특성상 이산 시간(Discrete time)에서 처리됩니다. 또한, 한정된 유한(finite)구간에서 정의되는 신호입니다. 따라서, 가로의 크기가 W이고 세로의 크기가 H인 이미지 f(x,y)에 대한 이산 푸리에 변환(Discrete Fourier Transform)은 위의 식처럼 정의될 수 있습니다.

또한, 일반적인 푸리에 변환식과는 달리 W와 H로 나누어지는데, 이는 데이터가 정의된 구간을 하나의 단위 주기(unit period)로 만드는 효과가 있으며, 일종의 정규화 팩터(normarlization factor)라 생각하면 됩니다.

 

(3) 고속 푸리에 변환(Fast Fourier Transform, FFT)

우리는 영상(2D)에서의 푸리에 변환을 살펴보았습니다. 하지만, 이는 복잡하고 연산량이 많아 하드웨어를 구현할 때 처리속도가 늦어진다는 단점이 있습니다. 이를 해결하기 위해 등장한 것이 고속 푸리에 변환(Fast Fourier Tranform, FFT)입니다. 이는 이산 푸리에 변환 공식에서 반복되는 특정 연산을 제거하여 수행속도를 빠르게 한 것이 특징입니다. 1차원 이산 시간 푸리에 변환(Discrete Time Fourier Transform, DTFT)를 두번 수행하도록 2차원 DTFT를 분리시키고, 이 분리성을 이용해 아래와 같이 1차원 푸리에 변환을 두번 적용합니다.

DTFT의 분리성

이러한 분리성 덕분에 계산량을 크게 줄일 수 있고, 구현이 용이해집니다.

2차원 FFT의 수행

댓글