이페이지의최신내용은아직번역되지않았습니다。최신내용은영문으로볼수있습니다。

푸리에변환

푸리에변환정의

푸리에변환은영상을다양한크기,주파수,위상을갖는복소수지수의합으로표현합니다。푸리에변환은향상,분석,복원,압축등다양한영상처리분야에서중요한역할을수행합니다。

F(M,N)이2개의이산공간변수ñ의함수라면F(M,N)2차원푸리에변환은다음과같은관계로정의됩니다。

F ω 1 ω 2 = Σ = - Σ ñ = - F ñ Ë - Ĵ ω 1 Ë - Ĵ ω 2 ñ

변수ω1ω2는주파수변수로,단위는샘플당라디언입니다。F(ω1,ω2F(M,N)주파수영역표현이라고불리기도합니다。F(ω1,ω2ω1ω2가모두주기 2 π 를갖는복소수값함수입니다。이러한주기성때문에보통범위 - π ω 1 ω 2 π 만표시됩니다。F(0,0)F(M,N)의모든값의합입니다。이러한이유로,F(0,0)은푸리에변환의상수성분또는DC성분이라고합니다。(DC는직류를나타내며,전기공학에서정현파변전압을갖는전원이아닌정전압을갖는전원을가리키는용어입니다。)

변환의역은변환된영상에대해수행했을때원본영상이생성되는연산입니다。2차원역푸리에변환은다음과같이표현됩니다。

F ñ = 1 4 π 2 ω 1 = - π π ω 2 = - π π F ω 1 ω 2 Ë Ĵ ω 1 Ë Ĵ ω 2 ñ d ω 1 d ω 2

개략적으로말해서이방정식은F(M,N)을서로다른주파수를갖는무한개의복소수지수(정현파)의합으로표현할수있음을의미합니다。주파수(ω1,ω2에서의비중의크기와위상은F(ω1,ω2로표현됩니다。

푸리에변환시각화하기

이에대한예로,사각형영역안에서는값이1이고영역밖에서는0인함수F(M,N)이있다고가정하겠습니다。도식을단순화하기위해,변수ñ은이산변수이지만F(M,N)은연속함수로표시했습니다。

사각함수

다음그림은위그림에표시된사각함수의아래와같은푸리에변환크기를

| F ω 1 ω 2 |

메시플롯으로보여줍니다。크기를메시플롯으로표시하는것은푸리에변환을시각화하는일반적인방법입니다。

사각함수의크기영상

플롯중앙의피크는F(0,0)으로,이것은F(M,N)의모든값의합입니다。플롯을통해F(ω1,ω2가세로고주파에서보다가로고주파에서더많은에너지를갖고있다는사실도알수있습니다。이는F(M,N)의가로단면은폭이좁은펄스이고세로단면은폭이넓은펄스라는사실을반영합니다。폭이좁은펄스는폭이넓은펄스보다더많은고주파성분을갖습니다。

푸리에변환을시각화하는또다른일반적인방법은다음그림과같이아래식을

日志 | F ω 1 ω 2 |

영상으로표시하는것입니다。

사각함수의푸리에변환의로그

로그를사용하면F(ω1,ω2가0과매우가까운영역에서푸리에변환의세부정보를살펴보는데도움이됩니다。

다음은그밖의간단한형태의푸리에변환예입니다。

간단한형태의푸리에변환

이산푸리에변환

일반적으로컴퓨터에서푸리에변환을수행할때는이산푸리에변환(DFT)이라는형태의변환을사용하게됩니다。이산변환은입력값과출력값이이산샘플이어서컴퓨터가조작하기쉬운변환입니다。다음은이러한형태의변환을사용하는두가지주된이유입니다。

  • DFT의입력값과출력값은모두이산값이므로컴퓨터가조작하기쉽습니다。

  • DFT를계산할때고속푸리에변환(FFT)이라는빠른알고리즘을사용할수있습니다。

DFT는일반적으로유한영역 0 中号 - 1 0 ñ ñ - 1 에서만0이아닌이산함수F(M,N)에대해정의됩니다。2차원中号XñDFT와中号Xñ역DFT의관계는다음과같이표현됩니다。

F p q = Σ = 0 中号 - 1 Σ ñ = 0 ñ - 1 F ñ Ë - Ĵ 2 π p / 中号 Ë - Ĵ 2 π q ñ / ñ p = 0 1 ... 中号 - 1 q = 0 1 ... ñ - 1

F ñ = 1 中号 ñ Σ p = 0 中号 - 1 Σ q = 0 ñ - 1 F p q Ë Ĵ 2 π p / 中号 Ë Ĵ 2 π q ñ / ñ = 0 1 ... 中号 - 1 ñ = 0 1 ... ñ - 1

F(P,Q)F(M,N)의DFT계수입니다。영주파수계수F(0,0)을보통 “DC성분” 이라고합니다。DC는직류를나타내는전기공학용어입니다。(MATLAB®의행렬인덱스는항상0이아닌1에서시작하므로행렬요소F(1,1)F(1,1)은각각수학적양F(0,0)F(0,0)에대응됩니다。)

MATLAB함수FFTFFT2FFTN은각각1차원DFT,2차원DFT,N차원DFT를계산하는고속푸리에변환알고리즘을구현합니다。함수IFFTifft2ifftn은역DFT를계산합니다。

푸리에변환과의관계

DFT계수F(P,Q)는푸리에변환F(ω1,ω2의샘플입니다。

F p q = F ω 1 ω 2 | ω 1 = 2 π p / 中号 ω 2 = 2 π q / ñ p = 0 1 ... 中号 - 1 q = 0 1 ... ñ - 1

이산푸리에변환시각화하기

  1. 푸리에변환정의의예제에서사용한함수F(M,N)과비슷한행렬F를생성합니다。F(M,N)은사각형영역안에서는값이1이고영역밖에서는0이었다는사실을기억하십시오。이진영상을사용하여F(M,N)을표현합니다。

    F =零(30,30);F(5:24,13:17)= 1;imshow(F, 'InitialMagnification', '合')

  2. 다음명령을사용하여F의30X30 DFT를계산하고시각화합니다。

    F = FFT2(F);F2 =日志(ABS(F));imshow(F2,[ -  1 5], 'InitialMagnification', '合');颜色表(喷气);彩条

    채우기없이계산한이산푸리에변환

    이플롯은푸리에변환시각화하기에서제시된푸리에변환과다릅니다。첫째,푸리에변환이보다성기게샘플링되었습니다。둘째,영주파수계수가기존의중앙위치가아닌왼쪽위코너에표시되었습니다。

  3. 푸리에변환의보다미세한샘플링을얻으려면DFT를계산할때F에0채우기를추가하십시오。다음명령을사용하여0채우기와DFT계산을하나의단계로수행할수있습니다。

    F = FFT2(F,256,256);

    위명령은DFT를계산하기전에F가256x256的이되도록0채우기를합니다。

    imshow(日志(ABS(F)),[ -  1 5]);颜色表(喷气);彩条

    채우기를사용하여계산한이산푸리에변환

  4. 여기서도영주파수계수가여전히중앙이아닌왼쪽위코너에표시되었습니다。이문제는영주파수계수가중앙에오도록F의사분면을바꾸는함수fftshift를사용하여해결할수있습니다。

    F = FFT2(F,256,256); F2 = fftshift(F);imshow(日志(ABS(F2)),[ -  1 5]);颜色表(喷气);彩条

    결과로생성되는플롯은푸리에변환시각화하기에표시된플롯과동일합니다。

푸리에변환의응용

이섹션에서는푸리에변환의다양한영상처리관련응용중몇가지를보여줍니다。

선형필터의주파수응답

선형필터의임펄스응답의푸리에변환은필터의주파수응답을제공합니다。함수freqz2는필터의주파수응답을계산하고표시합니다。가우스컨벌루션커널의주파수응답은이필터가저주파를통과시키고고주파를감쇠한다는사실을보여줍니다。

H = fspecial( '高斯');freqz2(H)

가우스필터의주파수응답

선형필터링,필터설계및주파수응답에대한자세한내용은设计线性滤波器在频域항목을참조하십시오。

푸리에변환을사용하여고속컨벌루션수행하기

이예제에서는푸리에변환을사용하여두행렬의고속컨벌루션을수행하는방법을보여줍니다。푸리에변환의주요속성중하나는두푸리에변환의곱셈이관련공간함수의컨벌루션에대응된다는것입니다。이속성은고속푸리에변환과함께고속컨벌루션알고리즘의기본을형성합니다。

참고:FFT기반컨벌루션방법은입력값이큰경우에가장자주사용됩니다。입력값이작은경우에는일반적으로imfilter함수를사용하는것이더빠릅니다。

2개의간단한행렬一个를만듭니다。一个는M×N的행렬이고는P×Q个행렬입니다。

A =魔法(3);B =酮(3);

一个가적어도(M + P-1)×(N + Q-1)이되도록0채우기를적용합니다。(一个FFT2가가장빠르게수행되는크기인2의거듭제곱에해당하는크기로0채우기가적용되는경우가많습니다。)이예제에서는행렬이8×8이되도록채우기를적용합니다。

A(8,8)= 0;B(8,8)= 0;

FFT2함수를사용하여一个의2차원DFT를계산합니다。두DFT를곱하고,ifft2함수를사용하여결과값의2차원역DFT를계산합니다。

C = ifft2(FFT2(A)* FFT2(B)。);

결과값에서0이아닌부분을추출하고,반올림오차로인해생성된허수부를제거합니다。

C = C(1:5,1:5);C =真(C)
C =5×58.0000 9.0000 15.0000 7.0000 6.0000 11.0000 17.0000 30.0000 19.0000 13.0000 15.0000 30.0000 45.0000 30.0000 15.0000 7.0000 21.0000 30.0000 23.0000 9.0000 4.0000 13.0000 15.0000 11.0000 2.0000

FFT기반상관을수행하여영상특징찾기

이예제에서는푸리에변환을사용하여상관을수행하는방법을보여줍니다。이연산은컨벌루션과밀접하게연관되어있습니다。상관은영상에서특징을찾는데사용할수있습니다。이러한맥락에서는상관을형판매칭(模板匹配)이라고합니다。

샘플영상을작업공간으로읽어들입니다。

BW = imread('text.png');

영상에서문자 “一” 를추출하여매칭할형판을만듭니다。imcrop함수의대화형구문을사용하여형판을만들수도있습니다。

一个=体重(32:45,88:98);

형판영상을180도회전한다음FFT기반컨벌루션기법을사용하여원본영상과형판영상의상관을계산합니다。(컨벌루션커널을180도회전하면컨벌루션이상관과같아집니다。)형판을영상에매칭하기위해FFT2함수와ifft2함수를사용합니다。결과로생성되는영상에서밝은피크부분이문자가있는곳에대응됩니다。

C =真(ifft2(FFT2(BW)* FFT2(rot90(A,2),256256))。);图imshow(C,[])%缩放图像以适当的显示范围。

영상에서형판의위치를보기위해최대픽셀값을찾은다음이최댓값보다작은임계값을정의합니다。이진화된영상은이진화된상관영상에서이러한피크를흰색점으로표시합니다。(이예제에서는이图에서위치를보다쉽게볼수있도록,이진화된영상을팽창시켜점의크기를확대합니다。)

MAX(C(:))
ANS = 68
THRESH = 60;使用%,这比最大值少一点的阈值。d = C>脱粒;SE = strel(“盘”,5);E = imdilate(d,SE);图imshow(E)%显示像素与超过阈值的值。