FFT, Falki
Transkrypt
FFT, Falki
Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] Dwuwymiarowa Transformata Fouriera Transformata falkowa 2D 1 Dwuwymiarowa Szybka Transformata Fouriera Dwuwymiarowa Szybka Transformata Fouriera (FFT2) obrazu I dana jest wzorem: M −1 N −1 X X " F (i, k) = βI · m=0 −2jπnk I(m, n) · exp N n=0 Odwrotna transformata Fouriera dla FObrazu M −1 N −1 X X " I(m, n) = βF · i=0 k=0 # −2jπmi · exp M (1) F jest dana wzorem: 2jπnk F (i, k) · exp N # · exp 2jπmi M (2) √ gdzie βL · βF = M1·N . Najcz¦±ciej βL = 1 i βF = M1N . j = −1. Transformacje te wykonywane s¡ poleceniem: F=fft2(I) oraz I=ifft2(F) odpowiednio dla prostej i odwrotnej. FFT2 wykonywana jest dwuetapowo. Najpierw dokonywany jest szereg transformat jednowymiarowych (np. w wierszach), a nast¦pnie dla ortogonalnego wymiaru wykonywane s¡ transformaty na wynikach otrzymanych w poprzednim kroku. Z tego powodu poni»sze polecenia MatLABa s¡ równowa»ne: fft2(I)==fft(fft(I).').'; 2 Widma FFT2 Dla dwuwymiarowej FFT, podobnie jak dla FFT 1D mo»emy policzy¢ widma amplitudowe (WA) i fazowe (WF). Dane s¡ one wzorami: W A(m, n) = q Im(F (m, n))2 + Re(F (m, n))2 W F (m, n) = arctg Im(F (m, n)) Re(F (m, n)) (3) (4) Do policzenia ich sªu»¡ polecenia MatLABa: WA=abs(F) oraz WF=angle(F). Poniewa» energia F skupiona jest na brzegach (skªadowa zerocz¦stotliwo±ciowa), niezb¦dne jest przesuni¦cie jej do centrum. Sªu»y do tego para polece«: FS=fftshift(F) oraz F=ifftshift(FS). Uwaga! Polecenia te s¡ wykonywane tylko i wyª¡cznie na wynikach transformaty oraz nie s¡ symetryczne, tzn. poni»sze polecenia nie s¡ równowa»ne: fftshift(fftshift(F)) 6= ifftshift(fftshift(F)) 3 Filtracja w domenie cz¦stotliwo±ci Gªównym zastosowaniem FFT2 jest ltracja obrazów. Polega to na zamianie kosztownej obliczeniowo operacji splotu na znacznie bardziej szybsze mno»enie widm. Podobnie jak w przypadku ltracji sygnaªów jednowymiarowych, mo»emy podzieli¢ ltry na: 1 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] • dolnoprzepustowe - przepuszczaj¡ce dolne cz¦stotliwo±ci, reprezentowane na ogóª przez trend na obrazie (np. stopniowe zmiany jasno±ci tªa). • górnoprzepustowe - przepuszczaj¡ce wysokie cz¦stotliwo±ci, reprezentuj¡ce na ogóª kraw¦dzie, szum i inne krótkookresowe zmiany jasno±ci na obrazie. • pasmoprzepustowe i pasmowyci¦ciowe - przepuszczaj¡ce lub wycinaj¡ce pewien przedziaª cz¦stotliwo±ci. • wyci¦ciowe - eliminuj¡ce pojedy«cz¡ cz¦stotliwo±¢ z obrazu (np. efekt pochodz¡cy od trakcji elektrycznej). Filtracja obrazu I przy u»yciu ltra M dana jest wzorem: F F = if f t2(|W A(I). ∗ W A(M )| · exp(i(W F (I) + W F (M )))) (5) Jak wynika z tego rozmiar maski ltru musi by¢ taki sam jak obrazu. Istniej¡ dwie metody projektowania ltru: bezpo±rednio w 2D oraz poprzez rozszerzenie ltrów 1D w 2D. 3.1 Projektowanie ltrów 2D Zerofazowy ltr dolnoprzeprzepustowy ma posta¢ centralnie poªo»onego okr¦gu (o warto±ciach 1), gdzie dªugo±¢ promienia koªa reguluje pasmo przepuszczania. Innym przykªadem ltru 2D jest dolnoprzepustowy ltr Butterwortha, dany wzorem: 1 1 + (D(u, v)/D0 )2n (6) (u − M/2)2 + (v − N/2)2 , (7) H(u, v) = D(u, v) = q gdzie D0 odpowiada za cz¦stotliwo±¢ odci¦cia, n jest rz¦dem ltru i odpowiada za krzywizn¦ zbocza ltru, a [M, N ] - rozmiar obrazu. Kolejnym przykªadem ltru dolnoprzepustowego jest ltr gaussowski, dany wzorem: −D2 (u, v) 2 · D02 (8) (u − M/2)2 + (v − N/2)2 (9) H(u, v) = exp D(u, v) = q 3.2 Okna Poniewa» ltry o przekroju prostok¡tnym powoduj¡ oscylacje, niezb¦dne jest okienkowanie ltru. W tym celu istnieje wiele odmian okien (wersja 1D): • bartlett(M). M-punktowe okno Bartletta dane jest wzorem: ( w(n) = 2n N, 2− 2n N, 0 ¬ n ¬ N/2 N/2 ¬ n ¬ N gdzie N=M-1; • blackman(M) - M-punktowe okno Blackmana dane jest wzorem: w(n) = 0.42 − 0.5 · cos(2π dla n<N i N=M-1; 2 n n ) + 0.08 · cos(4π ), N N (10) Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] • czebwin(M,R) - M-punktowe okno Czebyszewa o magnitudzie zbocza R (domy±lnie 100 dB). • hamming(M) - M-punktowe okno Hamminga, dane jest wzorem: n ) N (11) n )) N (12) w(n) = 0.54 − 0.46 cos(2π • hann(M) - M-punktowe okno Hanninga w(n) = 0.5 · (1 − cos(2π • kaiser(M,beta) - M-punktowe okno Kaisera z parametrem β . Domy±lna warto±¢ β = 0.5. • rectwin(M) - okno prostok¡tne. To»same z poleceniem ones(M,1). W praktyce oznacza to, »e ltr nie jest okienkowany (brak zmian w ltrze); • taylorwin(M) - Okno Taylora, zbli»one efektem do okna Czebyszewa. • triang(M) - okno trójk¡tne o dªugo±ci M. Je»eli M jest nieparzyste jest to»same z oknem bartletta. Do aplikacji okien do masek ltrów sªu»¡ dwa polecenia: • fwind1(filtr, okno) - okienkowanie przy u»yciu okien jednowymiarowych. • fwind2(ltr, okno) - okienkowanie przy u»yciu okien dwuwymiarowych. 3.3 Projektowanie ltrów 2D w oparciu o ltry 1D Jedn¡ z metod projektowania ltrów 2D jest stworzenia ltru 1D, a nast¦pnie jego rozszerzenie w 2D poprzez obrót wzgl¦dem ±rodka. Dokonuje si¦ to przy u»yciu nast¦puj¡cych polece«: • filtr_1D=remez(N, [cz¦stotliwo±ci], [amplitudy]), gdzie N jest liczb¡ wspóª- czynników (musi by¢ parzysta). Jako cz¦stotliwo±ci podaje si¦ warto±ci z przedziaªu 0-1. • filtr_2D=ftrans2(filtr_1D) - stworzenie osiowo symetrycznego ltru 2D na podstawie ltru 1D. • filter2(filtr_2D, obraz) - ltracja obrazu. 4 Korelacja Jednym z zastosowa« FFT jest funkcja korelacji sªu»¡ca do wyszukiwania elementów podobnych na obrazie. Do liczenia wspóªczynnika korelacji sªu»y polecenie: corr2(obraz1, obraz2);. Wspóªczynnik korelacji jest liczony wg nast¦puj¡cego wzoru: P P n m (Amn − Ā) · (Bmn − B̄) q r= P P P P 2 ( n m (Amn − Ā) ) · ( n m (Bmn − B̄)2 ) Ā - warto±¢ ±rednia obrazu A. W praktyce sprowadza si¦ to do wyszukiwania maksimów na wyniku polecenie: real(ifft2(fft2(obraz).*fft2(rot90(wzorzec, 2), size(obraz)))) 3 (13) Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 5 copyright: M. Dwornik [email protected] Transformata Falkowa Transformata falkowa jest przykªadem analizy czasowo-cz¦stotliwo±ciowej sygnaªu. Polega na dekompozycji sygnaªu na cz¦±¢ aproksymuj¡c¡ i detale przy u»yciu konkretnej falki (wavelet). Odwrotna transformata falkowa polega na rekonstrukcji sygnaªu bazuj¡c na jego skªadowych. Podobnie jak transformata Fouriera, wyst¦puje ona w formie ci¡gªej (cwt) i dyskretnej (dwt). Transformata falkowa ma zastosowanie w kompresji (np. JPEG 2000), odszumianiu sygnaªów czy fuzji obrazów. W przypadku obrazów monochromatycznych dekompozycja falkowa odbywa si¦ z wykorzystaniem funkcji : [A,H,V,D]=dwt2(X,falka) dla 1 rz¦du i [C,S]=wavedec2(x, poziom, falka) dla dowolnego rz¦du. W wyniku dekompozycji otrzymujemy 4 obrazy: (A - aproksymacja, H - detale poziome, V - detale pionowe, D - detale uko±ne). Rekonstrukcja odbywa si¦ z wykorzystaniem funkcji: idwt2 oraz waverec2. Podobnie jak w przypadku sygnaªów 1D, tu równie» dekompozycji na wy»szych poziomach podlega tylko i wyª¡cznie cz¦±¢ aproksymacyjna (g.1). W wyniku jej dziaªania otrzymujemy submacierze o wymiarze dwukrotnie mniejszym, które s¡ zapisane w wektorze C. Do ekstrakcji danych z wektora C warto skorzysta¢ z funkcji: A=appcoef2(C, S, falka, poziom) do uzyskania macierzy aproksymacji i funkcji detcoef2(opcja, C, S, poziom) do uzyskania macierzy detali na okre±lonym poziomie. W tym drugim przypadku opcje to 'all', je±li chcemy uzyska¢ wszystkie 3 macierze detali lub 'h', 'v', 'd' dla pojedynczych macierzy. Rysunek 1: Idea dekompozycji obrazu oraz struktura danych wyj±ciowych w funkcji wavedec2. ródªo: MatLAB Wavelet Toolbox. 4