컴퓨터 그래픽스/영상처리

[OpenCV] 2D FFT (Fast Fourier Transform)

며용 2021. 5. 23. 20:25

FFT 적용

 

Fourier Transform을 적용

 

적용을 하면 (0,0), 화면 좌상단이 중심이고 거기에 저주파가 모여있음

분석을 용이하게 하기 위해 (0,0)을 이미지의 중심으로 이동시키고 Log Scaling을 하여 분석이 용이한 결과값으로 변환

 

 

푸리에 변환 : 영상을 시간 도메인에서 주파수 도메인으로 변환

 

영상처리에서는 2차원 푸리에 변환을 사용한다.

 

임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는것

(입력 신호를 sin, cos의 주기성분으로 분해하는 것)

각각의 주기함수 성분들은 고유의 주파수와 강도를 가지고 있으며 이들을 모두 합치면 원래의 신호가 된다.

 

 

 

 

 

 

FFT 적용 결과를 log scale

 

 

푸리에 스펙트럼은 푸리에 변환을 통해 얻은 각 주파수 성분이 원 신호(이미지)에 얼마나 강하게 포함되어 있는지 표현한 것이다.

이산 푸리에 스펙트럼(dfs)은 원점대칭이면서 W(x축)를 주기로 하는 주기함수 형태이다.

 

 

 

푸리에 스펙트럼은 저주파 영역은 매우 큰 값을 갖는 반면에 대부분의 다른 영역은 0에 가까운 값을 갖는다.

푸리에 스펙트럼을 그대로 시각화하면 검은 바탕 위에 흰 점 하나만 존재하는 형태가 된다.

이런 문제를 해결하기 위해서 스펙트럼을 이미지로 표현할 때는 스펙트럼에 log를 취하는 것이 일반적이다.

 

 

 

원래의 스펙트럼 이미지는 모서리로 갈수록 값이 높아지기 때문에 스펙트럼의 형태를 파악하기 힘들다.

이러한 문제를 해결하기 위해서 원점이 중심에 오도록 스펙트럼의 위치를 이동시킨(shift) 형태의 이미지를 사용하는 것이 일반적이다.

 

영상에 대한 푸리에 변환은 상하좌우 대칭으로 결과가 나오기 때문에 재배열을 해준다.