Bildförbättring i frekvensdomänen (kap.4) Introduktion

Download Report

Transcript Bildförbättring i frekvensdomänen (kap.4) Introduktion

Bildförbättring i
frekvensdomänen (kap.4)
„
Introduktion, frekvensdomän
„
„
„
„
„
Alla periodiska signaler
kan representeras av
sinus och cosinus-signaler
„
Fouriertransform
Invers fouriertransform
Egenskaper
Filtrering
Implementation
„
Frekvensdomänen
„
Introduktion
Fourierserie
Fouriertransform
Visa frekvensinnehållet i en signal
Även icke-periodiska signaler (oändlig
periodtid)
Integralen av viktade sinusar
Fouriertransform
Kan även transformera tillbaka till
spatialdomänen utan förluster
„
„
Amplitud
„
„
„
Invers fouriertransform
f (Hz)
Fouriertransform
„
Fouriertransform
Definition
F (u ) =
Både positiva och negativa ”frekvenser”
Komplex
„
„
∞
∫ f ( x )e
− j 2πux
dx
j = −1
f(x)=cos(πx)
F(u)=II(u)
1,5
−∞
1
ℑ
1
0,5
0,5
0
„
Invers transform
∫
−∞
-0,5
0
0
0,5
1
-1
-0,5
0
0,5
1
-0,5
-0,5
-1
-1,5
-1
F(u)=i sin(πu)
f(x)= II(x)
∞
f ( x) =
-1
F (u )e j 2πux du
1
1
ℑ
0,5
0
-1
-0,5
0
0,5
1
0,5
0
-1
-0,5
0
-0,5
-0,5
-1
-1
0,5
1
1
Fouriertransform
„
Exempel
Diskret fouriertransform, DFT
1
F (u ) =
M
f ( x) =
M −1
∑ f ( x)e
− j 2πux / M
∑ F (u)e
Ljuden från förra föreläsningen
för u = 0,1,K , M − 1
x =0
M −1
„
j 2πux / M
för x = 0,1, K , M − 1
u =0
f(x) har M värden, x=0, …, M-1
F(u) får lika många värden
Varje M – frekvenskomponent
∆u =
1
M∆x
Original
Fouriertransform
„
„
„
Real + imaginär del
Polära koordinater
„
„
2
P(u ) = F (u ) = Re 2 (u ) + Im 2 (u )
− jφ ( u )
„
Magnitud/spektrum
[
F (u ) = Re 2 (u ) + Im 2 (u )
„
Effektspektrum (power spectrum/spectral
density)
Absolutbelopp och fas
F (u ) = F (u ) e
Högpassfiltrerad
Fouriertransform
Komplexa tal
„
Lågpassfiltrerad
]
Mått på energin
1/ 2
Fasvinkel/fasspektrum
 Im(u ) 

 Re(u ) 
φ (u ) = tan −1 
Fouriertransform
„
Beräkningsexempel, kontinuerlig signal
Fouriertransform
„
Fortsättning
1/ 2
0
Π ( x) = 
1
x > 1/ 2
x < 1/ 2
Π(x)
1
∫ 1⋅ e
F (u ) =
− j 2πxu
−1 / 2
F (u ) =
„
[
1
e − j 2πxu
− j 2πu
(
)
„
1/ 2
−1 / 2
(
Använd Euler’s formel
1/2
]
1
2 1 j 2πu / 2
e − j 2πu / 2 − e jπu / 2 =
e
− e − j 2πu / 2
2πu 2 j
− j 2πu
cos α =
-1/2
dx =
Ger:
F (u ) =
e jα + e − jα
2
sin α =
2
 2πu 
sin 
=
2πu  2 
)
e jα − e − jα
2j
 2πu 
sin 

 2  = sinc(u )
2πu
2
2
Fouriertransform
Liten utbredning
f(x)
→
Fouriertransform
Stor utbredning
„
1,2
1
0,8
0,6
ℑ
„
0,4
0,2
En diracpuls – ”ingen” utbredning →
”oändlig” utbredning
Och vice versa!
0
-20
-10
0
10
20
-0,2
-0,4
f(x)=δ(x)
→
Stor utbredning
F(u)
Liten utbredning
2,5
f(x)
2
ℑ
1,5
1
0,5
0
-20
-10
0
10
20
-0,5
-1
Fouriertransform
„
Fouriertransform
Vissa funktioner ser likadana ut i båda
domänerna
„
Utbredningen ändras
„
Konjugat symmetri –
„
Skalning
F (u ) = F (−u )
af ( x) → aF (u )
1
Gauss-funktionen
f (ax ) →
0,5
0
-1
-0,5
0
0,5
1
Shah-funktionen, pulståg
„
∆x
∆u
Fouriertransform
„
Summering
f ( x ) + g ( x ) →
1
∆u =
∆x
„
Skift
f ( x − a) → e
− j 2πau
F (u ) + G (u )
⋅ F (u )
Fouriertransform
Faltning
„
( f * g )( x ) →
1 u
F 
a a
F (u ) ⋅ G (u )
2-D
∞ ∞
F (u, v) =
∫ ∫ f ( x, y ) e
− 2 jπ ( xu + yv )
dxdy =
− ∞− ∞
∞
„
=
Derivering
d
dx
[f
∫e
−∞
( x )
]→
ju
⋅ F (u )
− 2 jπyv
∞

 f ( x, y )e − 2 jπxu dx dy =
 − ∞

