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