Documente Academic
Documente Profesional
Documente Cultură
7.1. Introducere
7.2. Operaii morfologice pentru imagini binare
7.3. Operaii morfologice pentru niveluri de gri
2010-2011
Morfologia matematic
o alt abordare, prelucrarea imaginii n acest caz nseamn
modificarea formei spaiale sau a structurii obiectelor dintr-o
imagine.
morphos = form
logos = tiin
7.1. Introducere
Morfologia matematic
forma prestabilit = element structurant: o mulime geometric,
aleas arbitrar sau impus (cunoscut a priori) a crei form
geometric determin modul de prelucrare al imaginii.
se specific
punctul curent (originea)
(1,0), (2,0)
coordonate relative
binarizare
(vezi Curs 4)
imagine iniial I
(niveluri gri: 0-255)
imagine binar
(negru=0 i alb=255)
fundal = X = { | X }
C
X
ex.: pixelii ai cror valoare este nul formeaz
mulimea fundal,
vector
transformarea de erodare
AB = {x | Bx A}
- exemplu:
AB = {x | Bx A}
B=
Bx = { + x | B}
- erodarea morfologica (simbol ) a mulimii A prin elementul
structurant B se definete ca fiind mulimea punctelor din imagine
n care elementul structurant translatat este inclus n mulimea A.
imaginea iniial A
imaginea iniial A
imaginea erodat
AB
AB = {x | Bx A}
imaginea erodat
AB
- exemplu (continuare):
imaginea iniial A
10
AB = {x | Bx A}
imaginea erodat
AB
11
AB = {x | Bx A}
- exemplu (continuare):
AB = {x | Bx A}
- exemplu (continuare):
...
imaginea iniial A
imaginea erodat
AB
imaginea iniial A
12
13
AB = {x | Bx A}
- exemplu (continuare):
imaginea erodat
AB
AB = {x | Bx A}
- exemplu (continuare):
...
imaginea iniial A
imaginea erodat
AB
imaginea iniial A
14
15
imaginea erodat
AB
AB = {x | Bx A}
- exemplu (continuare):
AB = {x | Bx A}
...
imaginea iniial A
imaginea erodat
AB
imaginea iniial A
16
imaginea erodat
AB
17
AB = {x | Bx A}
- exemplu (continuare):
imaginea iniial A
imaginea erodat
AB
imaginea iniial A
18
imaginea erodat
AB
AB = {x | Bx A}
...
- form echivalent:
vector
bB
imaginea iniial
20
translatare
I A , B = { b | b B}
S
bB S
- exemple:
imaginea erodat
AB
AB = {x | Bx A}
AB = {x | b B, a A a.i. b + x = a}
AB = I Ab =
imaginea iniial A
19
AB = {x | Bx A}
- exemplu (continuare):
B=
imagine binar A
imagine erodat
21
AB = {x | Bx A}
transformarea de dilatare
A B = {x | Bx A }
B=
B=
imagine erodat
imagine erodat
Observaii:
- frontierele obiectelor sunt oarecum
netezite de mici fluctuaii,
- obiectele sunt micorate,
- obiectele mici sunt eliminate,
- golurile se mresc,
- forma lui B influeneaz rezultatele,
22
23
B=
A B = {x | Bx A }
A B = {x | Bx A }
imaginea iniial A
imaginea dilatat
AB
imaginea iniial A
24
imaginea iniial A
A B = {x | Bx A }
imaginea dilatat
AB
26
A B = {x | Bx A }
imaginea dilatat
AB
- exemplu (continuare):
A B = {x | Bx A }
imaginea dilatat
AB
27
imaginea iniial A
25
imaginea iniial A
- exemplu (continuare):
imaginea dilatat
AB
imaginea iniial A
28
A B = {x | Bx A }
imaginea dilatat
AB
29
A B = {x | Bx A }
- exemplu (continuare):
imaginea iniial A
imaginea dilatat
AB
imaginea iniial A
30
imaginea dilatat
AB
31
A B = {x | Bx A }
- exemplu (continuare):
A B = {x | Bx A }
- exemplu (continuare):
A B = {x | Bx A }
- exemplu (continuare):
...
...
imaginea iniial A
imaginea dilatat
AB
imaginea iniial A
32
A B = {x | Bx A }
vector
translatare
A B = {x | b B, a A a.i. b + x = a}
A B = U Ab =
bB
B=
A B = {x | Bx A }
U A , B = { b | b B}
S
bB
- exemple:
imaginea iniial
33
imaginea dilatat
AB
imagine binar A
B=
imagine binar A
B=
imagine dilatat
imagine dilatat
34
imagine dilatat
Observaii:
- obiectele sunt mrite,
- obiectele mici sunt accentuate,
- golurile mici sunt umplute,
- forma lui B influeneaz direcia de
dilatare,
35
- invarian la translaie:
At = { + t | A}
AC = { | A}
( AB ) C = AC B
A Bt = ( A B) t
At B = ( A B ) t
A Bt = ( A B ) t
- invarian la scalare:
( A B) C = AC B
36
( A B ) = A
( AB ) = A
37
- monotonie:
- extensivitate:
- n general dilatarea este extensiv:
A A B
A1 A2 , A1 B A2 B
A1 B A 2 B
AB A
B1 B2 , A B1 A B 2
B1 B2 ,
At B = ( A B) t
A B 2 A B1
ex.:
38
39
- asociativitate ??
A (B C ) = ( A B) C
etc.
A (B C ) ( A B) ( A C )
C = { | C}
( B C ) A ( B A ) (C A )
( A B ) C = A ( B C )
A (B C ) = ( AB ) ( AC )
( A B ) C = ( A C ) ( B C )
( A B) C = ( A C ) (B C )
A (B C ) ( AB ) ( AC )
A (B C ) = ( A B) ( A C )
( B C ) A ( B A ) (C A )
40
41
B=
Bobj=
B2=
B3=
A * B = ( ABobj )
( AC B fundal )
B4=
Bfundal=
A * B = ( ABobj ) ( AC B fundal ), AB = {x | Bx A}
-cu alte cuvinte, mulimea A*B va conine toate punctele din
originea elementului structurant B pentru care simultan, Bobj se
regsete n A i Bfundal se regsete n AC (~ elementul structurant
se regsete n imagine = hit)
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
42
B2=
B3=
( A B fundal )
C
B2=
B3=
44
A * B = ( ABobj )
( AC B fundal )
B4=
imaginea iniial A
B2=
B4=
43
A * B = ( ABobj )
B1=
imaginea iniial A
imaginea iniial A
45
A * B = ( ABobj )
( A B fundal )
C
B4=
B2=
B3=
A * B = ( ABobj )
( AC B fundal )
B4=
imaginea iniial A
imaginea iniial A
46
47
B2=
B3=
A * B = ( ABobj )
( AC B fundal )
A * B = ( ABobj )
B4=
B2=
B3=
( AC B fundal )
B4=
imaginea iniial A
48
imaginea iniial A
B2=
B3=
( A B fundal )
C
49
A * B = ( ABobj )
B4=
imaginea iniial A
50
B2=
imaginea iniial A
B3=
A * B = ( ABobj )
( AC B fundal )
B4=
imagine coluri
(A*B1)or(A*B2)or(A*B3)or(A*B4)
51
A B = ( AB ) B S
unde A este mulimea imagine (pixelii obiect), B este mulimea elementului
structurant, este operaia de erodare, este operaia de dilatare iar BS
reprezint mulimea elementului structurant simetrizat:
B S = { b | b B}
imagine iniial A
imagine AD1
imagine AD2
imagine AD4
imagine AD5
52
53
A B = ( A B )B S
unde A este mulimea imagine (pixelii obiect), B este mulimea elementului
structurant, este operaia de erodare, este operaia de dilatare iar BS
reprezint mulimea elementului structurant simetrizat:
imagine AD6
imagine iniial A
B S = { b | b B}
imagine AD7
Observaii:
- componentele conexe ale mulimii A mai mici
dect elementul structurant sunt eliminate,
- convexitile foarte accentuate ale contururilor
sunt teite i "istmurile" sunt ndeprtate,
- efect de netezire al frontierelor,
54
imagine A D1
55
imagine iniial A
imagine A D2
imagine iniial A
imagine A D10
imagine A D11
Observaii:
- golurile din obiecte, mai mici dect elementul
structurant sunt umplute,
- concavitile accentuate ale contururilor sunt
umplute i obiectele apropiate sunt unite,
- efect de netezire al frontierelor,
imagine A D8
imagine iniial A D3
imagine A D9
( A B) = A B
C
( A B ) C = AC B
A B A A B
o strategie posibil:
- n imaginea AC (fundalul devine obiect), folosind un algoritm de
tip flood-fill se determin toate obiectele conexe,
- obiectele de o anumit dimensiune din AC sunt copiate n
imaginea iniial A,
- constrngeri: necesar un ordin de msur al golurilor, merge
doar pentru anumite tipuri de imagini (ex. obiect vs. fundal)
- sunt idempotente:
( A B ) B = A B
( A B) B = A B
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
57
58
59
AC
X(0)
X(1)
X(2)
60
AC
X(7)
61
exemple practice:
X(7)
X(6)
...
X(2)
AC
cum facem s
izolm regiunea
minii pentru
analiza gestului ?
-limitare: este
necesar
cunoaterea
unui punct din
interiorul
golului.
imagine nregistrat
X(7)A
62
63
A = ( A B ) A
unde A este mulimea imagine (pixelii obiect), B este mulimea elementului
structurant (ales adecvat), - reprezint operaia de scdere matematic.
morfologic
B=
B=
etichetare
flood fill+
reinere
obiect
maximal
A
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
64
65
A = A ( AB )
grad ( A) = ( A B ) ( AB )
- exemplu:
- exemplu:
B=
B=
B=
grad(A)
66
B=
grad(A)
67
exemple practice:
hole filling
imagine nregistrat
obiect Y
binarizare+
etichetare+
eliminare
obiecte ce
alb=0,
negru=1
ating
marginea
obiect X
mulimea obiect
[Matlab]
68
suprapunere
observaii:
- de cele mai multe ori exist mai multe
soluii pentru aceeai problem, cu
rezultate similare,
- totui trebuie favorizate soluiile
generale, aplicabile pentru orice imagine.
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
69
70
A B = A ( A * B)
unde A este mulimea imagine (pixelii obiect), B este mulimea elementului
structurant, - reprezint operaia de scdere matematic iar * reprezint
transformarea hit or miss.
A B = A ( A * B)C
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
71
B=
A B = A ( A * B)
A * B = ( ABobj ) ( AC B fundal )
Bobj=
B=
Bfundal=nu
imaginea iniial A
imaginea A*B
72
A * B = ( ABobj ) ( AC B fundal )
Bfundal=
imaginea A B
imaginea A*B
73
{B} = {B , B ,..., B }
1
Bobj=
imaginea A B
imaginea iniial A
bordare prin duplicarea
liniilor/coloanelor
A B = A ( A * B)
- exemple (continuare):
- exemplu:
Bi
Bi-1 (~
dispunem de o
B1=
B2=
B3=
B4=
B5=
B6=
B7=
B8=
[H. Coetzer]
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
74
imaginea iniial A
B1=
imaginea A1=A-(A*B1)
75
imaginea A1
76
B2=
imaginea A2=A1-(A1*B2)
77
B3=
imaginea A2
imaginea A3=A2-(A2*B3)
B4=
imaginea A3
78
imaginea A4=A3-(A3*B4)
B5=
imaginea A4
imaginea A5=A4-(A4*B5)
B6=
imaginea A5
80
imaginea A6=A5-(A5*B6)
81
- exemplu (continuare):
- exemplu (continuare):
B7=
imaginea A6
79
B8=
imaginea A7=A6-(A6*B7)
imaginea A7
82
imaginea A8=A7-(A7*B8)
83
A B = A ( A * B )
- exemplu (continuare):
imaginea
A {B}
84
A B = A ( A * B )
{B} = {B , B ,..., B }
A{B} = (...(( A B1 ) B 2 )...) B n
2
85
- exemplu:
B2=
B3=
B4=
B5=
B6=
B7=
B8=
B1=
B2=
B3=
B4=
B5=
B6=
B7=
B8=
5 5 5 5 5 5 4
4
3
1 1 1 1 1 1 1
86
5
7
7
8
imaginea A{B}
imaginea A{B}
87
skeletonul morfologic
nu putem gsi
o linie de
grosime 1 prin
mijlocul
obiectului
obiect 1
obiect 2
discuri maximale
segmente skeleton
skeleton final
88
[HP ISEI]
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
89
X = U {S ( x) rD}
r
r >0
unde denot operaia de dilatare.
S ( X ) = U S r ( x)
r >0
- s transpunem n practic:
nmax
nmax
n=0
n =0
S ( X ) = U S n ( x) = U {( XnB ) (( XnB ) B )}
r >0
n ori
( XrD)drD ( XrD)
X = U {S n ( x) nB}
n =0
90
X B = ( XB) B
imaginea S0
- exemplu
B=
(continuare):
imaginea iniial X
S0 ( X ) = X ( X B)
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
91
imaginea iniial X
[A.K. Jain]
n=0
X B = ( XB) B S
imaginea S1
S1 ( X ) = ( XB) (( XB) B)
92
93
imaginea iniial X
imaginea S2
imaginea iniial X
imaginea S3
94
95
- exemplu
B=
(continuare):
n=0
imaginea iniial X
X B = ( XB) B S
skeleton (S)
imaginea iniial X
n=0
X B = ( XB) B S
S0 ( X ) = X ( X B) = {}
S1 ( X ) = ( XB) (( XB) B)
S ( X ) = S 0 S1 S 2
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
96
97
imagine nregistrat
- exemplu
B=
(continuare):
caracterizare:
-sistem de
referin = centrul
de greutate (+alb);
{- puncte terminale
i intersecii,
-segmente i
poziia acestora
fa de origine
(cadran), etc.}
= semntur gest
regiune mn
(vezi pag. 63-64)
98
- exemplu practic
(continuare):
- exemplu practic
(continuare):
caracterizare:
-sistem de
referin = centrul
de greutate (+alb);
{- puncte terminale
i intersecii,
-segmente i
poziia acestora
fa de origine
(cadran), etc.}
= semntur gest
caracterizare:
-sistem de
referin = centrul
de greutate (+alb);
{- puncte terminale
i intersecii,
-segmente i
poziia acestora
fa de origine
(cadran), etc.}
= semntur gest
skeletonul suprapus peste imaginea iniial
99
101
102
103
[H. Coetzer]
( A B) ( s ) = max{A( s x) + B( x) | ( s x) DA , ( x) DB }
A( s x, t y ) + B( x, y ) |
( A B ) ( s ,t ) = max
( s x, t y ) DA , ( x, y ) DB
cu alte cuvinte, dilatarea imaginii A cu elementul B n punctul curent (s,t) este
dat de valoarea maxim a sumei dintre valorile pixelilor imaginii i valorile
corespunztoare din elementul structurant.
A
x
0
( A B ) ( s ,t ) = max{A( s x, t y ) | ( x, y ) DB }
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
s1
s2
AB
105
imagine iniial
min=14, max=218,
val.medie= 72
106
107
( AB ) ( s ) = min{A( s + x) B ( x) | ( s + x) DA , ( x) DB }
A( s + x, t + y ) B ( x, y ) |
( AB ) ( s ,t ) = min
( s + x, t + y ) DA , ( x, y ) DB
cu alte cuvinte, erodarea imaginii A cu elementul B n punctul curent (s,t) este
dat de valoarea minim a diferenelor dintre valorile pixelilor imaginii i valorile
corespunztoare din elementul structurant.
A
x
x
-A
( AB ) ( s ,t ) = min{A( s + x, t + y ) | ( x, y ) DB }
Tehnici avansate de prelucrarea i analiza imaginilor, .l. Bogdan IONESCU
108
s3
AB
109
x
s1 s2
imagine iniial
min=14, max=218,
val.medie=72
[H. Coetzer]
imagine iniial,
val.medie=124.5
110
, imagine binar:
( A B ) ( s ,t ) = max{A( s x, t y ) | ( x, y ) DB }
imaginea iniial A
, imagine binar:
( AB ) ( s ,t ) = min{A( s + x, t + y ) | ( x, y ) DB }
A B = {x | Bx A }
AB = {x | Bx A}
unde B=
unde B=
111
112
imaginea iniial A
113
A B = ( AB ) B
- caz limit, B=0:
imagine iniial
A B = ( A B )B S
imagine iniial
114
imagine cu zgomot
impulsiv
115
( AB) B
( A B ) B
deschidere+nchidere
cu disc raz 1
- deschidere + nchidere:
- nchidere + deschidere:
nchidere+deschidere
cu disc raz 1
116
imagine cu zgomot
impulsiv
( AB) B
( A B ) B
deschidere+nchidere
cu disc raz 2
nchidere+deschidere
cu disc raz 2
117
gradient morfologic
g = ( A B) ( AB)
( x , y )B ( x , y )B
netezirea morfologic
- nchidere + deschidere:
transformarea Top-Hat
: din imaginea dilatat se extrage
imaginea erodat,
white Top-Hat:
A ( A B)
g ( s ,t ) = max{ A( s x, t y )} min{ A( s + x, t + y}
( x , y )B
( x , y )B
black Top-Hat:
L-filtru de
derivare
max-min
(vezi Cursul 6)
(dilatare erodare) cu
disc de raz 1
118
119
[Matlab]
iniial
deschidere
top-hat
A ( A B)
rm
eun ifo
are n
ilumin
imaginea iniial cu
luminozitate variabil
120
121
abordare
marginal:
R
deschidere
deschidere
- limitare: pot fi
eliminate pri din
obiecte doar n
anumite plane de
culoare i pstrate
n celelalte.
[A. Asano]
122
123
cteva definiii:
- mulimea X este semi-ordonat dac ordonarea este definit
doar pentru anumite perechi de elemente,
- mulimea X este ordonat total dac ordonarea este definit
pentru oricare pereche de elemente (elementele formeaz o
secven liniar ordonat, ex. nivelurile de gri).
- mulimea elementelor din X / dect toate elementele
dintr-o submulime A din X, reprezint limita superioar /
inferioar a lui A.
x X , x x
(reflexivitate)
x, y X , x = y daca x y, y x
(anti-simetrie)
x, y , z X , x z daca x y, y z
(tranzitivitate)
125
- distan cumulativ:
- unghi cumulat:
K
k = ( Ak , Ai )
i =1
- distan i unghi:
k = Dk1 w kw
- distan fa de un punct de referin (ex. vector mediu,...),
Dk =|| Ak R ||
imagine iniial
(Edvard Munch)
126
deschidere morfologic
(elim. obiecte luminoase)
nchidere morfologic
(elim. obiecte ntunecate)
imagine iniial
(Edvard Munch)
deschidere morfologic
(elim. obiecte luminoase)
nchidere morfologic
(elim. obiecte ntunecate)
imagine iniial
(Edvard Munch)
128
deschidere morfologic
nchidere morfologic
(elim. obiecte luminoase) (elim. obiecte ntunecate)
[P. Lambert, J. Chanussot]
imagine iniial
(Edvard Munch)
deschidere morfologic
nchidere morfologic
(elim. obiecte luminoase) (elim. obiecte ntunecate)
imagine iniial
(Edvard Munch)
127
130
129
deschidere morfologic
nchidere morfologic
(elim. obiecte luminoase) (elim. obiecte ntunecate)
131
Sfrit Curs
imagine iniial
(Edvard Munch)
deschidere morfologic
nchidere morfologic
(elim. obiecte luminoase) (elim. obiecte ntunecate)
132
133