∫
∞

= e − 2 jπxu  f ( x, y )e − 2 jπyv dy dx


−∞
−∞
∞
∫
∫
Separabel i x- och y-led
3
2-D DFT
„
2-D DFT
2-D diskret fouriertransform och dess
invers
1
MN
F (u , v) =
M −1 N −1
∑∑ f ( x, y)e
− j 2π ( xu / M + yv / N )
M −1 N −1
∑∑
Centrera runt origo – multiplicera bilden
med
(-1)(x+y)
ℑ[ f ( x, y )(−1) x + y ] = F (u − M / 2, v − N / 2)
x =0 y =0
u = 0,1,..., M − 1 och v = 0,1,....., N − 1
f ( x, y ) =
„
„
F(0,0) hamnar på u=M/2(+1), v=N/2(+1)
„
I MATLAB – fftshift efter fft2
F (u , v)e j 2π ( xu / M + yv / N )
u =0 v =0
2-D DFT
„
Medelvärdet:
F (0,0) =
„
2-D DFT
1
MN
Originalbild
Centrerat spektrum
M −1 N −1
∑∑ f ( x, y)
x =0 y =0
Likspänning, ”dc-nivå”
Ej centrerat spektrum
2-D DFT
„
„
Samma egenskaper som 1-D
Skalning
1 u v
F , 
ab  a b 
− j 2 π ( au / M + bv / N )
f ( x, y ) * g ( x, y ) ↔ F (u, v) ⋅ G (u, v)
„
„
ℑ [ f ( x , y ) + g ( x , y )]
=
F (u , v ) + G (u , v )
ℑ [ f ( x , y )] + ℑ [ g ( x , y )]
Derivering
dn
[ f ( x, y )] → ( ju ) n F (u, v)
dx n
⋅ F (u , v )
Summering
f ( x , y ) + g ( x , y ) →
Faltning
f ( x, y ) ⋅ g ( x, y ) ↔ F (u, v) * G (u, v)
Skift
f (x − a, y − b) → e
„
„
af ( x, y ) → aF (u , v )
f ( ax, by ) →
„
2-D DFT
Rotering
x = r cosθ
y = r sin θ
u = ω cos ϕ
f (r ,θ + θ 0 ) ⇒ F (ω , ϕ + ϕ 0 )
v = ω sin ϕ
4
Exempel, fouriertransformpar
„
Spatial
Frekvens
Exempel, fouriertransformpar
„
Spatial
Exempel, fouriertransformpar
„
Spatial
Frekvens
2-D DFT
Frekvens
Tentaexempel
Tentaexempel
Tre bilder (en Volvo 240, en snyggare bil och en kattunge) har
fouriertransformerats. Bilderna och beloppet av fouriertransformerna
visas nedan. Para ihop bilderna med respektive beloppsbild. Motivera
ditt svar!
Nedan visas ett frekvensspektrum, skalat för visualisering på vanligt sätt.
Vilken bild har transformerats för att få detta spektrum? Motivera ditt svar!
Frekvens
spektrum
5
Tentaexempel
2-D DFT
Nedan visas ett frekvensspektrum, skalat för visualisering på vanligt sätt.
„
Vilken bild har transformerats för att få detta spektrum? Motivera ditt svar!
Amplitud och fas
Original
Frekvensspekrum
Fas-spektrum
Vid invers-transformering
behövs båda!
Frekvens
spektrum
Invers med
endast
amplitud
Filtrering
Blockschema
„
Försvaga vissa frekvenser
„
Multiplicera med ett filter
„
Invers med
endast fas
Låta andra vara oförändrade
G (u , v ) = F (u , v) H (u , v)
„
„
Elementvis multiplikation
Både real och imaginärdel
„
„
Fasen ändras inte
Zero-phase-shift
”Ta bort” en frekvens
„
„
„
Enkelt att eliminera störande frekvenser
Exempel: Ta bort medelgrånivån i en bild
Nollställ medelvärdet, F(0,0)=0
„
„
Likspänningen borttagen
„
Skalad för visning
F(M/2,N/2) om centrerad
0
H (u , v ) = 
1
„
Notch-filter
Notch-filter
om (u , v) = ( M / 2, N / 2)
annars
6
LP- och HP-filter
Addera grånivå
„
Ofta blir HP-filtrerade bilder för mörka
„
Periodicitet
„
„
„
Periodicitet
Inte riktigt så enkelt…
Fouriertransformen av en diskret signal blir
ALLTID periodisk
Alltid samplade
„
Periodicitet
Sampling: Multiplicera kontinuerlig signal med
pulståg
s(x)
III(x/∆x)
f(x)
•
„
=
Multiplikation i spatialdom. = faltning i
frekvensdom.
Periodicitet
f(x)
„
F(u)
„
-fmax
III(x/∆x)
s(x)
Inte önskvärt att eliminera likspänning –
addera konstant
fmax
-1/ ∆x
fs =
1/ ∆x
S(u)
-fmax
Ju mindre tidssteg – bättre separering
Nyquist teorem:
„
1
> 2 f max
∆x
Vikningsdistortion
fmax
7
Periodicitet
„
„
Periodicitet
Inverstransformen blir också periodisk
Periodtid – en bild
Faltning av två
signaler
T.H: Hänsyn tagen
till periodicitet
Bild
Padding
„
„
„
„
Padding
Zero-padding
Fyll ut med nollor
Bildstorlek A ×B, filter C ×D
Fyll på med nollor:
„
P ≥ A +C –1
Q ≥ B +D –1
„
Gör båda till storlek P ×Q
„
Padding
Padding
8
Tentaexempel
Periodicitet
En bild har filtrerats i frekvensdomänen. Bilden har fouriertransformerats, multiplicerats med ett
gaussiskt lågpassfilter och inverstransformerats. Nedan visas originalbilden, dess frekvensbelopp
efter filtreringen samt den filtrerade bilden. Bilden har blivit suddigare, men det finns även andra
förändringar. Vid nedre och högra kanten har mörka fält uppstått. Vad beror dessa på?
Utnyttja separabiliteten
f(x,y)
F(x,v)
„
„
„
„
…
Jämförelse med spatialdomänen
Filterdesign
„
„
„
Minskar breäkningsbördan
Vanlig: M2 mult./add.
FFT: M log2M
„
Lågpassfilter
Högpassfilter
Homomorf filtrering
Korrelation
FFT2 i MATLAB
Hur förhåller sig filter i spatial resp.
frekvensdomänen till varandra?
Faltning i en domän – multiplikation i andra
„
Koppling frekvens – spatial
domän
„
M −1 N −1
∑∑ s( x, y)Aδ ( x − x , y − y ) = As( x , y )
0
1
MN
0
0
0
x =0 y =0
Två funktioner, storlek M ×N:
f ( x, y ) ∗ h ( x, y ) =
En impuls (dirac) funktion vid (x0, y0) definieras:
Aδ (x − x0 , y − y0 )
Faltningsteoremet
f ( x, y ) * h( x, y ) ⇔ F (u, v) H (u, v)
„
„
1-D column
transformer
Koppling frekvens – spatial
domän
„
…
Mer om filtrering
„
Fast Fourier Transform
„
„
„
F(u,v)
1-D rad
transformer
…
Bildförbättring i
frekvensdomänen
Implementation
„
…
M −1 N −1
∑∑ f (m, n)h( x − m. y − n)
„
„
Funktionsvärdet vid impulsen gånger impulsens
amplitud
Impulsen är en bild, M ×N, 0 överallt utom vid
impulsen
m =0 n = 0
9
Koppling frekvens – spatial
domän
„
Fouriertransform, impuls i origo:
1
MN
M −1 N −1
∑∑ δ ( x, y)e
Koppling frekvens – spatial
domän
„
− j 2π ( ux / M + vy / N )
f ( x, y ) * h( x, y ) ⇔ F (u, v) H (u, v)
x =0 y =0
δ ( x, y ) * h( x, y ) ⇔ ℑ[δ ( x, y )]H (u, v)
1
=
MN
„
h( x, y ) ⇔ H (u, v)
Faltning, impuls med filter:
δ ( x, y ) ∗ h ( x, y ) =
=
1
MN
M −1 N −1
„
m=0 n=0
„
∑∑ δ (m, n)h( x − m. y − n)
„
„
„
Alla filter och bilder lika stora
Effektivare i frekv.dom.
Men bättre om man använder mindre filter i
spat.dom.
Lättare att specificera i frekv.dom
„
„
„
Filter i olika domäner är transformpar
(Invers)transformera mellan
1
h ( x, y )
MN
Koppling frekvens – spatial
domän
„
Utnyttja faltningsteoremet och impulsens
egenskaper:
„
„
Gaussiskt filter – lika i båda
Skapa i frekv.dom.
H (u ) = Ae −u
„
Skapa frekvensfilter
Inverstransformera
Förminska
/ 2σ 2
Inv.trans. till spat.dom.
2
σ 2x2
Lågpassfilter
Högpass
„
„
Frekvens
Idealt LP-filter
Tar bort alla frekvenser högre än
brytfrekvensen D0
1
H (u , v) = 
0
Spatial
2
h( x) = 2π σAe −2π
Exempel
Lågpass
Exempel
„
om D(u , v) ≤ D0
om D(u , v) > D0
D (u ,v ) är avståndet från origo (i centrerat
spektrum)
D ( u , v ) = [( u − M
/ 2)
2
+ (v − N / 2 )
2
]1 / 2
10
Idealt LP-filter
Idealt LP-filter
Idealt LP-filter
Ringningar
„
„
Tydliga ringningar
Faltningsteoremet:
„
Likvärdigt med att falta med inversen av filtret i
spatialdomänen
Butterworth LP-filter
„
„
Minska ringningarna
Brytfrekvens D0, ordning n :
H (u, v) =
„
„
Butterworth LP-filter
1
1 + [ D (u , v) / D0 ]2 n
Högre ordning – effektivare filtrering
Runt ordning 20 liknar BLPF ett ILPF,
mycket ringning
Ovan: Filterprofil för
olika ordningar
T.H: Spatial
representation av olika
ordningar
11
Butterworth LP-filter
Gaussiska LP-filter
„
D (u,v)=avståndet från origo
H (u ) = e − D
„
( u , v ) / 2σ 2
Låt σ vara brytfrekvens D0
H (u ) = e − D
„
2
2
( u , v ) / 2 D0 2
Inversen också gaussisk – ingen ringning
Gaussiska LP-filter
Gaussiska LP-filter
Exempel
Tentaexempel
„
„
”Fylla igen” brutna bokstäver
Gaussiskt filter, D0=80
Föjlande bild har lågpassfiltrerats i frekvensdomänen. Jag hade väntat mig en
suddigare bild som resultat, men inte att bilden skulle se ut som nedan. Det har
uppstått många fula ”vågor” i bilden som inte är önskade. Vad beror detta på, och
hur skulle jag ha filtrerat bilden (i frekvensdomänen) för att undvika det?
Originalbild
Filtrerad bild
12
Högpassfilter
„
„
Tre olika högpassfilter
LP-filter spärrar höga frekvenser
HP-filter ska fungera omvänt, spärra låga
och släppa igenom höga frekvenser
H hp (u , v) = 1 − H lp (u, v)
H lp(u,v) är överföringsfunktionen för ett LP-filter
Tre olika högpassfilter
„
Spatial representation av föregående filter,
jämför med LP-filtren
Fr. v-h: Idealt filter,
Butterworth,
Gaussiskt
Butterworth HP-filter
„
Definieras:
Idealt HP-filter
„
0
H (u, v) = 
1
„
om D(u, v) ≤ D0
om D(u , v) > D0
Ringningar
Gaussiska HP-filter
„
1
H (u , v) =
1 + [ D0 / D (u, v)]2 n
Motsats till GLPF
H (u ) = 1 − e − D
„
„
Motsats till ILPF
2
( u , v ) / 2 D0 2
Ingen ringning
Ordning 2, olika brytfrekvens
13
Laplace-filter
„
Transform av derivering:
d n ( f ( x))
→ ( ju ) n F (u )
dx n
„
„
Transform
I frekvensdomänen
H (u , v) = −(u 2 + v 2 )
„
Laplace, andraderivator
∇ 2 f ( x, y ) =
„
Laplace-filter
Med centrerat spektrum
[
H (u , v ) = − (u − M / 2 ) 2 + (v − N / 2 ) 2
∂ 2 f ( x, y ) ∂ 2 f ( x, y )
+
∂x 2
∂y 2
„
]
0 i origo, övriga värden negativa
 ∂ 2 f ( x, y ) ∂ 2 f ( x, y ) 
