Beeldverwerking Beeldverbetering, -bewerking en -analyse
Johan Baeten
Beeldverwerking Deel1 - 1
Beeldverwerking • Beeldverbetering - Basisbegrippen – Voorbewerking – Filteren • Segmentatie – Randdetectie – modellering • Beeldanalyse – Interpretatie
Johan Baeten
Beeldverwerking Deel1 - 2
1
Beeldverwerking Deel 1 Beeldverbetering - Basisbewerkingen
Johan Baeten
Beeldverwerking Deel1 - 3
Beeldverbetering • Doel: – Ongewenste distorties onderdrukken – Kenmerken benadrukken of verscherpen • voor weergave of analyse – Probleemgericht • Methode: – ‘Spatial’ domein Bronbeeld Verbetering – Frequentiedomein
Resultaatbeeld
Applicatiegerichte Terugkoppeling Johan Baeten
Beeldverwerking Deel1 - 4
2
Beeldverbetering - Overzicht • Referentiebeeld: R(x,y) = B(x,y) – Bref (x,y) – Verschillen benadrukken, vaak in medische toep. 1 • Uitmiddelen: R(x,y) = n Σ Bi(x,y) i – Niet-gecorreleerde ruis elimineren. • Ruimtelijk-domein methode: R(x,y) = T{B(x,y)} – met T een locale pixeloperator – Punt- of maskeroperaties – Linair of niet-linenair • Frequentie-domein filtering: R(x,y) = B(x,y) * H(x,y) (= conv.) – FFT: R(u,v) = B(u,v) . H(u,v) met F(u,v)=FFT{F(x,y)} Johan Baeten
Beeldverwerking Deel1 - 5
Ruimtelijk-domein methodes: Puntoperaties B(x,y)
R(x,y) • R(x,y) = T{B(x,y)}
y
T x
Resultaatwaarde voor pixel (intensiteit of kleur) is afhankelijk van bronwaarde op gelijke positie • Inversie • Kleurenfilter • Contrastaanpassing • Drempel (‘Thresholding’) • Histogrambewerking
Johan Baeten
Beeldverwerking Deel1 - 6
3
Inversie R • R(x,y) = 255 - B(x,y)
L-1
T{}
0 0
L-1
Johan Baeten
B
Beeldverwerking Deel1 - 7
Contrastaanpassing R • Benadrukken Grijswaardenhelling >1. • Onderdrukken Grijswaardenhelling <1.
L-1
T{}
0 0
Johan Baeten
L-1
B
Beeldverwerking Deel1 - 8
4
Histogramgerelateerde Operaties • Histogram geeft het aantal pixels met gelijke grijswaarden (absoluut of relatief) # 1
1
2
3
3
3
1
2
2
2
3
3
1
2
6
8
8
8
1
2
7
8
8
8
2
4
7
8
8
9
10
Bijvoorbeeld: { # R(x,y) = 1 } = 5 { # R(x,y) = 2 } = 7 { # R(x,y) = 3 } = 5 { # R(x,y) = 4 } = 1 . . .
5
0 0
L-1
B
Algemeen (relatief): Johan Baeten
Beeldverwerking Deel1 - 9
Histogramgerelateerde Operaties (cont.) #
# Donker Beeld
10
Helder Beeld
10
5
5
0 0
grijswaarde
0 L-1
#
0
grijswaarde
L-1
# Weinig contrast
10
Hoog contrast
10
5
5
0 0 Johan Baeten
grijswaarde
0 L-1
0
grijswaarde
L-1
Beeldverwerking Deel1 - 10
5
Histogramequilibratie #
#
10
10
lineair
5
0 0
grijswaarde
5
0 L-1
0
grijswaarde
L-1
# 10
In extremus
5
0 0 Johan Baeten
grijswaarde
L-1
Beeldverwerking Deel1 - 11
Quantisatie - Drempeloperatie R • Quantisatie en ‘thresholding’ Speciaal gevallen van contrastaanpassing • Ook voor datacompressie
T{}
L-1
0 0
Johan Baeten
L-1
B
Beeldverwerking Deel1 - 12
6
Ruimtelijk-domein methode: Maskeroperaties B(x,y)
R(x,y) • R(x,y) = T{B(x ±d,y±d)}
y
T x
Resultaatwaarde voor pixel (intensiteit of kleur) is afhankelijk van bronwaarde van omliggende pixels w1 w2 w3 w4 w5 w6 w7 w8 w9
R(x,y) = w1.B(x-1,y+1) + w2.B(x,y+1) + w3.B(x +1,y+1) + w4.B(x-1,y) + w5.B(x,y) + w6.B(x +1,y) + w7.B(x-1,y-1) + w8.B(x,y-1) + w9.B(x +1,y-1)
3x3 masker Johan Baeten
Beeldverwerking Deel1 - 13
Maskeroperaties – Voorbeelden 1 Afvlakfilter
1
1
1
1
1
1
1
1
1 9
Uitmiddelen van 9 pixelwaarden
Laplacefilter
-1
-1
-1
-1
8
-1
-1
-1
-1
of ook
1
2
1
2
-12
2
1
2
1
Verschil tussen centraal pixel en omliggende benadrukken zie verder Johan Baeten
Beeldverwerking Deel1 - 14
7
Verscherpen m.b.v. gradiënt (1) • Afgeleiden van een beeld zorgt voor scherper beeld • Gradiënt als basis voor afgeleide ∂f ∂x
grad( f ) =
, is een vector met Amplitude en Richting
∂f ∂y
Amplitude =
∂f 2 ∂f + ∂x ∂y
∂f Richting = bgtan ∂ y
∂f ∂x
2
, is een maat voor helling v. rand , staat loodrecht op rand
Johan Baeten
Beeldverwerking Deel1 - 15
Verscherpen m.b.v. gradiënt (2) • Discrete implementatie van afgeleide: f (x+∆x, y) - f (x, y) ∂f = = f (x+1, y) - f (x, y) ∆x ∂x f (x, y+∆y) - f (x, y) ∂f = f (x, y+1) - f (x, y) = ∆y ∂y geeft als maskers: -1 1
of
-1 1
• Welke discrete implementatie hoort bij 1 -1 Johan Baeten
1
of
(∆x = 1) (∆y = 1)
(van w5 w6 of w8)
w1 w2 w3 w4 w5 w6 w7 w8 w9
?
-1 Beeldverwerking Deel1 - 16
8
Gradiënt – 3bij3 maskers • Uitbreiding naar 3bij3 gradiëntmaskers levert: Verticale Rand
Rand onder 45º
Horizontale Rand
-1
0
1
-1
-1
0
-1
-1
-1
-2
0
2
-1
0
1
0
0
0
-1
0
1
0
1
1
1
1
1
(c1= 2, c2 = 1, c3 = 0, c4 =-1)
(c1= 0, c2 = 1, c3 =1, c4 = 1)
Of ook door samenstellen van 4 basismaskers (resp. 4 resultaten) -1
c1 .
-1
0
1
+ c2 .
-1
+ c3 .
0 1
m1
-1
+ c4 .
0 1
m2
0 1
m3
m4
Johan Baeten
Beeldverwerking Deel1 - 17
Maskeroperaties – Voorbeeld gradiënt • Verticale rand Resultaatbeeld evt. terug scaleren
1
1
2
3
3
1
2
2
2
3
3
1
2
6
8
8
8
1
2
7
8
8
8
2
4
7
8
8
9
Johan Baeten
-1
0
1
-1
0
1
-1
0
1
3
1
1
2
3
3
3
1
5
7
1
1
3
1
10 12
4
1
8
1
16 16
4
1
8
2
4
8
8
9
7
Beeldverwerking Deel1 - 18
9
Tweede afgeleide Laplaciaan • Laplaciaan = ∇2f =
∂2 f ∂2 f + ∂x2 ∂y2
w1 w2 w3 w4 w5 w6 w7 w8 w9
Benadering: (horizontaal – verctiaal) ∂2 f = f (x-1, y) – 2f (x, y)+ f (x+1, y) ∂x2 ∂2 f = f (x, y -1) – 2f (x, y)+ f (x, y +1) ∂y2
1
1 -4 1 1 1
1
1
1 -8 1 1 1 1
Voeg ook onder 45º en –45º toe Johan Baeten
Beeldverwerking Deel1 - 19
Gradiënt Laplaciaan • Ook Laplace-masker is samenstelling van 8 gradiënt filters -1 1
-1 1
+
-1 +
1
+
1 -1
+
-1 -1 -1
-1 1
+
1 -1
Johan Baeten
+
1 -1
+
1
= -1
-1 8
-1
-1 -1 -1
Beeldverwerking Deel1 - 20
10
Eigenschappen Laplaciaan • • • • •
1 enkel masker Isotrope operator Geen richtingsinformatie Hogere gevoeligheid (2x afleiden) Afvlakken met laagdoorlaatfilter ‘noodzakelijk’
Johan Baeten
Beeldverwerking Deel1 - 21
Maskeroperaties – Voorbeeld Laplaciaan -1 -1 -1 -1 8
• Laplaciaan:
Johan Baeten
+
0
0
0
1
0
0
0
0
-1 -1 -1
-1 -1 -1
-1 8
-1 9
-1
-1 -1 -1
Origineel
-1
-1 -1 -1
0
Laplaciaan
=
-1
-1 -1 -1
Lapl. +origineel
Beeldverwerking Deel1 - 22
11
Niet-lineaire Ruimtelijke Filters • Resultaat-pixel is bij NL-ruimtelijke filters geen gewogen som van omliggende bron-pixels • Bijvoorbeeld: Maximumfilter R(x,y) = max {B(x±1,y±1), B(x,y±1), B(x±1,y), B(x,y)} of R(x,y) = max {B(x+k, y)} met k = -2, -1, 0, 1, 2 B
R
x
x
Johan Baeten
Beeldverwerking Deel1 - 23
Niet-lineaire Ruimtelijke Filters - Mediaan • Mediaanfilter: ideaal om lokale ‘uitschieters’ te elimineren Bijvoorbeeld:
R(x,y) = med {B(x+k, y)} met k = -2, -1, 0, 1, 2
10 12 35 35 45 10 27 28 31 (1) Sorteren
(1)
(1)
10 12 35 35 45 Mediaan (2) nemen
(2)
(1)
10 27 28 31 45
10 27 35 35 45 (2)
(2)
35 35 35 28 28 Johan Baeten
Beeldverwerking Deel1 - 24
12
Binaire Operaties: Erosie & Uitzetting • • • •
‘Erosion, Dilation’ : bewerkingen op binaire beelden Stel: object = wit, achtergrond = zwart Erosie: Indien min. 1 zwart pixel in masker zwart Uitzetting: Indien min. 1 wit pixel in masker wit Erosie
Uitzetting
Johan Baeten
Beeldverwerking Deel1 - 25
Frequentiedomeinfiltering • Principe: – Convolutie: R(x,y) = B(x,y) * H(x,y) – FFT: R(u,v) = B(u,v) . H(u,v) met F(u,v)=FFT{F(x,y)}
–Laagdoorlaat, –Hoogdoorlaat, –Bandsper,
Filter
–Banddoorlaat.
Inverse FFT
Freq. Inhoud
FFT X Origineel Johan Baeten
Pixel bij pixel vermenigvuldiging
Resultaat Beeldverwerking Deel1 - 26
13
Laagdoorlaat • Lage freq. behouden, hoge freq. verzwakken
H
Ideaal LD
H
Doorlaatband
Overgang
d1
u Sperband
d1
u
d2
maar veroozaakt doorschot bij afsnijfrequentie (‘ringing-effect’) Johan Baeten
Beeldverwerking Deel1 - 27
Scherpe afsnijfrequenties slingering • Produkt in freq. domein = convolutie in ruimtelijk domein H
B(x, y)
origineel
Ideaal LD H(x, y)
d0 d0
h
u
2 dim.
*
convolutie
resultaat
x 1/d0 1/d0 Johan Baeten
R(x, y) Beeldverwerking Deel1 - 28
14
Voorbeelden ring- of slingeringeffect
Johan Baeten
Beeldverwerking Deel1 - 29
Hoogdoorlaat • Scherpe rand => geeft ‘slingering’ in ruimtelijk domein
• Zachte rand => bv Butterworth => geen ‘slingering’ in ruimtelijk domein
Johan Baeten
Beeldverwerking Deel1 - 30
15