Przetwarzanie i Kompresja Obrazów. Analiza Fouriera
Transkrypt
Przetwarzanie i Kompresja Obrazów. Analiza Fouriera
Przetwarzanie i Kompresja Obrazów. Analiza Fouriera Aleksander Denisiuk ([email protected]) Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55, 80-045 Gdańsk 1 maja 2016 1 / 29 Analiza Fouriera Szeregi Fouriera Transformacja Fouriera Najnowsza wersja tego dokumentu dostępna jest pod adresem http://users.pja.edu.pl/~denisjuk/ Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa 2 / 29 Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dyskretna Transformacja Fouriera Szeregi Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa 3 / 29 Motywacja Szeregi Fouriera Motywacja Szereg trygonometryczny Rozmowa telefoniczna Sygnał: Transformacja Fouriera 3.5 Dyskretna Transformacja Fouriera 2.5 Dwuwymiarowa Transformacja Fouriera 1.5 y 0.5 Transformacja Kosinusowa x −π − 21 π 0 −0.5 1 2π π −1.5 −2.5 −3.5 4 / 29 Suma syngałów „elementarnych” Szeregi Fouriera Motywacja 3 sin x + 0,5 sin 16x 3 sin x + 0,5 sin 16x 3 sin x 0,5 sin 16x Szereg trygonometryczny y 3.5 Transformacja Fouriera 2.5 Dyskretna Transformacja Fouriera 1.5 Dwuwymiarowa Transformacja Fouriera 0.5 x −π Transformacja Kosinusowa − 21 π 0 −0.5 1 2π π −1.5 −2.5 −3.5 Jak najlepiej transmitować ten sygnał? Jak można ten sygnał skompresować? 5 / 29 Prawdziwy Sygnał Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Wymaga nieskończenie wiele „funkcji elementarnych”: f (t) = ∞ X bn sin nt + cn cos nt n=0 6 / 29 Szereg trygonometryczny Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dana jest okresowa funkcja f (t), t ∈ [−π, π] funkcja, określona na okręgu Szereg Fouriera funkcji f Dyskretna Transformacja Fouriera f (t) ∼ Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa ∞ X bn sin nt + cn cos nt n=0 Szereg w postaci wykładniczej cos t = sin t = f (t) = eit +e−it 2i eit −e−it 2i ∞ P n=−∞ an eint 7 / 29 Współczynnniki Fouriera 1 ˆ an = f (n) = 2π Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dyskretna Transformacja Fouriera f (t) ∼ ∞ P Z π f (x)e−inx dx −π fˆ(n)ent n=−∞ Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa 8 / 29 Przykład Szeregi Fouriera Motywacja f (t) = t Szereg trygonometryczny Transformacja Fouriera 2.5 Dyskretna Transformacja Fouriera 1.5 Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa y 3.5 0.5 x −π − 21 π 0 −0.5 1 2π π −1.5 −2.5 −3.5 9 / 29 Funkcje z okresem 1 Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera f (t) ∼ fˆ(n) = ∞ P n=−∞ R1 0 fˆ(n)e2πint f (x)e−2πinx dx Odwzorowania: 1. f (t) 7→ fˆ(n) 2. fˆ(n) 7→ f (t) Transformacja Kosinusowa 10 / 29 Właściwości współczynników Fouriera Szeregi Fouriera Motywacja Szereg trygonometryczny Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Liniowość: αf (t) + βg(t) 7→ αfˆ(n) + βĝ(n) Przesunięcie (cykliczne) w domenie fizycznej f (x − a) 7→ fˆ(n)e−2πi an Przesunięcie w domenie widmowej f (x)e2πi lx 7→ fˆ(n − l) Jeżeli szereg jest zbieżny, to fˆ(n) → 0 Różniczkowanie: f ′ (x) 7→ 2πinfˆ(n) Splot (cykliczny) funkcji (filtracja) f ∗ g(t) = Transformacja Kosinusowa R1 0 f (x)g(t − x) dx f ∗ g 7→ fˆ(n)ĝ(n) Twierdzenie Parsevala: R1 0 |f (t)|2 dt = ∞ P n=−∞ |fˆ(n)|2 11 / 29 Szeregi Fouriera Transformacja Fouriera Definicja Właściwości Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Fouriera Transformacja Kosinusowa 12 / 29 Definicja Szeregi Fouriera Transformacja Fouriera Definicja Właściwości Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Dana jest funkcja f (x), x ∈ Rn Odwzorowania: 1. f (x) 7→ fˆ(ξ) = 2. fˆ(ξ) 7→ f (x) = +∞ R −∞ +∞ R f (x)e−2πixξ dx fˆ(ξ)e2πixξ dξ −∞ Transformacja Kosinusowa 13 / 29 Właściwości Transformacji Fouriera Szeregi Fouriera Transformacja Fouriera Definicja Właściwości Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Liniowość: αf (t) + βg(t) 7→ αfˆ(ξ) + βĝ(ξ) Przesunięcie w domenie fizycznej f (x − a) 7→ fˆ(ξ)e2πiaξ Przesunięcie w domenie widmowej f (x)e−2πi ax 7→ fˆ(ξ − a) Różniczkowanie: f ′ (x) 7→ 2πiξ fˆ(ξ) Splot funkcji (filtracja) f ∗ g(t) = +∞ R −∞ f (x)g(t − x) dx f ∗ g 7→ fˆ(ξ)ĝ(ξ) Transformacja Kosinusowa Twierdzenie Parsevala: +∞ R −∞ |f (t)|2 dt = R∞ −∞ |fˆ(ξ)|2 dξ 14 / 29 Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Właściwości FFT Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa 15 / 29 Motywacja i definicja Szeregi Fouriera Dyskretyzacja szeregu Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa fˆ(n) = fˆ(n)e2πint n=−∞ R1 0 Właściwości FFT f (t) ∼ ∞ P ≈ f (x)e−2πix dx ≈ NP −1 fˆ(n)e2πint n=0 N −1 1 P −2πi kn N f (k/N )e N k=0 Dyskretna transformacja Fouriera dany jest ciąg a0 , . . . , aN −1 DTF to jest ciąg â0 , . . . , âN −1 , gdzie ân = √1 N NP −1 ak e −2πi kn N k=0 transformacja odwrotna: ak = NP −1 2πi nk 1 √ â e N N n=0 n 16 / 29 Właściwości DTF Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Właściwości FFT Dwuwymiarowa Transformacja Fouriera Liniowość: αan + βbn 7→ αân + β b̂n Przesunięcie (cykliczne) w domenie fizycznej −2πi nl N an−l 7→ ân e Przesunięcie (cykliczne) w domenie widmowej nl an e2πi N 7→ ân−l Splot ciągów (filtracja) an ∗ bn = NP −1 ak bk−n k=0 an ∗ bn 7→ ân b̂n Transformacja Kosinusowa Twierdzenie Parsevala: NP −1 n=0 |an |2 = NP −1 n=0 |ân |2 17 / 29 DTF jako przekształcenie liniowe Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja F : Rn → Rn Macierz przekształcenia: a 7→ FN FFT Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa gdzie macierz Fouriera 1 1 1 ... 1 2 N −1 1 ω ω . . . ω 1 2 4 2(N −1) ω ω ... ω = , 3 6 3(N −1) 1 ω ω . . . ω . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ω N −1 ω 2(N −1) . . . ω (N −1)(N −1) Właściwości √1 F a, N − 2πi N jest pierwiastkiem z jedynki ω=e Przekształcenie odwrotne, F −1 : Rn → Rn ma macierz o współczynnikach sprzężonych FN−1 = F N Przykład: N = 1, 2, 4, 8 18 / 29 Szybka transformacja Fouriera Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Właściwości FFT Dwuwymiarowa Transformacja Fouriera n log2 n działań Dla n = 4: 1 0 F4 = 1 0 1 0 1 0 1 1 0 0 1 0 −i 1 −1 0 0 0 0 −1 0 0 0 1 1 0 0 0 1 −1 0 1 0 i 0 0 1 0 0 1 0 0 0 0 0 1 Transformacja Kosinusowa 19 / 29 Ogólny przypadek, N = 2k Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Właściwości FFT Dwuwymiarowa Transformacja Fouriera âm = −1 P √1 N n=0 âm+ N = 2 N −1 2 P √1 N n=0 a2n e IN 2 = IN 2 a2n e mn −2πi N/2 mn −2πi N/2 − + √1 e N √1 e N N 2 −2πi m N −1 P n=0 N m 2 −2πi N −1 P n=0 FN = D1N B1N S1N , gdzie D1N Transformacja Kosinusowa N 2 DN 2 −D N 2 ! , B1N FN 2 = 0N 2 a2n+1 e a2n+1 e 0N 2 FN 2 ! , mn −2πi N/2 mn −2πi N/2 S1N Even N 2 = Odd N 2 ! etc. . . Jeżeli N nie jest potęgą dwójki, to ciąg uzupełnia się zerami 20 / 29 Szybki splot Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Motywacja i definicja Właściwości FFT Dwuwymiarowa Transformacja Fouriera PN −1 Splot an ∗ bn = k=0 ak bn−k jest mnożeniem przez macierz, N 2 działań Z zastosowaniem FFT trzeba tylko N log2 N działań an 7→ ân = F an bn 7→ b̂n = F bn ân , b̂n 7→ ĉn = ân b̂n ĉn 7→ an ∗ bn = F −1 cn Transformacja Kosinusowa 21 / 29 Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Definicja Właściwości Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa 22 / 29 Definicja Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Definicja Właściwości Transformacja Kosinusowa Dana jest tablica am,n , m = 1, . . . , M − 1 n = 1, . . . , N − 1 DTF to jest tablica âm,n , m = 1, . . . , M − 1 n = 1, . . . , N − 1, gdzie âm,n = √1 MN −1 MP −1 NP ak,l e ln −2πi km −2πi M N e k=0 l=0 Fransformacja odwrotna: ak,l = −1 MP −1 NP ln km −2πi 1 2πi √ N â e M e M N m=0 n=0 m,n 23 / 29 Właściwości Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Definicja Właściwości Transformacja Kosinusowa Rozdzialczość: F2 (am,n ) = F1 F2 (am,n ) Liniowość: αam,n + βbm.n 7→ αâm,n + β b̂m,n Przesunięcie (cykliczne) w domenie fizycznej −2πi mk −2πi nl N N am−k,n−l 7→ âm,n e e Przesunięcie (cykliczne) w domenie widmowej 2πi nl 2πi mk M e N 7→ âm−k,n−l am,n e Splot ciągów (filtracja) am,n ∗ bm,n = −1 MP −1 NP ak,l bk−m,l−n k=0 l=0 am,n ∗ bm,n 7→ âm,n b̂m,n Twierdzenie Parsevala: MP −1 NP −1 m=0 n=0 |am.n |2 = MP −1 NP −1 m=0 n=0 |âm,n |2 24 / 29 Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Transformacja Kosinusowa Motywacja i definicja DCT DCT 2D 25 / 29 Szereg Fouriera funkcji parzystej Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Motywacja i definicja DCT DCT 2D Dana jest parzysta okresowa funkcja f (t), t ∈ [−π, π] π Rπ R 1 1 fˆ(n) = 2π f (x)e−inx dx = π f (x) cos nx dx fˆ(−n) = ∞ P −π 1 2π Rπ f (x)einx dx = −π fˆ(n)eint = fˆ(0) + 2 n=−∞ f (x) cos nx dx 0 fˆ(n) cos nt n=1 Szereg kosinusowy: f (t) 7→ f¯(n) = ∞ P 1 π 0 Rπ 2 π f¯(n) 7→ 21 f¯(0) + Rπ f (x) cos nx dx, n = 0, 1, . . . 0 ∞ P f¯(n) cos nt n=1 26 / 29 Dyskretna trasnformacja kosinusowa Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Motywacja i definicja DCT DCT 2D Dyskretyzacja szeregu kosinuswego Dany jest ciąg a0 , . . . , aN −1 Dyskretną trasnformacją kosinusową jest ciąg ā0 , . . . , āN −1 , gdzie ā0 = ān = √1 N q 2 N Odwrócenie: an = NP −1 an k=0 NP −1 k=0 √1 ā0 N + an cos πn(2k+1) , n = 1, 2, . . . , N − 1 2N q 2 N NP −1 n = 0, 1, . . . , N − 1 k=1 āk cos πk(2n+1) , 2N 27 / 29 Dwuwymiarowa dyskretna trasnformacja kosinusowa Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Motywacja i definicja DCT Dana jest tablica am,n , m, n = 0, . . . , N − 1 Dyskretną trasnformacją kosinusową jest tablica ām,n , m, n = 0 . . . , N − 1, gdzie DCT 2D ā0,0 = 1 N −1 NP −1 NP ak,l k=0 l=0 √ NP −1 −1 NP 2 ak,l cos πn(2l+1) ā0,n = N 2N k=0 l=0 √ NP −1 −1 NP 2 ak,l cos πm(2k+1) ām,0 = N 2N k=0 l=0 N −1 N −1 πn(2l+1) 2 P P ak,l cos πm(2k+1) ām,n = N cos 2N 2N k=0 l=0 28 / 29 Odwrócenie 2D DCT Szeregi Fouriera Transformacja Fouriera Dyskretna Transformacja Fouriera Dwuwymiarowa Transformacja Fouriera Transformacja Kosinusowa Motywacja i definicja DCT am,n √ −1 2 NX 1 πl(2n + 1) √ = ā0,l cos ā0,0 + N 2N N l=1 √ N −1 πk(2m + 1) 2 X āk,0 cos + N k=1 2N −1 N −1 X πl(2n + 1) 2 NX πk(2m + 1) cos + āk,l cos N k=1 l=1 2N 2N DCT 2D 29 / 29