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