2
2
+
ℑ
 = ( ju ) F (u, v) + ( jv ) F (u, v)
2
∂y 2 
 ∂x
2
2
= −(u + v ) F (u , v)
Laplace-filter
Öka skärpan i en bild med
laplacefiltret
„
Som i spatialdomänen
 f ( x, y ) − ∇ 2 f ( x, y )
g ( x, y ) = 
 f ( x, y ) + ∇ 2 f ( x, y )
„
om negativt i centrum
om positivt i centrum
Lägg ihop till ett filter
„
(Kan dock behövas skalas)
[
H (u , v ) = 1 − (u − M / 2 ) 2 + ( v − N / 2 ) 2
Öka skärpan i en bild med
laplacefiltret
]
Oskarp mask, high boost
filtrering
„
„
Likadant som spatial filtrering
Oskarp mask
f hp ( x, y ) = f ( x, y ) − f lp ( x, y ) ⇒
H hp (u , v) = 1 − H lp (u , v)
„
High boost filtrering
f hb ( x, y ) = Af ( x, y ) − f lp ( x, y ) ⇒
f hb ( x, y ) = ( A − 1) f ( x, y ) + f hp ( x, y ) ⇒
H hb (u, v) = ( A − 1) + H hp (u, v)
A ≥1
14
Homomorf filtrering
„
„
Förbättra en bild genom att komprimera
gråskalan och öka kontraster i bilden
En bild är en produkt av illuminans och reflektans
„
„
Illuminans, i – belysningen
Reflektans, r – objekten
Homomorf filtrering
„
ℑ{ f ( x, y )} ≠ ℑ{i ( x, y )}ℑ{r ( x, y )}
„
Logaritmera, möjligt att dela upp produkter
„
Transform
z ( x, y ) = ln f ( x, y ) = ln i( x, y ) + ln r ( x, y )
f ( x , y ) = i ( x, y ) r ( x , y )
„
Det går inte att behandla
frekvenskomponenter direkt
Vill egentligen bara ha r
ℑ{z ( x, y )} = ℑ{ln i ( x, y )} + ℑ{ln r ( x, y )}
eller
Z (u, v) = Fi (u, v) + Fr (u, v)
Homomorf filtrering
„
Vid filtrering med H (u,v)
Homomorf filtrering
„
Blockschema
„
H (u,v) – homomorfiskt filter
S (u , v ) = H (u , v ) Z (u , v ) = H (u , v ) Fi (u , v ) + H (u , v ) F r (u , v )
„
I spatialdomänen
s( x, y ) = ℑ−1{H (u , v) Fi (u , v)} + ℑ−1{H (u, v) Fr (u , v)}
låt
i ' ( x, y ) = ℑ−1{H (u, v) Fi (u, v)}
och
r ' ( x, y ) = ℑ −1{H (u , v) Fr (u, v)}
skriv sedan om till
s ( x , y ) = i ' ( x, y ) + r ' ( x , y )
„
„
Exponentiera
g ( x, y ) = e
s ( x, y )
=e
i0 ( x, y ) = e i ' ( x , y )
i ' ( x , y ) r '( x , y )
och
e
= i0 ( x, y )r0 ( x, y )
Förstärka höga, förminska låga frekvenser
„
„
Illuminans – låga frekvenser
Reflektans – höga frekvenser
r0 ( x, y ) = e r '( x , y )
Homomorf filtrering
„
„
γL<1, γH >1
Profilbild, rotationssymmetriskt filter
Homomorf filtrering
„
Kurvan kan approximeras med GHPF (c
reglerar kurvan)
[
H (u , v) = (γ H − γ L ) 1 − e − c ( D
2
( u , v ) / D0 2 )
]+ γ
L
15
Korrelation
„
Matchning
„
„
Korrelationsteoremet
f ( x, y ) o g ( x, y ) ⇔ F ∗ (u, v )G (u, v )
Sök efter mönster
„
„
Korrelation
Del i bilden
Jämför med faltning
1
f (x, y) ∗ h(x, y) =
MN
1
f (x, y) o h(x, y) =
MN
„
Korelation
M −1 N −1
∑ ∑
m = 0 n = 0
M −1 N −1
∑ ∑
m = 0
„
( f ( x, y) * g ( x, y) ⇔ F (u, v)G (u, v) )
f (m , n )h ( x − m , y −n )
f ∗ (m , n )h(x + m , y +n)
n = 0
* - komplexa konjugatet (samma om reel)
Teckenbyte
(Jämför med faltningsteoremet)
„
Korskorrelation – olika bilder
„
Autolorrelation, effektspektrum
f ( x , y ) o f ( x , y ) ⇔ F (u , v )
2
Korrelation
16