Sunteți pe pagina 1din 226

Prelucrarea imaginilor

Elemente fundamentale legate de


imaginile digitale

Elemente fundamentale legate de imaginile digitale


Eantionarea i cuantificarea
esantionare

cuantificare

Esantionarea si cuantificare sunt realizate de dispozitivele de


achizitie a imaginilor.
Acestea pot consta intr-un singur senzor care se misca (caz
in care esantionarea depinde de precizia de miscare a
senzorului, dar si de precizia de focalizare a elementului
optic), sau dintr-o retea de senzori matrice caz in care
esantionarea este data de densitatea retelei de senzori
insasi.
3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Reprezentarea imaginilor digitale (in nuante de gri)

Dimensiune matrice: M x N
Nivele de gri: L, cu L=2k
Numar de biti pentru stocarea imaginii: M x N x k

3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Rezolutia spatiala si pe nivele de gri

1024 x 1024

Esantionare

Rezolutia spatiala (M, N)

Cuantificare

Rezolutia pe nivele de gri (L)


16

4
Prelucrarea imaginilor

128 x 128

3/15/2015

Elemente fundamentale legate de imaginile digitale


Rezolutia spatiala si pe nivele de gri
Curbele de izopreferinte

Curbele de izopreferinte cuantifica efectul asupra calitatii unei imagini a


variatiei simultane a celor doi parametri: rezolutia spatiala, respectiv cea in
nuante de gri.
Ele sunt evident subiective. Un punct de pe o curba corespunde unei imagini
caracterizata de valorile corespunzatoare ale parametrilor N si K. Punctele de
pe o curba corespund imaginilor cu acelasi nivel de calitate (asa cum este ea
perceputa de un observator). Exemplul considerat, analizeaza trei imagini, cu
putine detalii (1), numar mediu de detalii (2), respectiv numar mare de
detalii(3).

3/15/2015

Prelucrarea imaginilor

1
2
3

Elemente fundamentale legate de imaginile digitale


Modificarea dimensiunilor imaginilor digitale - 1
Marirea unei imagini poate fi privita ca un proces de supra-esantionare (over sampling), in timp ce micsorarea
unei imagini poate fi privita ca un proces de sub-esantionare (under sampling), aplicate insa deja unei imagini
digitale, si nu uneia continui.
Marirea (ZOOM)
Presupune doua procese:
1. Crearea de noi pixeli.
2. Atribuirea de nivele de gri acestor noi pixeli.
Metode:
1. Interpolarea fata de cel mai apropiat pixel (Nearest neighbor interpolation)
2. Replicarea pixelilor (Pixel replication) -se poate folosi numai pentru scari intregi
3. Interpolarea biliniara (Biliniar interpolation)
4. Interpolare de ordine superioare
Micsorarea
Problema micsorarilor este echivalenta cu cea a maririlor. Metoda replicarii pixelilor se transforma in
stergerea de linii si coloane din 2 in 2.
Pentru evitarea fenomenului de aliasing (muchii zimtate), se recomanda ca inainte de micsorare
imaginea sa fie estompata (blur).

3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Modificarea dimensiunilor imaginilor digitale - 2
Marire (zoom)
Interpolare fata de cel mai apropiat pixel

8x8

12 x 12

Interpolare biliniara
v(x, y) = ax + by + cxy + d
Coeficientii se determina prin rezolvarea unui
sistem algebric liniar in necunoscutele a, b, c, d.
Expresia de mai sus trebuie satisfacuta in cele 4
puncte vecine cu pixelul de coordonate (x y)

3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Vecinatati de pixeli. Adiacente - 1
Vecinatati
Fie un pixel cu coordonatele (x,y)
Exista 2 tipuri de vecinatati ale acestui pixel:
-Vecinatatea 4 - V4 (rosu) -> (x+,1y), (x-1,y),(x,y+1),(x,y-1)
-Vecinatatea 8 - V8 (rosu + albastru) -> (x+1,y+1), (x+1,y-1),(x-1,y+1),(x-1,y-1)
-Rosu vecinatatea pe orizontala si verticala
-Albastru vecinatatea pe diagonala VD
Exceptie de la aceste reguli fac pixelii de pe frontiera imaginii

Pentru definirea adiacentei a doi pixeli trebuie sa luam in considerare vecinatatea si


indeplinirea unei conditii de similaritate, de exemplu nivelul de gri. Intr-o imagine albExista 3 tipuri de adiacente: negru, doi pixeli se considera adiacenti daca sunt vecini (in sensul definit mai sus) si daca
-Adiacenta 4
au asociata ambii - valoarea 0 sau 1. Pentru o imagine cu nuante de gri pentru stabilirea
-Adiacenta 8
criteriului se similaritate se poate face apel la un set de valori (de nivele de gri). Fie acest
-Adiacenta m (mixta)
set notat cu V. Pentru o imagine cu 256 nuante de gri de exemplu, V poate fi orice subset
ale acestor valori.

Adiacente

Adiacenta 4: q este sunt adiacent 4 cu p, daca [ambii pixeli] au valorile din V si q N4(p)
Adiacenta 8: q este adiacent 8 cu p, daca [ambii pixeli] au valorile din V si q N8(p)
Adiacenta m: q este adiacent m cu p, daca [ambii pixeli] au valorile din V si:
q N4(p), sau
q ND(p) si N4(p) N4(q) nu contine nicinu pixel cu valoare din V
3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Vecinatati de pixeli. Adiacente - 2
Exemplu:

p-q1: A4, A8, Am


q1-q2: A4, A8, Am
p-q2: A8
p-q3: A8, Am

Adiacenta 4: q este sunt adiacent 4 cu p, daca [ambii pixeli] au valorile din V si q N4(p)
Adiacenta 8: q este adiacent 8 cu p, daca [ambii pixeli] au valorile din V si q N8(p)
Adiacenta m: q este adiacent m cu p, daca [ambii pixeli] au valorile din V si:
q N4(p), sau
q ND(p) si N4(p) N4(q) nu contine nicinu pixel cu valoare din V

3/15/2015

Prelucrarea imaginilor

Elemente fundamentale legate de imaginile digitale


Cai. Conexiuni
Cai

O cale de la pixelul p, cu coordonatele (x,y), la pixelul q, cu coordonatele (u si v) este o secventa de pixeli


distincti , cu coordonatele (x0,y0), (x1,y1)(xn,yn), astfel incat (x,y)=(x0,y0) si (u,v)=(xn,yn) si orice pixeli
(xi,yi), (xi-1,yi-1) sunt adiacenti.
Se pot deci defini cai A4, A8, sau Am. Daca (x0,y0)=(xn,yn), se spune ca aveam de-a face cu o cale inchisa.

Conexiuni

Fie S un subset de pixeli dintr-o imagine. Doi pixeli p si q se spune ca sunt conectati in S, daca exista o cale
intre ei, formata exclusiv din pixeli din S.
Pentru orice pixel din S, setul de pixeli care sunt conectati cu el in S se numeste o componenta conectata a
lui S. Daca S are doar o componenta conectata, atunci se numeste set conectat.
Fie R un subset de pixeli dintr-o imagine. Vom numi R o regiune a imaginii daca R este un set conectat.
Frontiera sau conturul unei regiuni este setul de pixeli din regiune care au unul sau mai multi vecini care nu
sunt in R.

3/15/2015

Prelucrarea imaginilor

10

Elemente fundamentale legate de imaginile digitale


Masurarea distantelor
- Distanta Euclidiana intre doi pixeli p si q, cu coordonatele (x,y), respectiv (u,v):
De(p,q)=[(x-u)2+(y-v)2]
Pixelii qi pentru care De(p,qi)<=r se gasesc in cuprinsul unul disc de raza r, centrat in p.
- Distanta D4 (se mai numeste si city-block distance) ), intre pixelii p si q (ca mai sus) :
D4(p,q)=|x-s|+|y-t|
Pixelii qi pentru care D4(p,qi)<=r se gasesc in cuprinsul unul romb cu diagonalele de lungime
2r+1, centrat in p. Pixelii cu D4=1 sunt 4 vecinii pixelului p.
- Distanta D8 (se mai numeste si chessboard distance) ), intre pixelii p si q (ca mai sus) :
D8(p,q)=max(|x-s|+|y-t|).
Pixelii qi pentru care D8(p,qi)<=r se gasesc in cuprinsul unul patrat cu laturile de lungime
2r+1, centrat in p.
Pixelii cu D8=1 sunt 8 vecinii pixelului p.
- Distanta Dm dintre doi pixeli p si q este lungimea celei mai scurte m-cai dintre cei doi pixeli.
In cazul primelor 3 distante, ele depind numai de coordonatele punctelor (pixelilor), in
vreme ce in cazul distantei m, valoarea acesteia depinde si de proprietaile (valorile) pixelilor
de pe cale.

3/15/2015

Prelucrarea imaginilor

11

Prelucrarea imaginilor
Ameliorarea imaginilor in domeniul
spatial

Ameliorarea imaginilor in domeniul spatial


Notiuni introductive
Termeni, notiuni si notatii

- f(x,y) imaginea initiala


- g(x,y) imaginea procesata
- (x,y) coordonatele unui punct al imaginii
-Transformare: g(x,y)=T[f(x,y)], unde T este un operator ce actioneaza asupra lui f
si este definit pe o vecinatate a punctului (x,y). Aceasta vecinatate se mai
numeste si masca, kernel, sablon sau filtru. Vecinatatea poate avea forma
patrata, dreptunghiulara, sau mai rar, de disc.
Pixelul central al mastii se misca peste imagine, acoperind fiecare pixel al
acesteia. Transformarea foloseste numai pixelii din zona mastii.
Cel mai simplu exemplu de masca este cea cu dimensiunea 1 (1 x 1).
Atunci se va scrie s=T(r) si T devine functia de transformare [punctuala] de nivel
de gri, unde s este nivelul de gri in imaginea f, in punctul de coordonate (x,y), iar
r este nivelul de gri in imaginea g (procesata), tot in punctul de coordonate (x,y).
Exemplu de transformare punctuala:
Efect: Pixelii cu nivelul de gri mai mic decat m vor fi
facuti mai intunecati, iar cei cu nivel de gri mai mare
decat m vor fi facuti mai luminosi (cazul a.). Deci se va
mari contrastul imaginii. In cazul b., imaginea este
transformata intr-una binara, alb-negru.
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Transformari punctuale in nuante de gri - 1
Definirea contextului:
Fie f(x,y) o imagine cu L nuante de gri (0, 1, 2.L-1)
Si transformata punctuala descrisa de relatia: s=T(r),
unde s si r au semnificatiile prezentate in diapozitivul
anterior.
- Transformata negativa: s=L-1-r
Transformarea este indicata pentru scoaterea in evidenta a detaliilor albe sau gri,
inconjurate de regiuni intunecate (care domina imaginea ca intindere).
-Transformata Log: s = c log (1 + r), cu c constant si r>=0
Transformata mapeaza o zona ingusta de valori mici de nivel de gri intr-o zona
larga de valori mai mari de nivele de gri. Efectul este contrar pentru valorile mari
de nivel de gri (vezi imaginea alaturata si compara segmentele orizontale cu cele
verticale). Transformata este folosita pentru a comprima nivele de gri pentru
imaginile cu variatii mari de intensitate. De exemplu spectrul Fourier al unei
imagini, care poate avea valori in intervalul [0 10^6] (a), si care poate fi comprimat
in intervalul [0 6] , daca c=1,(b)

a.

3/15/2015

b.

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Transformari punctuale in nuante de gri -2
-Transformata putere: s=c r , sau s=c (r+)
Rolul parametrului este de a contracara un semnal de intrare nul. In functie de valorile parametrului se
poate obtine o familie de curbe de transformare, ca in figura de mai jos.
Multe dispozitive pentru captura de imagini sau pentru printare sau
vizualizare raspund pe baza unei legi de tip putere. Pentru corectarea
efectelor unui astfel de raspuns (comportament) se realizeaza asa numita
corectie gamma (dupa numele exponentului).
Exemplu:
Monitoarele CRT au caracteristica intensitate-voltaj de tip putere, cu
exponentul in intervalul 1.8-2.5. Aceasta inseamna ca imaginea trimisa va fi
reprezentata pe monitor mai intunecata decat originalul (Cand >1,
imaginile sunt mai luminoase, iar cand <1 mai intunecate).
Daca se aplica o corectie gama cu valoarea 0.4, se corecteaza acest efect.

Exemplul 1
3/15/2015

Exemplul 2
Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Transformari punctuale in nuante de gri Extinderea
contrastului
(contrast stretching)

Transformarea de tip extindere a contrastului:


Esto o transformare descrisa de trasee liniare, de pante diferite. Conform
imaginii alaturate, daca r1=s1 si r2=s2, se obtine trasformarea identitate
(traseul de culoare rosie).
Daca r1=r2, s1=0 si s2=L-1, se obtine transformarea de tip prag (traseul
albastru). Aceasta produce imagini binare.

Ex.

3/15/2015

Prelucrarea imaginilor

Ex.

Ameliorarea imaginilor in domeniul spatial


Transformari punctuale in nuante de gri Decupari
de nivele de gri
(Gray level slicing)

Aceste transformari au ca scop sa scoata in evidenta anumite zone de nuante de gri. In functie de traseul
transformarii, efectele pot fi diferite.
Exemple:

In cazul transformarii a., sunt scoase in evidenta nivele de gri din intervalul A-B, reducandu-le pe celelalte.
In cazul transformarii b., cu zona A-B se intampla acelasi lucru, dar restul nivelelor de gri raman aceleasi.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Decuparea pe plane de biti
(Bit-plane slicing)

O alta transformare utila este si decuparea pe plane de biti. Se pot obtine astfel imagini ce corespund fiecarui
bit din sirul alocat informatiei de nivel de gri (pentru imaginile de intensitate).
De exemplu, pentru o imagine cu adancimea de culoare de 8 biti, se pot obtine 8 plane, notate de regula
0,1,27. Se va vedea ca planul corespunzator bitului celui mai semnificativ (7) contine majoritatea informatiei
semnificative.

Ex.
Izolarea planelor se poate face fie prin procedee strict numerice, fie aplicand filtre de tip prag, acestea urmand
sa genereze chiar imaginile corespunzatoare unui anumit plan de biti.
Exemplu:
Fie o imagine formata din 4 pixeli, dispusi pentru simplitate pe verticala. Adancimea de culoare este de 4 biti,
deci 16 nuante de gri.
Pixel

Valoare
zecimal

Valoare
binar

Plan 3

Plan 2

Plan 1

Plan 0

11

1011

1000

14

1110

0110

3/15/2015

Prelucrarea imaginilor

Pentru extragerea informatiilor pe plane de


biti se vor aplica transformari de tip prag cu
urmatoarele trasee:

Ex.

Ameliorarea imaginilor in domeniul spatial


Procesarea histogramelor
Pentru o imagine in nuante de gri, in intervalul [0, L-1], o histograma este o functie discreta h(rk)=nk, unde k
este indicele nivelului de gri, rk este valoarea nivelului de gri, iar nk este numarul de pixeli din imagine
caracterizati de nivelul de gri cu indicele k.
De regula histogramele sunt normalizate, adica hn(rk)=nk/n, unde n este numarul total de pixeli din imagine.
Este evident ca hn(rk)=1.
Histogramele au multiple aplicatii in procesarea imaginilor, inclusiv in ameliorarea acestora.

Contrast mare

3/15/2015

Contrast redus

Imagine luminoasa

Prelucrarea imaginilor

Imagine intunecata

Ameliorarea imaginilor in domeniul spatial


Egalizarea histogramelor - 1
Fie o transformare T, din relatia s=T(r), cu 0<=r<=1, cu proprietatile:
1. T(r) este strict crescatoare si univoca
2. 0<=Tr)<=1
Avand in vedere ca in grafica bitmap se opereaza cu valori discrete, vom considera o relatie de forma:

pr (rk )

nk
, cu k 0,1, 2....., L 1
n

Aceasta relatie defineste probabilitatea de


aparitie aknivelului de gri rk
k
nj
O transformare de forma: s T (r )
p (r )
k 0,1, 2....., L 1
k

j 0

n
j 0

Satisface conditiile puse pentru transformarea continua notata tot cu T mai sus. Transformarea se numeste
egalizare de histograma, sau liniarizare de histograma. Ea asigura concret nivelarea histogramei unei
imagini, cu efectul vizibil de crestere a contrastului.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Egalizarea histogramelor - 2
>> i=imread('loco 3.jpg');
>> [j,t]=histeq(i);
>> t=t';
>> h_i=imhist(i);
>> h_j=imhist(j);
>> xlswrite('histograma original',h_i);
>> xlswrite('histograma rezultat',h_j);
>> xlswrite('transformata.xls',t);
>> imshow(i);
>> figure;
>> imshow(j);

25000

25000

20000

20000

15000

15000

10000

10000

5000

0
1
17
33
49
65
81
97
113
129
145
161
177
193
209
225
241

1
23
45
67
89
111
133
155
177
199
221
243

5000

3/15/2015

Prelucrarea imaginilor

10

Ameliorarea imaginilor in domeniul spatial


Potrivirea histogramelor baza teoretica 1
(histogram matching, or specification)

In afara de egalizarea histogramelor, este posibila si generarea unei imagini care sa aiba histograma asociata
(ca expresie a densitatii de probabilitate a aparitiei nuantelor de gri) APROXIMATIX identica cu o histograma
(densitate de probabilitate) data.
Baza teoretica
Fie o imagine sursa, caracterizata de densitatea de probabilitate pr(r) (practic de o histograma a carei
infasuratoare este functia densitate de probabilitate).
Fie o densitate de probilitate (histograma) specificata (tinta) pz(z). S-au notat cu r si z nivele de gri.
r
Fie transformarea :

s T (r ) pr ( w)dw
0

(exact expresia continua pentru egalizarea histogramelor).


Fie transformarea:
z

G ( z ) p z (t )dt s
In aceste conditii se poate scrie:

z G 1 ( s ) G 1[T (r )]
Aceleasi relatii, dar scrise pentru variabile si functii discrete sunt:
3/15/2015

Prelucrarea imaginilor

11

Ameliorarea imaginilor in domeniul spatial


Potrivirea histogramelor baza teoretica 2
(histogram matching, or specification)
k

nj

j 0

j 0

sk T (rk ) pr (rj )

, k 0,1,2....., L 1

vk G ( z k ) p z ( zi ) sk , k 0,1,2....., L 1
i 0

zk G 1[T (rk )], k 0,1, 2....., L 1


zk G 1 ( sk ), k 0,1, 2....., L 1
Implementare:
1. Se calculeaza histograma imaginii sursa
2. Se calculeaza sk pentru fiecare rk
3. Se determina transformata G din pz(z)
4. Se determina, printr-un proces iterativ zk, corespunzator lui sk. z este cel mai mic intreg in intarvalul
[0, L-1] care satisface relatia: (G ( z ) s ) 0, k 0,1,..., L 1
k

1.

Pentru fiecare pixel se face maparea rk -> sk -> zk

Functia histeq in Matlab

3/15/2015

Prelucrarea imaginilor

12

Ameliorarea imaginilor in domeniul spatial


Potrivirea histogramelor - exemplu
Imagine sursa

Imagine pentru histograma

Imagine rezultat

Histogramele corespunzatoare
7000
6000
5000
4000
3000
2000
1000
0

6000

20000

5000
4000

15000

3000

10000

0
1
21
41
61
81
101
121
141
161
181
201
221
241

1000

3/15/2015

1
21
41
61
81
101
121
141
161
181
201
221
241

2000

5000

Prelucrarea imaginilor

1
27
53
79
105
131
157
183
209
235

7000

25000

13

Prelucrarea imaginilor
Ameliorarea imaginilor in domeniul
spatial

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind informatii statistice
ale histogramelor 1
Fie r o variabila discreta aleatoare, ce reprezinta nivele de gri ale unei imagini de intensitate.
r[0, L-1], valori intregi.
Fie p(ri) componenta de pe histogramna normalizata, corespunzatoare lui ri. Aceasta marime
poate fi vazuta si ca o estimare de aparitie a nivelului de gri ri.
Se definesc urmatoarele marimi:
L 1
-Momentul de ordin n al variabilei r:
n (r ) (ri m) n p (ri )
i 0

- Media variabilei r (media nivelului de gri):

L 1

m ri p(ri )
i 0

-Momentul de ordin 2, sau varianta lui r: L 1


2 (r ) (ri m) 2 p (ri ) 2 (r )
i 0

Aceste marimi sunt globale, deci se refera la intreaga imagine.


3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind informatii
statistice ale histogramelor 2

Se pot defini marimi similare la nivel local, adica intr-o vecinatate dreptunghiulara Sxy a unui pixel
cu coordonatele (x,y):
Marimile definite anterior devin:
- Media variabilei r (media nivelului de gri):
mS xy

s ,t
( s ,t )S xy

p (rs ,t )

-Momentul de ordin 2, sau varianta lui r:

S2xy (rs ,t mS xy ) 2 p (rs ,t )


i 0

-Ca si in cazul marimilor globale, media da o masura a nivelului mediu de gri din imagine, iar
varianta, a contrastului. Aici insa, numai in vecinatatea Sxy.
Acesti 2 parametri pot fi folositi la ameliorarea imaginilor astfel (vezi diapozitivul urmator):

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind informatii
statistice ale histogramelor 3

Daca se doreste ca unele zone intunecate sa fie facute mai luminoase (sau invers), se va lucra pe o vecinatate
si se vor face urmatoarele rationamente:
-O masura a gradului de luminozitate poate fi si valoarea medie a nivelelor de gri. Deci se va calcula pentru
vecinatatea Sxy valoarea mSxy si se compara cu media globala M. Daca: m k M
S xy

Unde k0 este un parametru pozitiv mai mic decat 1, determinat de regula prin incercari (experienta are aici un
rol foarte important). Acest lucru se face pentru fiecare pixel al imaginii, fereastra Sxy fiind in miscare, mereu
centrata in punctul de interes (de coordonate (x,y)).
Constrastul este evaluat prin deviatia standard astfel:
Daca:
k
S xy

unde k2 este un parametru pozitiv, subunitar sau supraunitar, dupa cum se doreste scoaterea in evidenta a
zonelor intunecate, respectiv luminoase, iar G este deviatia standard la nivel global.
Se limiteaza valoarea minima a contrastului acceptat (deviatia standard a zonelor constante este zero):

S xy k1 G
Sau pe scurt, daca notam: cu f(x,y) valoarea pixelului de coordonate (x,y), respectiv cu g(xy) valoarea pixelului
din aceeasi pozitie dupa transformare:

E f ( x, y ), daca mS xy k0 M si k1 DG S xy k 2 DG
g ( x, y )
f ( x, y ) in rest

E este o constanta de multimplicare (amplificare sau reducere)


3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind informatii
statistice ale histogramelor 4

Elemente de urmarit:
1. Dimensiunea vecinatatii. Se recomanda folosirea unor vecinatati de mici dimensiuni, 3x3, 5x5.
2. Parametrii k se aleg pe baza de incercari si experienta, dar si in functie de caracteristicile imaginii
prelucrate
3. Metoda are dezavantajul ca introduce in imagine si asa numitele artefacte, defecte de tipul unor pixeli
luminosi de exemplu.
Original

Medii

Deviatii standard

Rezultat final

E=4.0, k0=0.4, k1=0.02, k2=0.4. S-a folosit o vecinatate 3 x 3

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice
Sunt operatii care se executa pixel cu pixel intre doua imagini sau mai multe. Exceptie operatia logica NEGARE,
ce se aplica unei singure imagini.
Operatiile aritmetice:
Adunarea
Diferenta
Multiplicarea
Divizarea
Operatii logice:
SI
SAU
NEGAREA
Pixelii sunt prelucrati ca siruri de caractere sau ca valori binare.
Operatiile logice Si, SAU sunt folosite pentru mascare (masking). Operatiile se mai numesc Region Of Interest
processing (ROI)

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice AND si OR
Operatii logice
Imagine initiala
Imagine (masca) pentru si logic
Imagine (masca) pentru sau logic

Sugestie:
Incercati sa realizati si
logic folosind imaginea
sau si invers.

Rezultatul operatiilor logice: sau

si

A se vedea in
Matlab sectiunea
Region of
Interest!

Functiile and si or
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice Diferenta

Daca notam doua imagini cu f1(x,y), respectiv f2(x,y). Imaginea diferenta este data de:
g(x,y)=f1(x,y)-f2(x,y).
Scopul executarii de diferente intre imagini este de a pune in evidenta deosebirile dintre ele.

Probleme ce pot aparea la diferenta imaginilor:


Apar valori negative in imaginea diferenta
Solutia 1: Adaugarea la fiecare pixel al imaginii
diferenta a valorii 255 si apoi impartire cu 2

Solutia 2:
- Se calculeaza valoarea minima a imaginii rezultat
-Se adauga aceasta valoare negativata la fiecare pixel al
imaginii diferenta. Valoarea minima va fi acum 0
- Se inmulteste fiecare pixel al imaginii diferenta cu
255/Max, unde Max este cea mai mare valoare a
imaginii rezultat
Aplicatii in imagistica medicala
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice Diferenta
Aplicatie medicala

Mask mode radiography

Imagine masca, notata cu f(x,y), obtinuta in


domeniul razelor X

3/15/2015

Se injecteaza un mediu contrastant si se obtine


imaginea h(x,y)
Imagine obtinuta prin operatia f(x,y)-h(x,y)

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice Mediere
Fie o imagine f(x,y). Se amesteca (corupe) aceasta imagine cu un zgomot, notat n(x,y), care satisface
urmatoarele proprietati:
-Este necorelat cu imaginea
-Are valoarea medie 0
Atunci se poate scrie:
g ( x, y ) f ( x, y ) n ( x, y )
Daca dispunem de K imagini distincte, date de relatia de mai sus, se poate scrie:

1
g ( x, y )
K

g ( x, y )
i 1

Daca sunt respectate conditiile legate de zgomot si daca si valoarea parametrului K este suficient de mare,
putem spune ca:

g ( x, y ) f ( x, y )

Vom spune ca imaginea mediata tinde catre cea corecta. Este valabila si relatia:

g2 ( x , y )

1 2
n( x, y )
K

Cu cat K este mai mare, cu atat abaterea media patratica va fi mai mica

Prelucrarea
3/15/2015imaginilor

10

Ameliorarea imaginilor in domeniul spatial


Ameliorarea imaginilor folosind operatii aritmetice
si logice Mediere

Exemplu

Discutie distributii
3/15/2015

Prelucrarea imaginilor

11

Prelucrarea imaginilor
Ameliorarea imaginilor in domeniul
spatial

Ameliorarea imaginilor in domeniul spatial


Filtrarea in domeniul spatial - 1
Filtrarea in domeniul spatial are la baza mecanismul deplasarii unei masti (kernel, sablon sau fereastra)
peste imaginea ce se filtreaza. De regula masca are dimensiuni (exprimate in pixeli) impare (3x3, 5x5
etc.), pentru a putea usor defini un punct central al sau. Daca filtrarea este liniara, fiecare pixel din
imagine este inlocuit (valoarea sa de gri) cu ceea ce rezulta dintr-o suma de produse de forma:
R = w(-1, -1)f(x - 1, y - 1) + w(-1, 0)f(x - 1, y) + w(0, 0)f(x, y) + w(1, 0)f(x + 1, y) + w(1, 1)f(x + 1, y + 1)
In general, pentru o imagine cu dimensiunea
M x N si o masca cu dimensiunea m x n, se
poate scrie:
g ( x, y )

w(s, t ) f ( x s, y t )

s a t b

Unde:

m 1
n 1
,b
2
2
x 0,1,.....M 1
y 0,1,....N 1

Pentru procesul de filtrare se mai foloseste


termenul de convolutie.
(Convolutia este o operatie matematica
executata asupra a doua functii. Rezultatul
este o functie ce se considera a fi o versiune
modificata a unei din functiile implicate.)
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtrarea in domeniul spatial - 2
Se mai poate folosi si notatia:
mn

R wi zi
i 1

Unde zi sunt valorile pixelilior din imagine corespunzatori coeficientilor w 1,. w9


O problema in cazul mastilor este legata de pixelii din vecinatatea frontierei imaginii. Se poate folosi una
dintre optiunile:
-Sa se limiteze miscarea mastii pana ajunge la distanta (n-1)/2, deci raman nefiltrati pixelii din vecinatatea frontierei
imaginii, iar imaginea filtrata este mai mica decat cea originala.
- Sa se bordeze imaginea initiala cu fasii de pixeli cu valoarea 0 sau 1, ai, dupa filtrare sa rezulte o imagine idenmtica
dimensional cu cea initiala. Evident ca pixelii adaugati vor influenta rezultatul filtrarii.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtre de netezire (smoothing) Filtre liniare
Se mai numesc si filtre de mediere sau filtre trece jos (low pass filter).
Astfel de filtre inlocuiesc valoarea [de gri a] fiecarui pixel cu o valoare mediata a pixelilor din vecinatatea considerata.
Se foloseste pentru reducerea zgomotului dintr-o imagine (care daca e aleator, este eliminat prin mediere). Efectul
negativ este cel al reducerii claritatii muchiilor , deci o anumita neclaritate a imaginii filtrate.
Exemple de filtre:

Med

1 9
zi
9 i 1

Med

1 9
zi
16 i 1

a)
b)
Primul filtru face o medie clasica, al doilea, una ponderata, ce da o importanta mai mare pixelului central si valori mai mici
pixelilor aflati mai departe de acesta.
In general, pentru o imagine cu dimensiunea MxN, si o masca cu dimensiunea m x n (m si n impare), se poate scrie:
a

g ( x, y )

w(s, t ) f ( x s, y t )

s a t b

w(s, t )

w(s,t) sunt valorile celulelor mastii. Numitorul e o constanta si se calculeaza o


singura data.

s a t b

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial

Filtre de netezire liniare exemple 1

Imaginea initiala

Masca 5 x 5 neponderata

Masca 5 x 5 ponderata

Masca 3 x 3 neponderata
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtre de netezire liniare exemple 2

imagine=imread('smooth.jpg');
figure; imshow(imagine);
masca=1/9*[1 1 1;1 1 1;1 1 1];
rez=imfilter(imagine,masca);
figure; imshow(rez);
h=fspecial('average');
rez2=imfilter(imagine,h);
figure; imshow(rez2);
h2=fspecial('disk');
rez3=imfilter(imagine,h2);
figure; imshow(rez3);
h3=fspecial('disk',10);
rez4=imfilter(imagine,h3);
figure; imshow(rez4);

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtre de netezire neliniare filtre mediane
In acest pixelul ce se suprapune peste centrul mastii este inlocuit cu valoarea mediana a pixelilor acoperiti de masca.
Aceste filtre sunt foarte indicate pentru eliminarea zgomotului de tip impuls, care se mai numeste si sare si piper ( pentru ca
este o alternanta de puncte albe si negre).
Filtrele de acest tip au si avantajul ca nu produc o asa de mare scadere a claritatii imaginii fata de filtrele liniare.

Imagine initiala

3/15/2015

Imagine netezita cu filtru 3 x 3

Prelucrarea imaginilor

Imagine netezita cu filtru 5 x 5

Ameliorarea imaginilor in domeniul spatial


Filtre de claritate (sharpening filters)
Spre deosebire de filtrele de netezire, care presupuneau de regula medieri, deci o operatie analoaga cu integrarea, filtrele de
claritate se vor realiza prin operatii de derivare. In esenta, filtrele de claritate scot in evidenta discontinuitatile unei imagini:
treceri de la intunecat la luminos, muchii, linii.
Operatiile de derivare vor fi modelate in cadrul algoritmilor pentru filtrele de claritate prin diferente. Astfel:

f
f ( x 1) f ( x)
x
2 f
f ( x 1) f ( x 1) 2 f ( x)
x 2
Aceste formulari au fost scrise tinand cont de faptul ca, data fiind structura discreta a unei imagini bitmab, variabila x ia numai
valori intregi cu pasul 1.
Prima si cea de a doua derivata trebuie sa respecte urmatoarele conditii:
Derivata 1
1. Sa fie zero pe segmentele [de imagine] fara variatii de intensitate (cu nivel de gri constant)
2. Sa fie diferita de zero pe zonele de variatie a nivelului de gri (crestere in panta sau treapta)
Derivata 2
1. Sa fie zero pe zonele fara variatii de intensitate [de gri]
2. Sa fie diferita de zero la inceputul zonelor de variatie de intensitate (panta sau treapta)
3. Sa fie zero de-a lungul rampelor cu panta constanta

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtre de claritate - Exemplificare
Fie imaginea de mai jos si o linie de scanare ce trece chiar prin punctul (pixelul) alb situat aproximativ in centrul imaginii.
Linia de scanare
Valorile nivelelor de
gri de-a lungul liniei
de scanare

Se poate observa ca prima si a doua derivata respecta conditiile enuntate anterior.

Variatia nivelului de gri

3/15/2015

Concluzii:
1. Prima derivata produce in general muchii mai groase intr-o imagine
2. Derivata a doua raspunde mai bine la detalii, cum ar fi punctele izolate sau liniile
subtiri
3. Prima derivata are un raspuns mai bun la la variatia in trepte a nivelului de gri.
4. Derivata de ordinul al doilea produce un raspuns dublu la modificare nivelului de
gri in treapta
5. Pentru derivata a doua, raspunsul e mai puternic pentru o linie fata de o treapta,
sau pentru un punct fata de o linie

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul spatial


Filtre de claritate - Laplacianul

O posibilitate este de a utiliza operatorul numit Laplacian, care este liniar si izotrop (invariant la rotatii). Filtrele izotropice sunt
invariante la rotatii, deci daca imaginea se roteste, se obtine acelasi efect cu cel ce s-ar obtine daca s-ar aplica filtrul si apoi s-ar
roti rezultatul [aplicarii].
2 f 2 f
Expresia laplacianului este:
2 f 2 2
x
y
Formularea discreta este:
2 f
2 f
f ( x 1, y ) f ( x 1, y ) 2 f ( x, y )
f ( x, y 1) f ( x, y 1) 2 f ( x, y )
x 2
y 2

2 f f ( x 1, y ) f ( x 1, y ) f ( x , y 1) f ( x , y 1) 4 f ( x , y )
Aceasta formulare se poate implementa cu urmatoarele masti:

a.

b.

c.

d.

Observatii:
1. Masca a. este izotropica pentru rotatii de 90 de grade
2. Mastile b. tine cont si de termenii diagonali. Ea este invarianta la rotatii de 45 grade
3. Laplacianul va avea ca efect evidentierea zonelor cu discontinuitati in nivelul de gri si le va atenua pe cele cu
variatii lente sau nule ale nivelului de gri. Acest lucru va produce imagini cu linii gri si zone de fond inchis la
culoare. Pentru a contracara acest efect se poate aduna imaginea initiala cu cea filtrata. In cazul mastilor
pentru care coeficientul central este negativ (a. si b.), Imaginea filtrata se scade din cea initiala, adica:

3/15/2015

f ( x, y ) 2 f ( x, y ), daca centrul mastii e negativ


g ( x, y )
2
f ( x, y ) f ( x, y ), daca centrul mastii e pozitiv
Prelucrarea imaginilor

10

Ameliorarea imaginilor in domeniul spatial


Filtre de claritate Exemplificare 1
Imagine initiala

Imagine filtrata (mai clara)

Laplacian

Masca folosita

Laplacian

Imagine filtrata

Secventa Matlab:
>> imagine=imread('moon.jpg');
>> figure, imshow(imagine);
>> masca=[1 1 1;1 -8 1; 1 1 1];
>> laplace=imfilter(imagine,masca);
>> imshow(laplace);
>> clar=imagine-laplace;
>> figure, imshow(clar);
3/15/2015

Prelucrarea imaginilor

11

Ameliorarea imaginilor in domeniul spatial


Filtre de claritate - simplificare
Exista posibilitatea de a se genera o masca ce va face inutila scaderea (sau adunarea) a doua imagini. Se porneste de la relatia
ce descrie diferenta dintre imaginea initiala si laplacian:
g ( x, y ) f ( x, y ) [ f ( x 1, y ) f ( x 1, y ) f ( x, y 1) f ( x, y 1)] 4 f ( x, y )
5 f ( x, y ) [ f ( x 1, y ) f ( x 1, y ) f ( x, y 1) f ( x, y 1)]

Mastile ce modeleaza aceste relatiile sunt (a doua tine cont si de termenii diagonali):
Se observa si aici ca luarea in
consideratie a termenilor diagonali
produce imagini mai nete

>> imagine=imread('moon.jpg');
>> masca=[0 -1 0; -1 5 -1; 0 -1 0];
>> clar=imfilter(imagine,masca);
>> imshow(clar);

3/15/2015

Prelucrarea imaginilor

12

Ameliorarea imaginilor in domeniul spatial


Filtre de accentuare (high-boost filtering)
O metoda de a obtine imagini mai clare este sa se scada o imagine neclara (blured) din imaginea initiala, adica:

f s ( x, y ) f ( x, y ) f nc ( x, y )
Unde fs este imaginea neta (sharped), iar fnc este imaginea neclara (blured).
O generalizare a acestei metode o constituie asa numitul filtru de accentuare (high boost filter), care este definit astfel:
f hb ( x, y ) Af ( x, y ) f nc ( x, y )
Sau inca:

f hb ( x, y ) ( A 1) f ( x, y ) f ( x, y ) f nc ( x, y )
f hb ( x, y ) ( A 1) f ( x, y ) f s ( x, y )

Cum nu se face nicio precizare privind modul de obtinere a imaginii clare (sharp), putem considera ca aceasta s-a obtinut
prin aplicarea Laplacianului, deci:

Af ( x, y ) 2 f ( x, y ), cand elementul central al mastii este negativ


f hb ( x, y )
2
Af ( x, y ) f ( x, y ), cand elementul central al mastii este pozitiv
Se observa ca pentru A=1, se obtine chiar Laplacianul standard.
Mastile ce se pot folosi pentru modelarea acestui filtru sunt:

3/15/2015

Prelucrarea imaginilor

13

Ameliorarea imaginilor in domeniul spatial


Filtre de accentuare (high-boost filtering) - Exemplu
Imagine initiala

Imagine filtrata cu A=1

3/15/2015

Imagine filtrata cu A=0

Se considera imagine intunecata din


coltul din stanga sus si se filtreaza cu
masca de mai jos pentru diverse valori
ale parametrului A

Imagine filtrata cu A=1.7

Imagine filtrata cu A=4

Prelucrarea imaginilor

14

Ameliorarea imaginilor in domeniul spatial


Filtre ce folosesc prima derivata - 1
Filtrele ce folosesc prima derivata se implementeaza folosind de fapt magnitudinea primei derivate, adica, daca notam
vectorul prima derivata:
f
x Gx
f ( x , y )
f G y
y
1

f mag (f)=[Gx2 G y2 ] 2

Operatorul magnitudine al gradientului este neliniar (datorita ridicarilor la putere si extragerii radicalului), desi componentele
sunt liniare. Pe de alta parte, operatorul magnitudine este invariant la rotire, desi derivatele partiale nu sunt.
In practica, din motive de eficienta, se utilizeaza o expresie simplificata a magnitudinii:

f Gx G y
Expresia nu asigura mentinerea caracterului izotropic.
Ca si in cazul Laplacianului, se va lucra cu masti de dimensiune 2x2, 3x3, sau mai rar, 5x5. Pastrand notatiile si conventiile deja
prezentate, se poate scrie:

Gx z8 z5
G y z6 z5

Sau, formele Gx z9 z5
diagonale:
G y z8 z6

f z9 z5 z8 z6

Masca Roberts a
gradientilor diagonali
3/15/2015

Prelucrarea imaginilor

15

Ameliorarea imaginilor in domeniul spatial


Filtre ce folosesc prima derivata - 2
Masti impare:

f ( z7 2 z8 z9 ) ( z1 2 z2 z3 ) ( z3 2 z6 z9 ) ( z1 2 z4 z7 )

Diferenta dintre randul 3 si randul 1 aproximeaza derivata dupa x, iar diferenta


dintre coloana a treia si prima coloana, aproximeaza derivata dupa y.
Coeficientul 2 apare pentru a da o mai mare importanta pixelului central.
Masca Sobel
Masca (filtrul) Sobel se foloseste la detectarea muchiilor din imagini.

Imagine initiala

>> imagine=imread('lentila.jpg');
>> figure, imshow(imagine);
>> masca=[-1 -2 -1;0 0 0;1 2 1];
>> muchii1=imfilter(imagine, masca);
>> figure, imshow(muchii1);
>> masca2=[-1 0 1;-2 0 2;-1 0 1];
>> muchii2=imfilter(imagine,masca2);
>> figure, imshow(muchii2);
>> muchii3=imfilter(muchii1,masca2);
>> figure, imshow(muchii3);

3/15/2015

Prelucrarea imaginilor

16

Ameliorarea imaginilor in domeniul spatial


Filtre ce folosesc prima derivata - 3
Imagine initiala

>> imagine=imread('imagine.jpg');
>> masca1=[-1 0 -1;-2 0 2;-1 0 1];
>> muchii1=imfilter(imagine,masca1);
>> imshow(muchii1);
>> masca2=[-1 -2 -1; 0 0 0;1 2 1];
>> muchii2=imfilter(imagine,masca2);
>> figure, imshow(muchii2);
>> masca3=fspecial('sobel');
>> muchii3=imfilter(imagine,masca3);
>> figure, imshow(muchii3);
>> muchii4=edge(imagine,'sobel');
>> figure, imshow(muchii4);

3/15/2015

Prelucrarea imaginilor

17

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa -1

>> imagine=imread('schelet.jpg');
>> masca=[-1 -1 -1;-1 8 -1;-1 -1 -1];
>> laplacian=imfilter(imagine,masca);
>> figure, imshow(laplacian);

Imaginea initiala
3/15/2015

Laplacian
Prelucrarea imaginilor

18

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa -2

>> mx=[-1 -2 -1;0 0 0;1 2 1];


>> my=[-1 0 1;-2 0 2;-1 0 1];
>> gx=imfilter(imagine,mx);
>> gy=imfilter(imagine,my);
>> grad=abs(gx)+abs(gy);
>> figure, imshow(grad);

Imagina initiala+Laplacian

3/15/2015

Gradient Sobel

Prelucrarea imaginilor

19

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa -3
>> filtru=fspecial('average',5);
>> imagine_sh=imfilter(grad,masca);
>> figure, imshow(imagine_sh);

Gradient netezit (smoothed)

3/15/2015

Imagine produs

Prelucrarea imaginilor

20

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa -4
>> imag_prod=imread('imagine_produs.jpg');
>> imag2=imagine+imag_prod;
>> figure, imshow(imag2);

>> med=medfilt2(imag2);
>> figure,imshow(med);

3/15/2015

Prelucrarea imaginilor

21

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa - 5
Filtru putere

Imagine finala

3/15/2015

Imaginea initiala

Prelucrarea imaginilor

22

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa - 6
% Citire imagine si definire masca pentru Laplacian
imagine=imread('138.tif');
masca=[-1 -1 -1;-1 8 -1;-1 -1 -1];
laplacian=imfilter(imagine,masca);
%Adunare imagine initiala cu Laplacian
suma=imagine+laplacian;
imwrite(suma,'suma.jpg');
% figure, imshow(suma);
% Definire masti pentru derivare
mx=[-1 -2 -1;0 0 0 ;1 2 1];
my=[-1 0 1;-2 0 2;-1 0 1];
% calculul derivatelor
gx=imfilter(imagine, mx);
gy=imfilter(imagine,my);
% Calculul gradientului (Sobel)
sobel=abs(gx)+abs(gy);
% Mediere gradient
med=fspecial('average',5);
sobel_med=imfilter(sobel,med);
% Diferenta dintre imagine si filtrul Sobel
dif=imagine-sobel_med;
imwrite(dif, 'diferenta.jpg');
% figure, imshow(dif);

3/15/2015

Prelucrarea imaginilor

23

Ameliorarea imaginilor in domeniul spatial


Exemplu de prelucrare complexa - 7

3/15/2015

Prelucrarea imaginilor

24

Ameliorarea imaginilor in domeniul frecventelor


Laplacianul in domeniul frecventelor - 1
Sunt valabile relatiile:
d 2 f ( x, y )
] (iu ) 2 F (u )
2
dx
2
f ( x, y ) 2 f ( x, y )
F[

] (iu ) 2 F (u , v) (iv) 2 F (u , v) (u 2 v 2 ) F (u , v)
2
2
x
y
F[

Deci:

F[ 2 f ( x, y )] (u 2 v 2 ) F (u, v)

Aceasta inseamna ca Laplacianul in domeniul frecventelor ar putea fi modelat de filtrul:

H (u, v) (u 2 v 2 )
Avand in vedere ca este necesara centrarea transformatei Fourier (astfel incat originea frecventelor sa
fie in centrul dreptunghiului frecventelor), se poate scrie:
H (u , v) [(u M / 2) 2 (v N / 2) 2 ]

Sau:

2 f ( x, y ) F -1{[(u M / 2) 2 (v N / 2) 2 ]F (u, v)}

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Laplacianul in domeniul frecventelor - 2

M=256;
N=256;
% Definire Laplacian
for i=1:M
for j=1:N
H(i,j)=-[(i-M/2)^2+(j-N/2)^2];
end
end
% Reprezentare laplacian scalat in nuante de gri
imshow(gscale(H));
% Translatare Laplacian pentru centrare in dreptunghiul frecventelor
h_tr=minus1(H);
% Calculul transformaei inverse Fourier
hh=ifft2(h_tr);
hr=real(hh);
% Readucerea din translatia pentru centrare
hr_tr=minus1(hr);
figure, imshow(hr_tr);

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Ameliorarea imaginilor folosind Laplacianul -1
Ca si in cazul utilizarii Laplacianului in domeniul spatial, si in domeniul frecventelor imaginea ameliorata se
obtine prin scaderea Laplacianului din imaginea initiala. (De fapt este o adunare, dar Laplacianul este
negativ asa ca). Adica:
Sau:

g ( x , y ) f ( x, y ) 2 f ( x, y )
g ( x, y ) F -1{1 [(u M / 2) 2 (v N / 2) 2 ]F (u , v)}

Exemplu:
imagine=imread('moon.jpg');
figure, imshow(imagine);
[M N]=size(imagine);
imagine_tr=minus1(imagine);
F=fft2(imagine_tr);
for u=1:M
for v=1:N
H(u,v)=-[(u-M/2)^2+(v-N/2)^2];
end
end
img_filt=H.*F;
inv=ifft2(img_filt);
inv_real=real(inv);
rez=minus1(inv_real);
rez_sc=gscale(rez);
figure, imshow(imaginerez_sc+imagine);

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Ameliorarea imaginilor folosind Laplacianul - 2

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de accentuare (high boost filters) in domeniul frecventelor
Filtrele de accentuare se realizeaza prin scaderea dintr-o imagine a unei variante neclare (blured) o sa.
Avand in vedere ce efect au filtrele in domeniul frecventelor de tip trece jos, respectiv trece sus, aceasta ar
insemna:

fts ( x, y ) f ( x, y ) f tj ( x, y )

Sau pentru un filtru de accentuare:


sau:

f hb ( x, y ) A * f ( x, y ) f tj ( x, y )

f hb ( x, y ) ( A 1) f ( x, y ) f ts ( x, y )

In domeniul frecventelor, se poate scrie:


dar:
Atunci:

Fts (u, v) F (u, v) Ftj (u, v)


Ftj (u, v) H tj (u, v) F (u, v)

H tj (u , v) 1 H tj (u , v)
H hb (u, v) ( A 1) H ts (u, v)

Procesul presupune urmatorii pasi:


1. Inmultirea filtrului cu transformata Fourier a imaginii centrate (inmultime cu (-1)(x+y),
2. Calculul transformatei Fourier inverse a acestui produs
3. Izolarea partii reale a rezultatului pasului precedent
4. Retranslatarea acestui rezultat (inmultire cu (-1)(x+y) )
In relatiile de mai sus, noutatea o constituie ca filtrul trece sus poate fi chiar Laplacianul in domeniul
frecventelor
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de accentuare (high boost filters) in domeniul frecventelor Exemplu 1

imagine=imread('Fig4_29.jpg');
figure, imshow(imagine);
[M N]=size(imagine);
imagine_tr=minus1(imagine);
F=fft2(imagine_tr);
for u=1:M
for v=1:N
H(u,v)=-[(u-M/2)^2+(v-N/2)^2];
end
end
A=2;
Hl=(A-1)+H;
img_filt=Hl.*F;
inv=ifft2(img_filt);
inv_real=real(inv);
rez=minus1(inv_real);
rez_sc=gscale(rez);
figure, imshow(rez_sc);
imagine2=(A-1)*imagine+rez_sc;
figure, imshow(gscale(imagine2));

A=2

A=2.7
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de accentuare (high boost filters) in domeniul frecventelor Exemplu 2

A=2.2

A=2
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de accentuare (high boost filters) in domeniul frecventelor Exemplu 3
Uneori este de dorit accentuarea componentei obtinuta prin aplicarea filtrului
trece sus. In acest caz se poate folosi o secventa de forma:

H ' (u, v) a bH ts (u, v)


unde marimile a si b se considera in intervalele [.25 .5], respectiv [1.5 2].

.
a=.3;
b=1.5;
Hl=a+b*H;
img_filt=Hl.*F;
inv=ifft2(img_filt);
inv_real=real(inv);
rez=minus1(inv_real);
rez_sc=gscale(rez);
imagine2=imagine+rez_sc;
figure, imshow(gscale(imagine2));
figure, imshow(histeq(imagine2));
3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre homomorfice - 1
f ( x, y ) i ( x, y ) * r ( x, y )

O imagine se poate scrie si sub forma:

Unde I si r sunt iluminarea si respectiv reflectanta. Altfel spun, o imagine poate fi descompusa in componenta de luminanta si cea
de reflectanta. Cei doi parametri au proprietatile teoretice: 0 i ( x, y )

0 r ( x, y ) 1
In practica, iata cateva valori:

-Zi senina insorita: i=90000 lm (*)/mp


- Zi innorata: i=10000 lm/mp
- Lumina Lunii: i=0,1 lm/mp
- Otel inox: r=0,65
- Zugraveala alba: r=0,80
- Zapada: r=0,93

-Transformata Fourier nu este distributiva fata de inmultire, ci numai fata de adunare. Vom folosi logaritmarea astfel:

z ( x, y ) ln[ f ( x, y )] ln[i ( x, y )] ln[r ( x, y )]


Transformand Fourier, vom scrie:

[[ z ( x, y )] [ln(
[ f ( x, y ))] [ln(
[ i ( x, y ))] [ln(
[ r ( x, y ))]

Z (u, v) Fi (u, v) Fr (u, v)

sau:
Daca am folosi un filtru H(u,v), s-ar putea scrie:
sau in domeniul spatial:

s ( x, y ) [1[ S (u , v)] [1[ H (u , v) * Fi (u , v)] [1[ H (u , v) * Fr (u , v)]

s ( x, y ) i ' ( x, y ) r ' ( x, y )

Sau:
(*)lumenul

S (u, v) H (u, v) * Z (u, v) H (u, v) * Fi (u, v) H (u, v) * Fr (u, v)

este um pentru fluxul luminos, ca masura a puterii luminii percepute; candela este um pentru intensitatea luminoasa.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre homomorfice - 2
Pentru a ajunge la imaginea filtrata, se va folosi functia inversa celei de logaritmare, adica:

g ( x, y ) e s ( x , y ) ei e r i0 ( x, y ) * r0 ( x, y )
'

'

Unde i0 si r0 sunt luminanta si reflectanta imaginii filtrate.


Componenta de luminanta a unei imagini este in general caracterizata de modificari spatiale de mica amploare, in vreme ce
componenta de reflectanta este caracterizata de variatii bruste.
Din aceste motive se asociaza componentele de frecvente reduse ale transformarii Fourier cu iluminarea, si componentele de
frecvente inalte ale transformarii Fourier cu reflectanta.
Filtrul ce poate fi considerat in acest caz este:

H (u, v) ( H L )(1 e

c(

D ( u ,v )2
D02

)L

L 1
H 1

3/15/2015

Prelucrarea imaginilor

10

Prelucrarea imaginilor
Ameliorarea imaginilor in domeniul
frecventelor

Ameliorarea imaginilor in domeniul frecventelor


Bazele teoretice - 1
Orice functie periodica poate fi exprimata ca o suma de functii cos si sin, fiecare multiplicata cu un coeficient: Seria Fourier
O functie neperiodica, dar a carei arie de sub curba, este finita, poate fi exprimata ca o integrala de functii sin si cos, fiecare
multiplicata cu coeficienti de ponderare: Transformata Fourier.
In ambele situatii, functia initiala poate fi reconstruita printr-un proces invers, fara pierdere de informatie.
Transformata Fourier (directa si inversa) pentru o functie de o variabila :

F (u )

f ( x)e 2i ux

f ( x)

F (u )e

2 i ux

du

Transformata Fourier (directa si inversa) pentru o functie de doua variabile:


F (u, v)

f ( x), x 0,1, 2...., M 1

f ( x, y )e 2i (ux vy ) dxdy

f ( x, y )

F (u, v)e

2 i ( ux vy )

dudv

Transformata Fourier (directa si inversa) discreta pentru o functie de o variabila:

F (u )

1
M

M 1

f ( x)e

2 i ux / M

, pentru u 0,1, 2,....., M 1

x 0

M 1

f ( x) F (u )e 2i ux / M , pentru x 0,1, 2,....., M 1


u 0

Transformata Fourier discreta exista intotdeauna

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Bazele teoretice - 2
Transformata Fourier se mai poate scrie:

1
F (u )
M

M 1

f ( x)[cos(2 ux / M ) i sin(2 ux / M )], pentru u 0,1, 2,....., M 1


x 0

Observatie: Fiecare termen al transformarii Fourier este o suma a tuturor termenilor functiei f(x), multiplicati cu coeficientii ce
contin functiile sin si cos.
Fiecare componenta a sumei ce il da pe F(u) se numeste componenta in/de frecventa a transformarii.
Transformata Fourier este o marime complexa.

F (u ) F (u ) e i (u )

Se mai poate scrie:


1

unde:

F (u ) R 2 (u ) I 2 (u ) 2

I (u )
(u ) tan [
]
R(u )

este magnitudinea (amplitudinea) spectrului transformatei Fourier

P(u ) F (u )

este unghiul de faza sau faza spectrului

puterea spectrala, sau densitatea spectrala

Se face mentiunea ca functia f(x) nu trebuie mereu sa ia valori in intervalul [0, M-1]. In general f ia valori in intervalul:

[ x0 , ( M 1)x]
Variabila u, ia valori in succesiunea:
Este valabila relatia:

3/15/2015

0, u, 2u,......[ M 1]u

1
M x
Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Bazele teoretice - 3
Transformata Fourier pentru functiile de doua variabile.
Relatiile de definitie sunt:

1
F (u, v)
MN

M 1 N 1

f ( x, y ) e

i 2 (

ux vy
)
M N

x 0 y 0

M 1 N 1

f ( x, y ) F (u, v)e

i 2 (

ux vy
)
M N

u 0 v 0

Unde f(x,y) descrie o imagine cu dimensiunea M x N.


Si respectiv:

F (u, v) R 2 (u, v) I 2 (u, v) 2


(u, v) tan 1[

I (u, v)
]
R(u , v)

P(u , v) F (u , v)

Ca si la functiile de o singura variabila, realizarea transformatei functiei f(x,y)*(-1)(x+y), va produce o translatare a originii
trasformatei in punctul de coordonate (M/2, N/2).
Dreptunghiul de coordonate [0,0] [M-1, N-1], se numeste dreptunghiul frecventelor.
Valoarea transformatei in punctul de coordonate (0,0), va fi:

F (0, 0)

1
MN

M 1 N 1

f ( x, y )
x 0 y 0

adica valoarea medie a functiei f(x,y) (deci nivelul mediu de gri al imaginii).
Sunt valabile relatiile:

3/15/2015

1
M y

1
M x

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Bazele teoretice - Exemplu

Imagine initiala

Transformata Fourier
translatata, careia i s-a aplicat
transformarea log

3/15/2015

Transformata Fourier bruta

Transformata Fourier careia i


s-a aplicat o transformare log

Transformata Fourier
translatata ai originea
frecventelor e in mijlocul
imaginii

dim=240;
l=16;
h=6;
imagine=zeros(dim,dim);
imagine(dim/2-h/2:dim/2+h/2,dim/2-l/2:dim/2+l/2)=1;
figure, imshow(imagine);
Fourier1=fft2(imagine);
figure,imshow(Fourier1);
Fourier2=log(abs(Fourier1));
figure, imshow(Fourier2);
Fourier3=fftshift(Fourier1);
figure, imshow(Fourier3);
Fourier4=log(abs(Fourier3));
figure, imshow(Fourier4);

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtrarea in domeniul frecventelor
Filtrarea in domeniul frecventelor presupune parcurgerea urmatoarelor etape:
1. Translatarea imaginii initiale f(x,y) in vederea centrarii ulterioare a originii frecventelor . Acest lucru se face
prin inmultirea imaginii cu (-1)x+y.
2. Calculul transformatei Fourier F(u,v), pentru imaginea translatata
3. Inmultirea transformatei cu un filtru H(u,v). Rezulta G(u,v)=H(u,v) *F(u,v) (Inmultirea se face element cu
element) diferenta fata de convolutie
4. Calculul transformatei inverse a rezultatului produsului H(u,v) *F(u,v)
5. Separarea partii reale din rezultatul pasului anterior
6. Reconstructia imaginii prin inmultirea rezultatului pasului anterior cu (-1)x+y
Functia filtru H(u,v), elimina unele frecvente din imagine, lasand altele neschimbate.
Exemple:
Filtrul de tip Notch (crestatura), care produce o imagine cu valoarea medie de gri 0 (pentru ca face valoarea
F(0,0) nula.
Filtrul trece jos (lowpass filter)
Filtrul trece sus (highpass filter)
Retinem ca frecventele inalte poarta informatia despre detalii, variatii in intensitate (muchii) sau zgomot, in
vreme ce frecventele joase sunt raspunzatoare pentru zonele fara variatii semnificative ale nuantelor de gri.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Filtrul trece jos ideal
Are expresia:

1, daca D(u, v) D0
H (u, v)
0, daca D(u, v) D0

unde D0 este o valoare pozitiva, iar d(u,v) este distanta de la punctul de coordonate (u,v) in domeniul
frecventelor - la centrul domeniului frecventelor.
Pentru o imagine cu dimensiunea M x N, spatiul frecventelor are aceeasi dimensiune, deci:

D(u, v) [(u M / 2) 2 (v N / 2) 2 ]1/ 2


Toate frecventele din interiorul cercului de raza D0 sunt trecute fara nicio atenuare, in vreme ce frecventele
din afara acesui cerc sunt eliminate.

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Construirea unui filtru

Crearea si aplicarea unui filtru trece jos:


1. Crearea filtrului 1D

Ordin filtru 15

Ordin filtru 25

ordonate_filtru=[0 0 1 1 0 0];
abscise_filtru=[0 0.3 .35 .6 .65 1];
ordin=15;
filtru_1D=firpm(ordin,abscise_filtru,ordonate_filtru);
[h,w]=freqz(filtru_1D,1,512);
plot(abscise_filtru, ordonate_filtru,w/pi, abs(h))
legend('Ideal', 'Real')
%--------------------hh=ftrans2(filtru_1D);
figure, freqz2(hh,[32 32]

2. Crearea filtrului 3D

3/15/2015

Prelucrarea imaginilor

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Aplicarea unui filtru lowpass ideal
Imagine initiala

Spectru Fourier

Raza filtru 160

3/15/2015

Raza filtru 20

Raza filtru 80

Prelucrarea imaginilor

% Citire imagine
imagine=imread('Fig3.35(a).jpg');
% Centrare imagine pentru lucrul in domeniul frecventelor
g=minus1(imagine);
% Transformata Fourier a imaginii
f=fft2(g);
f_log=log(abs(f));
f_sc=gscale(f_log);
figure, imshow(f_sc)
% Stabilirea razei filtrului
do=80;
[M,N]=size(imagine);
% Construirea filtrului
[H] = lpfilter('ideal',M,N,do,1);
% Aplicarea filtrului
rez=H.*f;
% Inversarea imaginii filtrate
finv=ifft2(rez);
re_inv=real(finv);
% Readucerea imaginii in pozitia initiala
rez_final=minus1(re_inv);
%Scalarea imaginii filtrate
rez_scalat=gscale(rez_final);
% Reprezentare
figure,imshow(rez_scalat)

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Aplicarea unui filtru Butterworth

D0=20, n=1

n=1

n=2

M=N=500
D0=80

H (u , v)

n=4

1
1 [ D(u , v) / D0 ]2 n

D0=80, n=1

D0=160, n=2

3/15/2015

D0=160, n=3

Prelucrarea imaginilor

D0=160, n=4

10

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Aplicarea unui filtru Gauss - 1
H (u , v) e

D0=20

3/15/2015

D ( u ,v )2
2 D02

D0=80

Prelucrarea imaginilor

D0=160

11

Ameliorarea imaginilor in domeniul frecventelor


Filtre de netezire in domeniul frecventelor
Aplicarea unui filtru Gauss - 2

Imagine filtrata

Imagine initiala

3/15/2015

Spectru transformata Fourier


Prelucrarea imaginilor

12

Ameliorarea imaginilor in domeniul frecventelor


Filtre de claritate in domeniul frecventelor -1
Daca netezirea imaginilor, adica eliminarea detaliilor, muchiilor, se face prin aplicarea de filtre care elimina frecventele ridicate,
cresterea claritatii se face prin aplicarea unor filtre care au exact efectul invers, adica elimina frecventele joase dintr-o imagine,
adica pe cele responsabile de zonele fara variatii semnificative in nivelul de gri.
Aceste filtre se numesc filtre trece sus highpass filters. Ele se construiesc simplu cu o relatie generica de forma:

H ts (u , v) 1 H tj (u , v)
Filtru Trece sus ideal:

Filtru trece sus Butterworth:

Filtru trecesus Gauss:

3/15/2015

0, daca D(u, v) D0
H (u , v)
1, daca D(u, v) D0
H (u , v)

1
1 [ D0 / D(u, v)]2 n

H (u, v) 1 e

D ( u ,v )2
2 D02

Prelucrarea imaginilor

13

Ameliorarea imaginilor in domeniul frecventelor


Filtre de claritate in domeniul frecventelor - 2
Filtru Trece sus ideal:

Filtru trece sus Butterworth:

Filtru trecesus Gauss:

3/15/2015

Prelucrarea imaginilor

14

Ameliorarea imaginilor in domeniul frecventelor


Filtre de claritate in domeniul frecventelor Exemple 1
Imagine filtrata cu
filtru trece sus ideal
D0=15. Scalata

Imagine filtrata cu
filtru trece sus ideal
D0=15. Nescalata

Imagine filtrata cu
filtru trece sus ideal
D0=30. Scalata

3/15/2015

Imagine filtrata cu
filtru trece sus ideal
D0=30. Nescalata

Prelucrarea imaginilor

15

Ameliorarea imaginilor in domeniul frecventelor


Filtre de claritate in domeniul frecventelor Exemple 2
Butterworth

Gauss

Do=15
3/15/2015

Do=30
Prelucrarea imaginilor

16

Ameliorarea imaginilor in domeniul frecventelor


Filtre de claritate in domeniul frecventelor
Filtre in domeniul spatial corespunzatoare unor filtre trece jos sau sus

3/15/2015

Prelucrarea imaginilor

17

Ameliorarea imaginilor in domeniul frecventelor


Functii utilizate in filtrarea in domeniul frecventelor - 1
Functia firpm produce un filtru liniar cu algoritmul Parks-McClellan
b = firpm(n,f,a), unde:
n este ordinul filtrului
f este vectorul absciselor normalizat (interval [0 1]
a este vectorul ordonatelor
b este vectorul coeficientilor filtrului (simetric fata de mijlocul sau si deci impar)
f si a trebuie sa aiba acelasi numar impar de elemente.
Functia freqz intoarce raspunsul in frecvente unui filtru furnizat de exemplu de functia firpm
[h,w] = freqz(b,a,l), unde:
b este vectorul intors de exemplu de functie firpm (mai general este vectorul coeficientilor
unui polinom cu ajutorul caruia se evalueaza filtrul)
a este un polinom ca si b. In aplicatiile curente, a=1
l este numarul de esantioane considerat. Se recomanda sa fie putere a lui 2.

3/15/2015

Prelucrarea imaginilor

18

Ameliorarea imaginilor in domeniul frecventelor


Functii utilizate in filtrarea in domeniul frecventelor - 2
Functia ftrans2 produce un filtru bidimensional (u,v), pornind de la un filtru uni-dimensional, produs de
exemplu de functia freqz
h = ftrans2(b), unde:
b este vectorul coeficientilor filtrului produs de exemplu de functia freqz

Functia freqz2 apelata ca mai jos produce un grafic de tip suprafata al filtrului furnizat de argumentul h
freqz2(h,[n1 n2]), unde:
h este filtrul furnizat de exemplu de functie ftrans2
n1 si n2 definesc desimea caroiajului pentru reprezentare

3/15/2015

Prelucrarea imaginilor

19

Ameliorarea imaginilor in domeniul frecventelor


Functii utilizate in filtrarea in domeniul frecventelor - 3
Functia fft2 intoarce transformata Fourier discreta, prin utilizarea algoritmului FFT
Y = fft2(X), unde:
X este matricea (imaginea) pentru care se calculeaza transformata. Transformata poate sa fie
si complexa, caz in care se opereaza cu partea sa reala.

Functia ifft2 intoarce transformata Fourier discreta inversa, folosind tot algoritmul FFT
X = ifft2(Y), unde:
Y este transformata Fourier pentru care se calculeaza transformata inversa.

3/15/2015

Prelucrarea imaginilor

20

Ameliorarea imaginilor in domeniul frecventelor


Functii utilizate in filtrarea in domeniul frecventelor - 4
Functia minus1 Pregateste imaginea pentru centrarea transformatei fourier a acesteia in domeniul
frecventelor
Imagine_centrata = minus1(imagine), unde:
imagine este matricea imaginii care se translateaza.
Functia gscale scaleaza imaginea argument
Imagine_scalata = gscale(imagine), unde:
imagine este matricea (imaginea) care se va scala

3/15/2015

Prelucrarea imaginilor

21

3/15/2015

Prelucrarea imaginilor

22

Restaurarea imaginilor
Introducere - 1

Restaurarea, spre deosebire de ameliorarea imaginilor, este un proces de reconstructie a unei imagini cand se cunoaste (la un
anumit nivel) mecanismul (procesul) care a deteriorat imaginea. Adica, restaurarea ar fi procesul invers degradarii.
Ameliorarea imaginilor este un proces cu un grad mai mare de subiectivitate, pentru ca el depinde intr-o mai mare masura de
subiectivitatea perceperii unei imagini.
Ameliorarea si restaurarea au totusi zone intinse de suprapunere, deci o granita stricat intre ele nu se poate trasa.
Si in cazul restaurarii imaginilor se va lucra in domeniul spatial si in cel al frecventelor.
Modelul degradarii/restaurarii unei imagini

f(x,y)

Functia de
degradare
H
Degradare

g(x,y)

Zgomot

Filtru(e) de
restaurare

f(x,y)

Restaurare

Daca functia de degradare este liniara si invarianta la rotire, in domeniul spatial se poate scrie:
iar in cel al frecventelor:

g ( x , y ) h ( x , y ) * f ( x, y ) ( x, y )
G (u , v) H (u , v) F (u , v) N (u , v)

In continuare, pentru functia de degradare se va presupune cel mai simplu caz, cand ea (functia) este operatorul identitate.
3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Modele de zgomot
Zgomotul apare cel mai des fie in etapa de achizitie a imaginilor, fie in cea de transmitere a lor. Zgomotul se poate datora
conditiilor de mediu, proprietatilor senzorilor, conditiilor de transmitere a imaginii (interferenta semnalelor produce zgomot).
In continuare se va presupune despre zgomot ca are urmatoarele proprietati:
- Este independent de pozitie (de coordonatele spatiale)
- Este necorelat cu imaginea
Modele de zgomot. Densitati de probabilitate (PDF)
Zgomot gausian (normal)

p( z )

z este nivelul de gri


este valoarea medie
este deviatia standard

Zgomot Rayleigh
Imagini succesive

Zgomot de circuite electronice, zgomot


de senzori datorita temperaturii
ridicate sau iluminarii scazute
2
2
1
e ( z ) / 2
2

2
( z a )2 / b
, pentru z a
( z a )e
p( z ) b

0, pentru z a
a b / 4
b(4 )
2
4

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Introducere - 2
Zgomot Erlang (Gamma)

a b z b 1 z
e , pentru z 0

p ( z ) (b 1)!

0, pentru z 0

Imagini laser

b
a

b
a2

Zgomot exponential
ae az , pentru z 0
p( z )
0, pentru z 0
1

a
1
2 2
a

3/15/2015

Prelucrarea imaginilor

Zgomot uniform

Restaurarea imaginilor
Introducere - 3
1
, pentru a z b

p( z ) b a

0, in rest
ab

2
(b a) 2
2
12

Zgomot impuls (sare si piper)


Tranzitii bruste

Pa pentru z a

( z ) Pb pentru z b

0 in rest

Daca a=b se obtine zgomotul de tip sare si piper, uniform distribuit in imagine.
Zgomotul de tip impuls poate sa fie si negativ. In general, valorile se considera saturate,
adica valorile maxime pentru nivelul de gri al imaginii (0 pentru negru si 255 pentru alb)

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Exemple de corupere cu zgomot - 1

Gauss

Rayleigh

Gamma

Exponential

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Exemple de corupere cu zgomot - 2

Uniform

Impuls

Zgomot periodic
Zgomotul periodic apare in mod frecvent ca urmare a interferentelor electrice si electromecanice din timpul achizitiei imaginilor.
Daca o imagine este corupta de un zgomot sinusoidal pur, atunci , transformata Fourier a functiei sin este o pereche de impulsuri
conjugate. Inseamna ca pe transformata Fourier a imaginii zgomotul va aparea sub forma unor puncte .

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Estimarea parametrilor zgomotului - 1
Parametrii zgomotului periodic pot fi estimati prin analiza spectrului Fourier al imaginii. Analiza automata a acestui spectru este
posibila numai cand maximele sunt foarte pronuntate, sau cand se cunosc anumite proprietati ale zgomotului.
Uneori parametrii zgomotului sunt cunoscuti din specificatiile tehnice ale senzorilor de imagine (ca principala sursa de zgomot intro imagine).
O modalitatea de a obtine informatii despre zgomotul indus de sistemul de achizitie, daca acesta este disponibil, este sa se
fotografieze un obiect mare si plan, iluminat cat mai uniform.
Daca nu exista acces la sistemul de achizitie de imagine, se pot analiza fasii cat mai uniforme (ca nivel/dinamica de gri) din imagine.
Pentru aceste zone se pot obtine histograme si acestea din urma pot da indicatii despre tipul de zgomot continut in imagine.

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Estimarea parametrilor zgomotului 2
Se vor calcula parametrii:

zi p ( zi )
zi S

2 ( zi ) 2 p( zi )
zi S

Unde S este zona din imagine analizata.


In functie de tipul de zgomot detectat, se vor calcula parametrii de caracterizeaza zgomotul.

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial - 1
Se porneste de la modelul de corupere cu zgomot de mai jos (scris si in domeniul spatial si in cel al frecventelor):

g ( x, y ) f ( x, y ) ( x , y )
G(u, v) F (u, v) N (u, v)
Filtre de mediere
Filtre de medie aritmetica
Astfel de filtre se implementeaza cu masti de convolutie. (Vezi prezentarile anterioare).
Reducerea zgomotului cu astfel de filtre produce o scadere a claritatii imaginii. Da bune rezultate in cazul zgomotului gaussian.
Filtre de medie geometrica

f ( x, y ) [

g ( s, t )] mn

( s ,t )S xy

Filtrul de mediere geometric da bune rezultate in eliminarea zgomotului gaussian, si pastreaza mai bine decat filtrele de mediere
aritmetica claritatea imaginii (muchii).
Filtre de medie armonica

f ( x, y )

mn

( s , r )S xy

1
g ( s, t )

Filtrul armonic reduce bine zgomotul de tip sare, dar nu si pe cel de tip piper. Elimina bine zgomotul gaussian.

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 2
Filtre de medie contra armonica
f ( x, y )

g ( s, t )Q 1

g ( s, t )Q

( s , r )S xy

( s , r )S xy

Q este ordinul filtrului. Reduce bine zgomotul de tip sare piper.


Pentru valori pozitive ale lui Q , filtrul elimina zgomotul de tip piper .
Pentru valori negative ale lui Q, se elimina bine zgomotul de tip sare.
Filtrul nu le poate elimina pe amandoua.
Pentru Q=0, filtrul se reduce la cel de mediere clasica
Pentru Q=-1, filtrul se transforma in cel de tip armonic
Exemple:
Se vor aplica diferite filtre unei imagini corupta de zgomot:
Imaginea
curata

3/15/2015

Prelucrarea imaginilor

10

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 3

Imaginea corupta cu zgomot


gaussian cu medie zero

Imagini corupte cu zgomot de


tip sare si piper

Imagine corupta cu zgomot


poisson

Imagine corupta cu zgomot


multiplicativ
Pentru adaugarea de zgomot se
poate folosi functia imnoise:
imnoise(imagine,tip)
tip poate fi:
gaussian
localvar
poisson
salt & pepper
speckle
3/15/2015

Prelucrarea imaginilor

11

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 4

Mediere medie clasica


(Contharm, dim filtru 3, Q=0)

Mediere medie armonica


(Contharm, dim filtru 3, Q=-1)

Mediere medie armonica


(Contharm, dim filtru 2, Q=-1)

Imaginea sursa corupta cu zgomot Gauss cu


medie 0 (gauss_0.jpg)

3/15/2015

Prelucrarea imaginilor

12

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 5

Mediere medie clasica


(Contharm, dim filtru 2, Q=0)

Mediere contra-armonica
(Contharm, dim filtru 2, Q=2)

Mediere contra-armonica
(Contharm, dim filtru 3, Q=2)

Imaginea sursa corupta cu zgomot Gauss cu


medie 0 (gauss_0.jpg)

3/15/2015

Prelucrarea imaginilor

13

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 6

Mediere geometrica
(Digimizer, dim filtru 2)

Mediere geometrica
(Digimizer, dim filtru 3)

Imaginea sursa corupta cu zgomot Gauss cu


medie 0 (gauss_0.jpg)

3/15/2015

Prelucrarea imaginilor

14

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 7

Mediere medie clasica


(Contharm, dim filtru 3, Q=0)

Mediere medie armonica


(Contharm, dim filtru 3, Q=-1)

Mediere medie armonica


(Contharm, dim filtru 2, Q=-1)

Imagine corupta cu
zgomot sare si piper
s&p_1.jpg

3/15/2015

Prelucrarea imaginilor

15

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 8

Mediere geometrica
(Digimizer, dim filtru 2)

Mediere geometrica
(Digimizer, dim filtru 3)

Imagine corupta cu
zgomot sare si piper
s&p_1.jpg

3/15/2015

Prelucrarea imaginilor

16

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 9

Mediere medie clasica


(Contharm, dim filtru 3, Q=0)

Mediere medie armonica


(Contharm, dim filtru 3, Q=-1)

Mediere medie armonica


(Contharm, dim filtru 2, Q=-1)

Imagine corupta cu zgomot multiplicativ


(multiplicativ.jpg)

3/15/2015

Prelucrarea imaginilor

17

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 10

Mediere geometrica
(Digimizer, dim filtru 2)

Mediere geometrica
(Digimizer, dim filtru 3)

Imagine corupta cu zgomot multiplicativ


(multiplicativ.jpg)

3/15/2015

Prelucrarea imaginilor

18

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 11

Mediere medie clasica


(Contharm, dim filtru 3, Q=0)

Mediere medie armonica


(Contharm, dim filtru 3, Q=-1)

Mediere medie armonica


(Contharm, dim filtru 2, Q=-1)

Imagine corupta cu zgomot poisson


(poisson.jpg)

3/15/2015

Prelucrarea imaginilor

19

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial 12

Mediere geometrica
(Digimizer, dim filtru 2)

Mediere geometrica
(Digimizer, dim filtru 3)

Imagine corupta cu zgomot poisson


(poisson.jpg)

3/15/2015

Prelucrarea imaginilor

20

Restaurarea imaginilor
Eliminarea zgomotului in domeniul spatial filtre de ordonare - 1
Aceste filtre obtin raspunsul prin aranjarea pixelilor de pe zona filtrului (mastii) prin ordonare.
Filtrul median
Au fost deja prezentate. Ele dau bune rezultate pentru anumite tipuri de zgomot aleator si produc o mai redusa pierdere de
claritate a imaginii dupa filtrare.
Filtrele min si max
Filtrul de forma:

f ( x, y ) max{g ( s, t )}
( s ,t )S xy

se numeste filtru max. El permite determinarea (evidentierea) punctelor celor mai luminoase dintr-o imagine, deci va reduce bine
zgomotul de tip piper.
Filtrul de forma:

f ( x, y ) min{g ( s, t )}
( s ,t )S xy

se numeste filtru min. El permite determinarea (evidentierea) punctelor celor mai intunecoase dintr-o imagine, deci va reduce bine
zgomotul de tip sare.
Filtrul punct de mijloc (midpoint filter)
Este descris de relatia:

f ( x, y ) [max{g ( s, t )} min{g ( s, t )}] / 2


( s ,t )S xy

( s ,t )S xy

Acest tip de filtru calculeaza media dintre valorile minima si maxima din zona acoperita de masca (filtru). Acest tip de filtru lucreaza
bine cu zgomotul distribuit aleator, deci cu zgomot Gauss sau uniform.
Filtrul alfa-decupat (alpha-trimmed)
Este descris de relatia:

f ( x, y )

1
mn d

( s ,t )S xy

g r ( s, t )

In cazul acestui filtru, se elimina d/2 din pixelii cei mai stralucitori, respectiv d/2 din cel mai intunecati. Raman astfel mn-d pixeli.
Pentru acestia se calculeaza media aritmetica. Daca d=0, filtrul devine cel de mediere clasic, daca d=(mn-1)/2, filtrul devine cel
median clasic. Se mai precizeaza ca d apartine intervalului [0 mn-1]. Acest filtru elimina bine combinatii de zgomote, cum ar fi gauss
si sare si piper.
3/15/2015
Prelucrarea imaginilor
21

Restaurarea imaginilor
Filtre de ordonare Filtru median 1

Imagine initiala, cu zgomot gauss

Imagine initiala, cu zgomot s&p

3/15/2015

Filtru median, romboidal, dim 3

Filtru median, rectangular, dim 3

Filtru median, rectangular, dim 3

Filtru median, romboidal, dim 3

Prelucrarea imaginilor

22

Restaurarea imaginilor
Filtre de ordonare Filtru median 2

Imagine initiala, cu zgomot multiplicativ

Imagine initiala, cu zgomot gauss si s&p

3/15/2015

Filtru median, rectangular, dim 3

Filtru median, romboidal, dim 3

Filtru median, rectangular, dim 3

Filtru median, romboidal, dim 3

Prelucrarea imaginilor

23

Restaurarea imaginilor
Filtre de ordonare Filtru min

Imagine initiala, cu zgomot gauss

Imagine initiala, cu zgomot s&p

3/15/2015

Filtru min, rectangular, dim 3

Filtru min, rectangular, dim 3

Prelucrarea imaginilor

Filtru min, romboidal, dim 3

Filtru min, romboidal, dim 3

24

Restaurarea imaginilor
Filtre de ordonare Filtru max

Imagine initiala, cu zgomot gauss

Imagine initiala, cu zgomot s&p

3/15/2015

Filtru max, rectangular, dim 3

Filtru max, rectangular, dim 3

Prelucrarea imaginilor

Filtru max, romboidal, dim 3

Filtru max, romboidal, dim 3

25

Restaurarea imaginilor
Filtre de ordonare Filtru midpoint

Imagine initiala, cu zgomot gauss

Imagine initiala, cu zgomot poisson

Imagine initiala, cu zgomot s&p

3/15/2015

Prelucrarea imaginilor

26

Restaurarea imaginilor
Filtre de ordonare Filtru alfa-decupat (alpha trimmed)
Imagine filtrata cu filtru alfa
decupat

Imagine corupta cu zgomot gauss


si sare si piper

Imagine filtrata cu filtru


midpoint
3/15/2015

Prelucrarea imaginilor

27

Restaurarea imaginilor
Functii
filtru_min.m
filtru_midpoint.m
filtru_median.m
filtru_max.m
filtru_geometric.m
filtru_armonic.m
filtru_alphtrmed.m
Contharm.m
Sau dipimage
Sau digimizer

3/15/2015

function filtru_median(imagine)
clc;
a=imread(imagine);
[m n]=size(a);
c=ones(3,3)/9;
[p q]=size(c);
p=(p-1)/2;
q=(q-1)/2;
z=a;
for i=p+1:m-p
for j=q+1:n-q
mask1=zeros(3,3);
for k=-p: p
for l=-q:q
mask1(p+1-k,q+1-l)=a(i-k,j-l);
end
end
med1=mask1(:);
med1=median(med1);
z(i,j)=med1;
end
end
figure, imshow(z);
end

Prelucrarea imaginilor

28

Restaurarea imaginilor
Filtre adaptative - 1
In cazul filtrelor adaptative, acestea isi modifica comportamentul in functie de proprietatile locale ale imaginilor. Ele produc
rezultate in general mai bune dar presupun un effort de calcul mai mare.
Filtre adaptative de mediere
Expresia ce descrie filtrul este:

f ( x, y ) g ( x, y ) 2 ( g ( x, y ) mL )
L
2

Parametrii implicati sunt:


mL este valoarea medie a pixelilor din fereastra S xy
g(x,y) este valoarea in punctul de coordonate (x,y) a imaginii cu zgomot
L este abaterea media patratica pe fereastra Sxy
este abaterea media patratica a zgomotului ce a corupt imaginea
Filtrul lucreaza astfel:
Daca =0, filtrul intoarce valoarea g(x,y) neschimbata (deci zgomotul este nul)
Daca L este mare in raport cu filtrul intoarce o valoare apropiata de g(x,y)
Daca cele doua abateri sunt apropiate filtrul intoarce valoarea medie a pixelilor din fereastra Sxy
Cantitatea trebuie estimata, ea nu se cunoaste apriori. In relatie se presupune ca intodeauna L <
Pentru a asigura functionarea algoritmului si in cazul in care conditia nu e satisfacuta, raportul se seteaza pe 1 cand conditia
e satisfacuta.

3/15/2015

Prelucrarea imaginilor

29

Restaurarea imaginilor
Filtre adaptative - 2
Filtre adaptative mediane
Dau bune rezultate in cazul zgomotului de tip impuls (de exemplu sare si piper), cu densitati de probabilitate mai mici
decat 0.2.
Filtrele mediane adaptative cresc dimensiunea ferestrei (mastii) in functie de proprietatile zonei baleiate.
Se considera urmatoarele marimi:
- zmin=nivelul minim de gri din fereastra Sxy
- zmax=nivelul maxim de gri din fereastra Sxy
- zmed=nivelul median de gri din fereastra Sxy
-zxy = valoarea de gri in punctul de coordonate (x,y)
-Smax = dimesiunea maxima a ferestrei (mastii)
Filtrul functioneaza pe doua nivele, astfel:
Nivel A:
A1=zmed-zmin
A2=zmed-zmax
Daca A1>0 si A2<0, treci la nivelul B
Altfel creste dimensiunea ferestrei pana cand se ajunge la Smax.
si intoarce zxy
Nivel B:
B1=zxy-zmin
B2=zxy-zmax
Daca B1>0 si B2<0, intoarce zxy
Altfel intoarce zmed

3/15/2015

Prelucrarea imaginilor

30

Restaurarea imaginilor
Filtre adaptative - exemplu

adpmedian

3/15/2015

Prelucrarea imaginilor

31

Restaurarea imaginilor
Filtre in domeniul frecventelor - 1
Filtrele de tip lowpass sau highpass, cu variantele lor, decupau frecvente, dispuse dupa un disc centrat in originea
dreptunghiului frecventelor. Cu cat diametrul discului este mai mic, cu atat se elimina mai putine frecvente (si invers).
O alta posibilitate este de a elimina frecvente dispuse dupa o coroana circulara, centrata tot in origine.

Filtrele sunt tot de doua categorii. Unele de tip eliminare frecvente, altele cu efect contrar.
Filtre de tip eliminare banda
Pot fi de tip ideal, Butterworth, respectiv Gauss. In cazul acestor filtre, in afara de parametrul D0, care da diametrul discului
de filtrare, mai exista un al doilea parametru, w, care descrie latime coroanei circulare.
Aceste filtre dau bune rezultate in cazul imaginilor corupte cu zgomot aditiv periodic, atunci cand se cunoaste, macar
aproximativ, domeniul de frecvente al zgomotului.
Aceasta pentru ca transformata Fourier a unei functii sinus de exemplu ia forma unor impulsuri simetrice fata de originea
dreptunghiului frecventelor. Daca se poate estima diametrul unui astfel de cerc, se poate construi un filtru care sa elimine
exact aceasta zona.

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Filtre in domeniul frecventelor - 2
Filtru ideal de tip eliminare banda
W

daca D(u , v) D0
1
2

W
W

H (u , v) 0 daca D0 D(u , v) D0
2
2

daca D(u , v) D0
1
2

Filtru Butterworth de tip eliminare banda

H (u , v)

1
D(u , v) W 2 n
1 [ 2
]
D (u , v) D02

Filtru Gauss de tip eliminare banda

H (u , v) 1 e

3/15/2015

1 D 2 ( u , v ) D02 2
[
]
2 D ( u , v )W

Prelucrarea imaginilor

Restaurarea imaginilor
Filtre de eliminare (bandreject) in domeniul frecventelor Exemplu

Filtru Butterworth, cu latimea de


banda 5 si ordin 4

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Filtre de trecere (bandpass) in domeniul frecventelor Exemplu
Aceste filtre au efectul contrat celor de tip eliminare banda, ca atare au forma generala:

H bp (u, v) 1 H br (u, v)
Aceste filtre elimina zona din afara coroanei circulare, adica o mare parte din imagine, mai precis, zona libera de zgomot,
deci pastreaza exact zgomotul. Astefel de filtre au tocmai rolul de a extrage zgomotul dintr-o imagine.
Exemplu:

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Filtre de tip crestatura (notch) - 1
Filtrele de tip crestatura nu mai intervin pe zone circulare sau inelare centrate in originea dreptunghiului frecventelor, ci in zone
circulare (sau de alte forme) excentrice fata de centrul dreptunghiului frecventelor (proprietatea de simetrie decurge din simetria
transformatei Fourier).
Filtru ideal:

Filtru Butterworth:

Filtru Gauss:

unde:

0 daca D1 (u, v) D0 sau D2 (u, v) D0


H (u, v)
1 in rest

H (u , v)

1
D02
1 [
]n
D1 (u , v) D2 (u , v)

H (u, v) 1 e

1 D ( u , v ) D2 ( u , v )
[ 1
]
2
D02

D1 (u , v) [(u M / 2 u0 ) 2 (v N / 2 v0 )]1/ 2
D2 (u , v) [(u M / 2 u0 ) 2 (v N / 2 v0 )]1/ 2

sunt distantele de la punctul de coordonate (u 0, v0) la centul dreptunghiului frecventelor (translatat cu M/2, N/2).

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Filtre de tip crestatura (notch) - 2
Filtru notch Butterworth (ordin 2)

Filtru notch Gauss (ordin2)

Filtru notch ideal


Filtrele de tip notch pot fi folosite cu
succes si in eliminarea de zgomote mai
complexe, care nu contin numai un
semnal sinusoidal. In aceasta situatie
procedura este mai complexa si
presupune in primul rand determinarea
componentelor de zgomot periodic
3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Functia de degradare - 1
Expresia ce descrie procesul general de degradare este:

g ( x, y ) H [ f ( x, y )] ( x, y )

Se considera ca functia de degradare are urmatoarele proprietati:


Aditivitatea:

H [ f1 ( x, y ) f 2 ( x, y )] H [ f1 ( x, y )] H [ f 2 ( x, y )]

Adica Raspunsul sumei este egal cu suma raspunsurilor


Omogenitatea:

H [af1 ( x, y )] aH [ f1 ( x, y )]

Adica Raspunsul la un semnal multiplicat cu o constanta este egal raspunsul multiplicat cu aceeasi constanta
Invarianta la pozitie: daca se noteaza:
Atunci:

g ( x, y ) H ( f ( x, y )]

H [ f ( x a, y b)] g ( x a, y b)

Adica Raspunsul in orice punct al imaginii depinde numai de valoarea semnalului in acel punct si nu de pozitia acestuia

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Functia de degradare - 2

Fie functia impuls unitara continua:

f ( x, y )

f (a, b) ( x a, y b) da db

Daca se considera ca aceasta functie suporta efectul unei functii de degradare H, se poate scrie (in absenta zgomotului):

g ( x, y ) H [ f ( x, y )] H [

f (a, b) ( x a, y b) da db]

Avand in vedere proprietatea de aditivitate ( ce se poate extinde imediat asupra integralelor care sunt de fapt niste sume), se
poate scrie:

g ( x, y )

H [ f (a, b) ( x a, y b) ]da db

Cum f(a,b) este independenta de x si y, se poate considera in expresie o constanta, si in virtutea proprietatii de omogenitate, se

poate scrie:
g ( x, y ) f (a, b) H [ ( x a, y b) ]da db

Termenul

H [ ( x a, y b) ]

Se noteaza cu h(x,a,y,b) si se numeste raspunsul la impuls al lui H.


In optica impulsul se considera un punct luminos (pixel), iar h(x,a,y,b) se numeste functia de imprastiere a punctului [luminos]

(point spreaf function PSF).
g ( x, y ) f (a, b)h( x, a, y, b)da db
Se poate acum scrie:

Interpretare: Daca raspunsul la un impuls este cunoscut, atunci se poate cunoaste raspunsul la orice semnal f(a,b)

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Functia de degradare - 3
Daca presupunem ca functie de degradare este si invarianta in raport cu pozitia, se poate nota:
H [ ( x a, y b) ] h( x a, y b)

Unde cu h s-a notat impulsul degradat.


Atunci se poate scrie:

g ( x, y )

f (a, b)h( x a, y b) da db

Aceasta expresie se numeste integrala de convolutie. Ea staueaza urmatoarele:


Daca se cunoaste raspunsul la un impuls al unui sistem liniar, se poate determina raspunsul la orice semnal [f]. Acesta este
convolutia raspunsului la impuls si a functiei de intrare (f).
Daca exista si zgomot, atunci, daca raspunsul este invariant la pozitie:

g ( x, y )

f (a, b)h( x a, y b) da db ( x, y )

Sau inca:
Sau, in domeniul frecventelor:

g ( x, y ) h ( x, y ) * f ( x, y ) ( x, y )

G (u, v) H (u, v) F (u, v) N (u, v)

Concluzie: In cazul unei functii de degradare liniara si invarianta la pozitie, cu zgomot aditiv, raspunsul sistemului se poate
modela ca fiind convolutia functiei de degradare cu imaginea, urmata de adaugarea zgomotului.
In domeniul frecventelor, convolutia este inlocuita cu produsul

3/15/2015

Prelucrarea imaginilor

Restaurarea imaginilor
Estimarea functiei de degradare - 1
Estimarea prin observarea imaginii
Se analizeaza zone mici din imagine, care contin atat elemente de obiecte din imagine cat si fundalul. Se elege o zona cu semnal
puternic. Folosind tehnici de lucru manuale, se poate construi o imagine (e vorba despre zona analizata, care eset o mica
portiune din imaginea analizata) ameliorata.
Presupunand efectul zgomotului neglijabil (am ales o zona cu semnal puternic), se poate scrie:
G (u, v)
H (u, v)
F (u, v)
Unde: F(u,v) este transformata Fourieir a zonei de imagine recostruita manual. Intreaga relatie este scrisa numai pentru zona de
imagine analizata si recostruita manual.
Idee de
Se analizeaza functia H(u,v) si se construieste una similara la nivelul intregii imagini.
proiect

Estimarea prin experiment


Daca avem la dispozitie echipamentul care s-a folosit pentru obinerea unei imagini il putem folosi astfel:
Se incearca obtinerea unei imagini cat mai apropiata de cea degradata, din setarile aparatului. Se fotografiaza un semnal de tip
impuls (o pata de lumina cat mai mica in circumferinta). Cum transformata Fourieir a unui impuls este o constanta, se poate
scrie:
G (u , v)
H (u , v)
A
Unde G(u,v) este trasformata Fourier a imaginii, iar A reprezinta transformata Fourieie a impulsului.
Estimarea prin modelare
Anumite modele de degradare se pot pot modela pe baza observatiilor. De exemplu. Modelul de turbulente atmosferice:

H (u, v) e k (u

v 2 )5 / 6

Unde k este o constanta ce depinde de natura turbulentei.


3/15/2015
Prelucrarea imaginilor

10

Restaurarea imaginilor
Estimarea functiei de degradare - 2
O alta modalitate de a determina prin experimentare functia de degradare este deducerea acesteia prin derivarea analitica a unui
model matematic.
O sursa de degradare o poate constitui miscarea obiectului fotografiat. Daca se presupune ca deschiderea si inchiderea
opturatorului sunt instantanee, se poate scrie:
T

g ( x, y ) f [ x x0 (t ), y y0 (t )]dt
0

Unde T este durata expunerii, iar x0(t) si y0(t) sunt legile de miscare in directiile x, respectiv y (cunoscute).
Aplicand transformata Fourier, dupa calcule se ajunge la:
T

H (u, v) e i 2 [u ( x0 (t ) vy0 (t )]dt


0

Dac de exemplu legile de miscare sunt:

a
t
T
b
y0 (t ) t
T

x0 (t )

Atunci:

H (u, v)

3/15/2015

T
sin[ (ua vb)]e i (ua vb )
(ua vb)

Prelucrarea imaginilor

11

Restaurarea imaginilor
Estimarea functiei de degradare - Exemplu

3/15/2015

Prelucrarea imaginilor

12

Restaurarea imaginilor
Filtrarea inversa
Procesul de obtinere a unei imagini ameliorate se numeste filtrarea inversa. Se poate scrie expresia unei estimari a transformatei
Fourier a imaginii nedegradate:

G (u , v)
F (u , v)
H (u , v)
Impartirea se face element cu element. Cum : G (u , v) H (u , v) F (u , v) N (u , v)

N (u , v)
F (u , v) F (u , v)
H (u , v)
Cum nu se cunoaste N(u,v), rezulta ca nu putem determina estimarea transformatei Fourier a imaginii analizate.
Alta problema poate aparea daca valorile functiei de degradare sunt mici (tind spre zero), caz in care se da o mai mare pondere
zgomotului (altminteri necunoscut).
Astfel de probleme se pot rezolva prin aplicarea unor filtre de tip eliminare de frecvente, care sa pastrze frecventele din
apropierea originii (acolo unde probabilitatea de aparitie a valorile ce tind spre zero este mica - se aminteste ca valoarea
transformatei Fourier in origine da chiar valoarea medie de gri a aunei imagini).

3/15/2015

Prelucrarea imaginilor

13

Restaurarea imaginilor
Filtrarea inversa- Exemplu
Fie imaginea de mai jos, corupta de of unctie de degradare cu expresia:

H (u , v) e k [(u M / 2)

( v N / 2)2 ]5 / 6

Rezultatul se poate vedea in imaginea din dreapta. Pentru parametrul k s-a ales valoarea 0.0025.

G (u , v)
Estimarea obtinuta cu ajutorul relatiei F (u , v)
H (u , v)

conduce la o imaginea neclara.

Aceasta trebuie prelucrata in continuare prin aplicarea unui filtru de tip Butterworth cu frecventa de taiere la 70 si de ordin
10.
Se va realiza ca tema

3/15/2015

Prelucrarea imaginilor

14

Restaurarea imaginilor
Filtrarea Wiener
Expresia filtrului Wiener se deduce din conditia ca abaterea medie patratica a imaginii si a estimarii acesteia sa fie minima.
Expresia estimarii in domeniul frecventelor este:

F (u , v) [

H (u, v)
1
]G (u, v)
2
H (u, v) H (u, v) S (u, v) / S (u, v)

unde:

H (u, v) H * (u, v) H (u, v)


2

H * (u, v) este complex conjugata lui H (u, v)


S (u, v) N (u, v) este puterea spectrala a zgomotului
2

S f (u, v) F (u, v) este puterea spectrala a imaginii necorupte de zgomot


2

O forma aproximativa a relatiei initiale este:

F (u, v) [

H (u, v)
1
]G (u, v)
H (u, v) H (u, v) 2 K

Unde K este o constanta, de regula determinata intercativ.

3/15/2015

Prelucrarea imaginilor

15

Restaurarea imaginilor
Filtrarea Wiener - exemplu
Functii:
DECONVWNR (Matlab)
J = deconvwnr(I, PSF)
J = deconvwnr(I, PSF, NSR)
J = deconvwnr(I, PSF, NCORR, ICORR)
DECONVBLIND (Matlab)
[J,PSF] = deconvblind(I, INITPSF)
[J,PSF] = deconvblind(I, INITPSF, NUMIT)
[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR)
[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR, WEIGHT)
[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR, WEIGHT, READOUT)
[J,PSF] = deconvblind(..., FUN, P1, P2,...,PN)
WIENER (Dipimage)
image_out = wiener(image_in, psf, K, Snn, Sff)

3/15/2015

Prelucrarea imaginilor

16

Operatii morfologice cu imagini


Operatii morfologice cu imagini de intensitate - 1
In cazul operatiilor morfologice cu imagii de intensitate, nu se opereaza cu seturi, ci cu functii discrete.
In continuare se va opera cu doua functii, f(x,y) si b(x,y). Prima este imaginea ce se prelucreaza, iar a doua elementul
structurant. Valorile lui b pot fi si ele altele decat 0 si 1.

Dilatarea

Este descrisa de relatia:

( f b)( s, t ) max{ f ( s x, t y ) b( x, y ) | ( s x), (t y ) D f ;( x, y ) Db }

Relatia se mai poate scrie:

( f b)( s, t ) max{ f ( s, t ) b( s x, t y ) | ( x, y ) D f ;( s x, t y ) Db }

Conditiile de apartenenta la domeniile celor doua functii (D f si Db), sunt echivalente cu conditia ca in cazul dilatarii binare, cele
doua seturi sa se suprapuna pe cel putin un element.
Semnul minus realizeaza simetrizarea in raport cu aza OY, iar parametrii s si t realizeaza translatia.

In imagine se poate vedea dilatarea pentru o functie de o


singura variabila (pentru usurarea reprezentarii si
intelegerii).
Efectul dilatarii imaginilor de intensitate:
-Daca valorile elementului structurant sunt pozitive,
imaginea rezultata va fi mai luminoasa decat originalul;
- Detaliile intunecate sunt reduse sau eliminate, in functie
de cum interactioneaza valorile lor cu forma si valorile
elementului structurant.

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Exemple dilatare - 1

se=strel('diamond',1);
dil=imdilate(imagine,se);

0
1
0

1
1
1

0
1
0

Dilation_se (Dip Image)


se=[0 20 0;60 60 60;0 20 0];
se=[0 10 0;30 30 30;0 10 0];

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Exemple dilatare - 2

se=strel('diamond',1);
dil=imdilate(imagine,se);

0
1
0

1
1
1

0
1
0

se=[0 10 0; 20 60 60;0 30 0];

3/15/2015

Prelucrarea imaginilor

se=[0 10 0; 20 20 20;0 10 0];

Operatii morfologice cu imagini


Operatii morfologice cu imagini de intensitate
Eroziunea

Este descrisa de relatia:

( f b)( s, t ) min{ f ( s x, t y ) b( x, y ) | ( s x), (t y ) D f ;( x, y ) Db }

Toate observatiile facute in cazul dilatarii sunt valabile si aici.


Conditia ca (s+x) si (t+y) sa fie in domeniul functiei, respectiv (x,y) in cel al elementului structurant, este echivalenta cu cea de la
eroziunea binara, ca elementul structurant sa fie complet continut in setul erodat.
Rezultatul eroziunii pentru o functie de o singura variabila, este prin analogie cu detaliile prezentate in cazul dilatarii:

Efectele erodarii unei imagini de intensitate sunt:


-Daca valorile elementului structurant sunt pozitive, imaginea rezultata va fi mai intunecata decat originalul;
- Detaliile luminoase (mai mici in arie decat elementul structurant) sunt reduse sau eliminate, in functie de cum interactioneaza
valorile lor cu forma si valorile elementului structurant.

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Exemple erodare - 1

Erodare binara cu masca:


[0 1 0; 1 1 1;0 1 0]

Erodare in nuante de gri

se=[0 10 0; 20 20 20;0 10 0];


3/15/2015

se=[0 10 0; 20 60 60;0 30 0];

Prelucrarea imaginilor

Operatii morfologice cu imagini


Exemple erodare - 2

Erodare binara cu masca:


[0 1 0; 1 1 1;0 1 0]

Erodare in nuante de gri

3/15/2015

se=[0 10 0; 20 20 20;0 10 0];

Prelucrarea imaginilor

se=[0 10 0; 20 60 60;0 30 0];

Operatii morfologice cu imagini


Inchiderea si deschiderea imaginilor de intensitate
Deschiderea:

f b ( f b) b

Inchiderea:

f b ( f b)b

Deschidere

Inchidere

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Deschiderea imaginilor de intensitate - Exemple

[0 1 0; 1 1 1; 0 1 0]

3/15/2015 se=[0 30 0; 30 30 30; 0 30 0];

Prelucrarea imaginilor

[0 10 0; 20 20 20; 0 10 0];

Operatii morfologice cu imagini


Inchiderea imaginilor de intensitate - Exemple

[0 1 0; 1 1 1; 0 1 0]

3/15/2015 se=[0 30 0; 30 30 30; 0 30 0];

Prelucrarea imaginilor

se=[0 10 0; 10 10 10; 0 10 0];

Operatii morfologice cu imagini


Aplicatii ale operatiilor morfologice
Netezirea morfologica
Se realizeaza printr-o deschidere a imaginii, urmata de o inchidere a rezultatului de la pasul precedent. Elimina cu succes si
zgomotul.
Gradientul morfologic
Este definit de relatia:

g ( f b) ( f b)

Adica, imaginea dilatata, minus cea erodata.


Efectul este scoaterea in evidenta a zonelor de tranzitie ale nivelelor de gri.
Transformarea top-hat
Este descrisa de relatia:

h f ( f b)

Transformarea se foloseste pentru evidentierea detaliilor in prezenta umbrelor.


Segmentarea texturala
Printr-o succesiune bine aleasa de operatii morfologice, se poate detecta frontiera dintre doua zone ale unei imagini
caracterizate de texturi diferite.

3/15/2015

Prelucrarea imaginilor

10

Operatii morfologice cu imagini


Aplicatii ale operatiilor morfologice - netezirea morfologica

se=[0 10 0; 10 10 10; 0 10 0];

se=[0 20 0; 20 20 20; 0 20 0];

Binar, romb,2
3/15/2015

Binar, romb,1

Prelucrarea imaginilor

Binar, disc, 2

11

Operatii morfologice cu imagini


Aplicatii ale operatiilor morfologice - gradientul
morfologic

Imagine initiala

3/15/2015

g ( f b) ( f b)

Prelucrarea imaginilor

Imagine initiala - g

12

Operatii morfologice cu imagini


Aplicatii ale operatiilor morfologice - transformarea top-hat

f (imaginea initiala)

3/15/2015

h f ( f b)

h+f

Prelucrarea imaginilor

13

Operatii morfologice cu imagini


Aplicatii ale operatiilor morfologice - segmentarea texturala
se=strel('disk',12);
cl=imclose(imagine,se);
figure, imshow(cl);
se1=strel('disk',16);
open=imopen(cl,se1);
figure, imshow(open);

S-a aplicat un prag pentru


detectarea trecerii de la zona
intunecata la cea luminoasa,
apoi s-au suprapus imaginile

3/15/2015

Prelucrarea imaginilor

14

Operatii morfologice cu imagini


Elemente de teoria seturilor
Functioneaza analogia seturi <> multimi.
Se pot defini astfel urmatoarele operatii:
Reuniunea
Intersectia
Diferenta
Complementul
Translatia

( A) z {c | c a z , a A}

Simetria

B {w | w b, b B}

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Operatii logice cu imagini binare
Majoritatea operatiilor morfologice se aplica imaginilor binare. Tabelele de adevar ale operatiilor logice sunt cele bine cunoscute.
In cele ce urmeaza se va face conventia ca valoarea 1 indica negru si valoarea 0, indica alb.

A and B

A or B

not A

A xor B

B
(not A) and B

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Dilatarea
Dilatarea ca operatie morfologica este descrisa de relatia:

A B {z | ( B) z A}

Componenta B, se numeste element structurant.


Operatia presupune simetrizarea fata de origine a lui B, translatarea cu cantitatea z,
astfel incat B si A sunt suprapunse cu cel putin un element (pixel).
Exemple:

Se poate observa similitudinea dintre dilatare


si operatia de convolutie. Forma ca si
dimensiunile elementului structurant vor
influenta direct rezultatul dilatarii.

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Erodarea
Erodarea ca operatie morfologica este descrisa de relatia:

AB {z | ( B) z A}
Operatia presupune translatarea lui B, astfel incat B sa fie tot timpul continut in A.
Exemple:

( A B )

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Dilatarea aplicatii
Umplerea golurilor dintr-o imagine

Subtierea unor elemente dintr-o imagine

>> imagine=imread('grafic2.jpg');
>> se=strel('diamond', 3);
>> imagine1=imdilate(imagine, se);
>> figure, imshow(imagine1);

Dilatare

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Erodarea aplicatii
Ingrosarea unor elemente dintr-o imagine

>> imagine=imread('grafic1.jpg');
>> se=strel('diamond', 5);
>> imagine1=imerode(imagine, se);
>> figure, imshow(imagine1);

Eliminarea unor elemente dintr-o imagine

Erodare 13 x 13

Dilatare 13 x 13

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Erodarea si Dilatarea functii
Strel
Imerode
IM2 = imerode(IM,SE)
IM2 = imerode(IM,NHOOD)
IM2 = imerode(...,PACKOPT,M)
IM2 = imerode(...,SHAPE)

3/15/2015

SE = strel(shape, parameters)
SE = strel('arbitrary', NHOOD)
SE = strel('arbitrary', NHOOD,
HEIGHT)
SE = strel('ball', R, H, N)
SE = strel('diamond', R)
SE = strel('disk', R, N)
SE = strel('line', LEN, DEG)
SE = strel('octagon', R)
SE = strel('pair', OFFSET)
SE = strel('periodicline', P, V)
SE = strel('rectangle', MN)
SE = strel('square', W)

Prelucrarea imaginilor

Imdilate
IM2 = imdilate(IM, SE)
IM2 = imdilate(IM, NHOOD)
IM2 = imdilate(IM, SE, PACKOPT)
IM2 = imdilate(...,SHAPE)

Operatii morfologice cu imagini


Deschiderea si inchiderea imaginilor
Dilatarea in general mareste imagine, in timp ce erodarea o micsoreaza.
Operatiile de deschidere si inchidere, in general netezesc contururile obiectelor. Deschiderea unei imagini elimina excrescentele
(protrusions) de mici dimensiuni.
Inchiderea unei imagini topeste spatiile mici, elimina gaurile mici si umple goluri intr-un contur.
Deschiderea:

A B ( AB ) B

Deschiderea unei imagini A cu un element structurant B, inseamna erodarea lui A cu B, urmata de dilatarea rezultatului.
Inchiderea:

A B ( A B)B

Inchiderea unei imagini A cu un element structurant B, inseamna dilatarea lui A cu B, urmata de erodarea rezultatului.

Deschidere
Complementaritatea:
3/15/2015

Inchidere

( A B)c ( Ac B)
Prelucrarea imaginilor

Operatii morfologice cu imagini


Deschiderea si inchiderea imaginilor

3/15/2015

Prelucrarea imaginilor

Operatii morfologice cu imagini


Deschiderea si inchiderea imaginilor - functii
Imopen

Imclose

IM2 = imopen(IM,SE)
IM2 = imopen(IM,NHOOD)

IM2 = imclose(IM,SE)
IM2 = imclose(IM,NHOOD)

Imaginea initiala (A)

Imaginea A erodata (C)

Element
Structurant
(B)

Imaginea C inchisa (D)


3/15/2015

A-D
Prelucrarea imaginilor

Imaginea C deschisa
>> imagine=imread('amprenta.jpg');
>> se=[1 1 1; 1 1 1; 1 1 1];
>> erodare=imerode(imagine,se);
>> desch=imopen(imagine,se);
>> dil=imdilate(desch,se);
>> cl=imclose(desch,se);
>> figure, imshow(imagine);
>> figure, imshow(erodare);
>> figure, imshow(dil);
>> figure,imshow(cl);
>> dif=imagine-cl;
>> figure, imshow(dif);
10

Operatii morfologice cu imagini


Transformarea hit or miss
Transformarea hit or miss este descrisa de relatia:

A B ( AX ) [ Ac (W X )]
Aceasta transformare se foloseste pentru detectarea formelor
(obiectelor).
Mai precis se detecteaza pozitia, locatia unei forme (unui obiect).
Se observa ca transformarea foloseste doua elemente structurante.
De regula primul element structurant este asociat cu obiectul, in vreme
ce cel de-al doilea este asociat cu fundalul. Aceasta pentru ca doua
obiecte se considera disjuncte daca fiecare obiect are in jurul sau cel
putin un pixel de fundal.
In exemplul alaturat, cele doua elemente structurante sunt X si W.
Transformarea de tip hit and miss se realizeaza cu functia bwhitmiss.
Transformarea hit or miss conserva starea pixelilor ale caror vecinatati
se potrivesc (hit) formei primului element structurant si nu se potrivesc
formei celui de al doilea (miss).

3/15/2015

Prelucrarea imaginilor

11

Operatii morfologice cu imagini


Extragerea contururilor
Extragerea contururilor unui set se poate face cu relatia:

b( A) A ( AB)
unde B este un element structurant bine ales.

Imagine initiala

3/15/2015

Contur extras cu elementul


structurant B=[1 1 1;1 1 1;1 1 1];

Prelucrarea imaginilor

Contur extras cu functia bwperim.


A se vedea si functiile:
bwboundaries si
bwtraceboundary
Precum si exemplul din sectiunea
Help: Measuring the radius of a
roll tape/ Image processing
12

Operatii morfologice cu imagini


Umplerea regiunilor
Printr-un proces de dilatari, complementare si
intersectii, este posibila umplerea unor contururi
inchise (regiuni).
Umplerea porneste de la un punct p din interiorul
frontierei ce delimiteaza (defineste) regiunea.
Procesul este iterativ si este descris de relatia:

X k ( X k 1 B) Ac , k 1, 2,3,.....
unde, X0=p, iar elementul structurant B are forma din
imagine.
Intersectarea la fiecare iteratie cu complementul
imagini initiale restrange rezultatul la domeniul de
interes. Procesul se numeste dilatare conditionata.
Procesul se opreste cand Xk=Xk-1.
Vezi si functia roifill. Functia se foloseste pentru
stergerea de obiecte din imagini si inlocuirea
spatiului ramas liber cu pixeli ale caror proprietati se
determina prin interpolare pornind de la frontierea
zonei ce se va sterge.
roifill(imagine);

Vezi si functia roifilt2, care filtreaza o zona de interes


(Region Of Interest).
3/15/2015

Prelucrarea imaginilor

13

Operatii morfologice cu imagini


Extragerea componentelor conectate
Extragerea componentelor conectate inseamna de fapt detectarea
uno zone contigui, deci pana la urma a unor obiecte. Procesul
presupune cunoasterea unui punct apartinand componetei ce se
doreste a fi detectata.
Procesul este descris de relatia iterativa:

X k ( X k 1 B) A , k 1, 2,3,....
Relatie cvasi-identica cu cea folosita la umplerea regiunilor, cu
diferenta ca aici intersectia nu se mai face cu complementul lui A.
Procesul se opreste cand Xk=Xk-1.

3/15/2015

Prelucrarea imaginilor

14

Operatii morfologice cu imagini


Infasuratoarea convexa (convex hull) - 1
Un set se spune ca este convex daca segmentele de
dreapta care unesc oirce doua puncte ale lui A este
continut in intregime in A.
Infasuratoarea convexa H, a unui set A, este cel mai
mic set convex continut in A.
Diferenta H-A se numeste deficienta convexa a lui A.
Acesti doi parametri se folosesc pentru descrierea
obiectelor.
Determinarea infasuratorii convexe se face cu
procesul iterativ descris de:

X ki ( X k 1 B i ) A, i 1, 2,3, 4 si k 1, 2,3,,....
cu

X 0i A

i
Daca se noteaza cu D i X conv

Atunci:

H ( A) D i
i 1

Altfel spus, se aplica transformarea hit or miss lui A


cu B1 . Cand nu se mai produc modificari se
realizeaza reuniunea cu A si se obtine D 1. Apoi
reuniunea celor 4 D-uri si rezulta infasuratoarea
convexa a lui A.

3/15/2015

Prelucrarea imaginilor

15

Operatii morfologice cu imagini


Infasuratoarea convexa (convex hull) - 2
Algoritmul prezentat are dezavantajul ca poate produce o infasuratoare convexa prea mare, nejustificat de mare. Acest lucru
se poate corecta prin aplicarea unei conditii de limitare la dreptunghiul minim de incadrare a setului initial.

3/15/2015

Prelucrarea imaginilor

16

Operatii morfologice cu imagini


Subtierea
Subtierea unui set A cu elementul structurant B, este data
de relatia:

AB A ( A B ) A ( A B )c
O alta abordare ar fi folosirea unei secvente de elemente
structurante:

{B} {B1 , B 2 ,...B n }


Unde Bi este o versiune rotita a lui Bi-1.
Subtierea se realizeaza cu relatia:

A{B} ((....( AB1 )B 2 )...)B n )


Procesul se repeta pana nu se mai produce nicio
modificare.
Vezi si functia thin

3/15/2015

Prelucrarea imaginilor

17

Operatii morfologice cu imagini


Ingrosarea
Este procesul complementar subtierii si este descris de relatia:

AB A ( A B)
Sau, iterativ:

A{B} ((....( AB1 )B 2 )...)B n )


Elementele structurante au aceeasi geografie cu cele folosite la subtiere, doar ca se schimba intre ele 1 cu 0.
In practica nu se dezvolta un algoritm distinct pentru ingrosare, ci se subtiaza fundalul si se complementeaza rezultatul

3/15/2015

Prelucrarea imaginilor

18

Operatii morfologice cu imagini


Skeletoane
Skeletonul unui set A este locul geometric al centrelor unui disc mobil,
care indeplineste urmatoarele conditii:
- Discul atinge frontiera setului A in doua sau mai multe puncte
- Discul are diametrul maxim astfel incat sa fie continut in A.
Skeletonul se determina printr-o succesiune de eroziuni si deschideri:

S ( A) K S k ( A)
k 0

Cu

S k ( A) ( AkB) ( AkB) B

K indica faptul ca e vorba de k eroziuni succesive.


Iterarea se opreste cand erodarea lui A produce un set vid.
>> imagine=imread('litere.bmp');
>> imshow(imagine);
>> img=bwmorph(imagine, 'skel', inf);
>> figure, imshow(img);

Se va analiza functia bwmorph. Una din optiuni spur


elimina pixeli razleti, Procesul se numeste pruning,
taiere.

3/15/2015

Prelucrarea imaginilor

19

Segmentarea imaginilor
Introducere
Segmentarea imaginilor realizeaza divizarea unei imagini in regiunile sau obiectele constituente.
Segmentarea are multiple aplicatii in prelucrarea automata a imaginilor.
Segmentarea se realizeaza prin utilizarea a doua atribute ale imaginilor de intensitate:
- Discontinuitatea (salturile in nivelul de gri, de exemplu in cazul muchiilor)
- Similaritatea (detectarea zonelor dintr-o imagine similare in functie de anumite criterii)

Detectarea discontinuitatilor

Detectarea discontinuitatilor de tip punct, linie si muchie se face prin convolutie, cu o masca aleasa adecvat si impunerea
unor conditii specifice.
9
Se calculeaza suma de produse de forma:
R w z w z ......w z w z
1 1

2 2

9 9

i 1

i i

Unde wi reprezinta valori de pe masca, iar zi, valori de pe imagine, in dreptul punctului de pe masca.

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea punctelor - Exemplu

Imaginea initiala

Imaginea prelucrata cu masca de mai jos

Imagine careia I s-a aplicat filtrul de prag


(im2bw)

(Imfilter)
3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea liniilor
Detectarea liniilor (cu grosimea de un pixel) dintr-o imagine se poate face cu una din mastile de mai jos. Fiecare masca
detecteaza preferential linii de pe o anumita directie.

Cautarea liniilor se poate face urmand doua strategii:


1. Se cauta o linie dupa o directie cunoscuta, caz in care se foloseste masca corespunzatoare.
2. Se folosesc toate mastile, succesiv. Daca pentru doua puncte i si j ale imaginii, se poate scrie |Ri|>|Rj|, cu i<>j, atunci
se poate spune ca punctul este mai degraba asociat unei linii cu directia asociata mastii i. Ri este dat de relatia:
9

R w1 z1 w2 z2 ......w9 z9 wi zi
i 1

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea liniilor - Exemple

Orizontal

+45
3/15/2015

Vertical

-45
Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea muchiilor - 1
Muchia este un set de pixeli interconectati care se gasesc la
granita dintre doua regiuni. Muchia inseamna deci o tranzitie de
niveld e gri, care poate fi de una din formele alaturate:

Modelul rampa este mai apropiat de realitate, pentru ca in


practica, rareori muchiile se materioalizeaza intr-o tranzitie neta
de nivel de gri.
Semnele derivatelor din imagine sunt obtinute pentru parcurgerea zonei de
muchie de la stanga la dreapta (si ar fi inverse pentru sensul contrar).
In acest context, prima derivata se poate folosi pentru detectarea unei
muchii. Derivata a doua se foloseste pentru detectarea daca un pixel se
gaseste pe partea intunecata sau luminoasa a unei muchii.
Linia imaginara ce uneste varfurile celor doua valori ale derivatei asociate
unei muchii, intersecteaza linia de zero in dreptul mijlocului muchiei.
Aceasta caracteristica este foarte utila la detectarea mijlocului muchiilor
groase.

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea muchiilor - 2
Fara zgomot

Zgomot cu media 0 si variatie 0,1

Zgomot cu media 0 si variatie 1

Se poate observa ca desi prezenta


zgomotului este greu detectabila in
imagine, el [zgomotul] afecteaza
foarte puternic derivatele, mai ales
pe ce de a doua.
In concluzie, inainte de detectarea
muchiilor se practica un proces de
netezire a imaginii.
In practica este decretata o
muchie, daca derivata a doua
depaseste o anumita valoare
(theresholding).

Zgomot cu media 0 si variatie 10

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea muchiilor Masti de gradient
Mastile folosite pentru calcularea gradientului sunt prezentate alaturat.
Masca Prewitt este mai usor de implementat, dar masca Sobel da mai bune
rezultate in eliminarea zgomotului.
Se observa ca suma coeficientilor in cazul tuturor mastilor este zero, ceea ce
indica faptul ca ele raspuns nul in zonele fara variatii de gri.
Mastile sunt in pereche pentru ca ele produc gradientul dupa directiile x si y.
Gradientul total se determina in practica cu relatia:

f | Gx | | G y |

Mastile din stanga sunt specializate in


detectarea muchiilor inclinate

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea muchiilor Masti de gradient Exemple 1

Gradient Prewitt

|Gx|+|Gy|

|Gx|

|Gy|

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Detectarea muchiilor Masti de gradient Exemple 2

Aceeasi secventa,
pornind de imaginea
netezita cu un filtru de
mediere 5 x 5. Se observa
scaderea contributiei
detaliilor, astfel ca apar
mai evidente muchiile
lungi.

3/15/2015

Prelucrarea imaginilor

Segmentarea imaginilor
Laplacianul 1
Laplacianul
Poate fi descris de una din relatiile:

2 f

2 f 2 f

x 2 y 2

2 f 4 z5 ( z2 z4 z6 z8 )
2 f 8 z5 ( z1 z2 z3 z4 z6 z7 z8 z9 )

Cea de a doua include si vecinii diagonali.


Mastile corespunzatoare sunt:

Prima este invarianta la rotirea cu 90 grd, iar cea de a doua la rotirea cu unghiuri de 45 grd.
In practica, laplacianul nu se foloseste in stare pura, datorita sensibilitatii sale la zgomot. In practica se
combina laplacianul cu o filtrare de netezire, cu o functie de tipul:

h( r ) e

r2
2 2

, cu r 2 x 2 y 2

Laplacianul sau, in functie de r, este dat de relatia:


r2

r 2 2 2 2
2
h(r ) [
]e
4
2
Convolutia unei imagini cu h este echivalenta cu filtrarea de netezire cu functia h(r), urmata de calculul
laplacianului rezultatului netezirii.
3/15/2015

Prelucrarea imaginilor

10

Segmentarea imaginilor
Laplacianul 2
Reprezentarea grafica, 2D si 3D a laplacianului lui h, precum si masca corespunzatoare, sunt prezentatea mai
jos:

3/15/2015

Prelucrarea imaginilor

11

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea locala
Algoritmii de detectare de muchii sunt urmati de regula de proceduri de unire a bucatilor de muchii, ce pot
fi intrerupte din diverse motive.
Procesarea locala prespune analizarea pixelilor intr-o vecinatate de mici dimensiuni (3 x 3, sau 5 x 5) si
verificarea daca pixelii care au fost detectati ca apartinand unor muchii sunt similari din anumite puncte de
vedere.
De regula se folosesc doua proprietati:
1. Intensitatea raspunsului operatorului gradient. Astfel, se va considera ca un pixel de coordonate (x0, y0),
aflat intr-o vecinatate a pixelului de coordonate (x,y), este similar cu acesta din punctul de vedere al
intensitatii raspunsului operatorului gardient, daca:

f ( x, y ) f ( x0 , y0 ) E
unde E este un prag pozitiv.
2. Directia vectorului gradient. Aceasta e data de relatia:
G
( x, y ) tan 1 y
Gx

Doi pixeli ca cei descrisi mai sus se considera similari din acest punct de vedere, daca:

( x, y ) ( x0 , y0 ) A
unde A este un unghi prag pozitiv.

3/15/2015

Prelucrarea imaginilor

12

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala 1
Transformarea Hough se bazeaza pe maparea ecuatiei unui segment de dreapta din domeniul spatial in cel
numit spatiul parametric.

Ecuatia dreptei ce trece prin punctul de coordonate (xi, yi):


se poate scrie si:

yi axi b

b xi a yi

Pentru o pereche de valori (xi, yi), dreapta definita de ecuatia de mai sus este unica.
In plus, un punct (xj, yj), are si el o dreapta asociata in spatiul parametric. Aceasta o intersecteaza pe cea
corespunzatoare punctului (xi, yi) in punctul (a,b), unde a si b sunt panta si respectiv ordonata la origine a
dreptei ce trece prin cele doua puncte considerate. De fapt toate punctele de pe aceasta dreapta au drepte
corespunzatoare in spatiul parametric care trec (toate), prin punctul (a,b).

3/15/2015

Prelucrarea imaginilor

13

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala 2
Spatiul parametric este divizat in celule de acumulare. Fiecare celula corespunde unei perechi (ai, bj). Pentru
fiecare punct (xk, yk) al imaginii, se dau lui a, succesiv, toate valorile pe care le poate lua in intervalul pantelor
asteptate (amin, amax) si se rezolva ecuatia in b, b=-xka+yk. Valorile gasite sunt rotunjite la nivele acceptabile in
intervalul (bmin, bmax). Daca pentru o valoare ai se gaseste o valoare acceptabila pentru bj, celula de acumulare
Ai,j este incrementata cu 1. Daca la finalul procesului valoarea celulei Ai,j este M, inseamna ca exista M puncte in
domeniul spatial care apartin dreptei y=aix+bj. Este evident ca precizia de lucru depinde de desimea diviziunilor
de pe axele a si b.

3/15/2015

Prelucrarea imaginilor

14

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala 3
In practica, aceasta metoda are dezavantajul ca nu negociaza bine situatiile dreptelor verticale, de panta
tinzand spre infinit. Evitarea acestui fenomen se face prin utilizarea ecuatiei dreptei de forma:

x cos y sin
In aceasta situatie, in planul parametric, se opereaza cu sinusoide in loc de segmente de dreapta.

3/15/2015

Prelucrarea imaginilor

15

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala
Exemplu

3/15/2015

Prelucrarea imaginilor

16

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala
Exemplu
imagine=imread('upg.jpg');
imshow(imagine);
l1=edge(imagine,'canny');
figure, imshow(l1);
[H,theta,rho]=hough(l1);
figure, imshow(imadjust(mat2gray(H)),[],'XData',theta,'YData',rho,...
'InitialMagnification','fit');
xlabel('\theta (degrees)'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot)
P = houghpeaks(H,50,'threshold',ceil(0.2*max(H(:))));
x = theta(P(:,2));
y = rho(P(:,1));
plot(x,y,'s','color','black');
lines = houghlines(l1,theta,rho,P,'FillGap',5,'MinLength',7);
figure, imshow(imagine), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
end

3/15/2015

Prelucrarea imaginilor

17

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala
Utilizarea grafurilor - 1
O muchie poate fi considerata ca fiind granita dintre pixeli. In imaginea de mai jos, pixelii p si q sunt 4 vecini.
Putem privi traseele muchiilor ca fiind arcele unui graf. Nodurile grafului sunt punctele unde o muchie incepe (sau se termina).
k
Relatia:

c c(ni 1 , ni )
i2

Defineste costul unui traseu in cadrul unui graf.


Pentru determinarea muchiilor, se defineste costul unui element de muchie (dintre pixelii generici p si q:

c( p, q ) H [ f ( p ) f (q )]
unde H este cel mai mare nivel de gri din imagine, iar f(p), respectiv f(q) sunt nivelele de gri ale pixelilor p si q.
Se mai face conventia ca in sensul de parcurs, punctul p se gaseste la dreapta.
In aceste conditii, costurile segmentelor de muchie sunt cele din figura de mai jos (centru). Valorile de deasupra corespund
costurilor pentru sensul de deplasare orizontala de la stanga la dreapta, iar valorile de dedesupt, corespund celuilalt sens de
deplasare orizontala.
S-a mai facut presupunerea ca muchiile incep de pe primul rand de pixeli de sus si se termina pe ultimul rand de pixeli de jos.

3/15/2015

Prelucrarea imaginilor

18

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor procesarea globala
Utilizarea grafurilor - 2

Cele de mai sus , aplicate in cazul imaginii cu


dimensiunea 3 x 3 conduc la situatia din imaginea
alaturata.
Costul minim se inregistreaza pe traseul punctat.
In cazul unor imagini reale, de dimensiune mult mai
mare, problema determinarii traseului cu costul
minim nu este simpla.

3/15/2015

Prelucrarea imaginilor

19

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding - 1
Pragurile pot fi folosite si pentru segmentarea imaginilor. Daca histograma unei imagini arata ca mai jos, se poate presupune ca
zonele de maxim corespund fundalului si unui/unor obiecte. Cu ajutorul unui prag (T), sau a doua praguri (T1 si T2), se pot izola
obiectele.

Mecanismul este urmatorul:


1. Pentru un prag: daca f(x,y)>T, punctul apartine obiectului, altminteri fundalului
2. Pentru doua obiecte: daca f(x,y)<=T1, punctul apartine fundalului, daca T1<f(x,y)<=T2, punctul apartine primului obiect, iar
daca f(x,y)>T2, punctul apartine celui de-al doilea obiect.
Uneori, se mai ia in calcul si o proprietate suplimentara, de vecinatate:
T=T[x,y,f(x,y), p(x,y)], unde p(x,y) este o proprietate de vecinatate, cum ar fi de exemplu nivelul mediu de gri al unei zone centrate
in pixelul analizat.
In general, daca se noteaza cu g(x,y) o imagine careia I s-a aplicat un prag, se scrie:

1, daca f ( x, y ) T
g ( x, y )
0, daca f ( x, y ) T
Unde pixelii ce primesc valoarea 1 (sau orice nivel de gri) apartin obiectelor, iar cei care primesc valoarea 0 (sau orice nivel de gri,
neasignat obiectelor), apatin fundalului.
Data propriecatea T depinde numai de f(x,y), avem de-a face cu prag global, iar daca T depinde si de f(x,y) si de p(x,y) avem de-a
face cu un prag local. Daca T depinde si de coordonatele (x,y), pragul se numeste dinamic sau adaptativ.
3/15/2015

Prelucrarea imaginilor

20

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding - 2
O varianta de algoritm pentru aplicarea unui prag in vederea separarii obiectelor de fundal este urmatoarea:
1. Stabilirea unei valori initiale pentru prag
- Cand fundalul si obiectul ocupa aproximativ aceeasi suprafata din imagine, T se poate lua valoarea
medie de gri a imaginii.
Cand cele doua suprafete sunt sensibil diferite, T se considera o valoarea mediana intre cele doua
nivele de gri (ale fundalului si obiectului)
2.
3.
4.
5.

Se segmenteaza imaginea cu valoarea T stabilita anterior


Se calculeaza nivele medii de gri ale celor doua grupe de pixeli rezultate in pasul precedent (m1 si m2)
Se calculeaza o noua valoare de prag T=(m1+m2)/2
Se repeta pasii 2-4, pana cand doua valori succesive de prag difera cu mai putin decat o valoare de oprire.

In general succesul unei operatii de segmentare prin utilizarea pragurilor depinde de iluminarea obiectelor din
imagine.
Imaginile prost iluminate sunt caracterizate de histograme la care maximele nu mai sunt aproape deloc
separate, ceea ce face aplicarea unui prag imposibila. O solutie ar fi segmentarea maginii in subimagini si
aplicarea algoritmului de mai sus pentru fiecare subimagine.

3/15/2015

Prelucrarea imaginilor

21

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 1
im2bw
BW = im2bw(I, level)
BW = im2bw(X, map, level)
BW = im2bw(RGB, level)
Functia converteste o imagine de intensitate, indexata sau color intr-o imagine alb-negru. Parametrul level, cu
valori in intervalul [0 1] defineste pragul utilizat.
Exemple:

Imagine initiala

3/15/2015

prag=.24

Prelucrarea imaginilor

prag=0.5

22

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 2
graythresh
level = graythresh(I)
[level EM] = graythresh(I)
Functia determina pragul optim ce urmeaza a fi furnizat functiei im2bw.
Parametrul EM reprezinta nivelul de eficienta al pragului.
Exemplu:

[level,EM]=graythresh(imagine);
>> EM
EM =
0.9522
>> level
level =
0.4902

3/15/2015

Prelucrarea imaginilor

23

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 3
grayslice
X = grayslice(I, n)
X = grayslice(I, v)
Functia aplica praguri multiple unei imagini.
Prima sintaxa va aplica pragurile:

1 2
n 1
, ,....,
n n
n

A doua sintaxa aplica pragurile specificate in vectorul v. Valorile pragurilor trebuie sa fie cuprinse in intervalul [0 1].
Functia transforma imaginea de intensitate intr-o imagine indexata. Vizualizarea acesteia se face si cu sintaxa:
Imshow(imagine,map), unde map este harta de culoare folosita.
Exemplu:

figure, imshow(tr2);
3/15/2015

figure, imshow(tr2, jet(2));


Prelucrarea imaginilor

24

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 4
threshold

[out, th_value] = threshold(in,type,parameter)

type:
'isodata': Thresholding cu algoritmul Isodata - Ridler and Calvard (1978)
'otsu: Thresholding prin utilizarea variantei maximale inter-clase - Otsu (1979)
'minerror' : Thresholding prin utilizarea metodei erorii minime - Kittler si Illingworth (1986)
'triangle': Thresholding prin utilizarea metodei coardei - by Zack, Rogers si Latt (1977)
'background': Thresholding prin utilizarea metodei simetriei de fundal bimodale
'fixed': Thresholding cu o valoare fixa
'double': Thresholding intre doua valori fixe
'volume': Thresholding pentru obtinerea unei fractii de volum
'hysteresis': Din imaginea binara (valoare de gri > low (min), sunt selectati numai regiunile pentru care cel
putin un pixel are valoarea > high (max)
parameter:
Pentru isodata: numarul de praguri ce se vor folosi. Implicit 1
Pentru 'background: distanta pana la maximul maximul unde se aplica pragul, masurata la jumatate de latime
si jumatate din maxim. Implicit 2.
Pentru fixed, : Threshold la valoare fixa. Implicit valoarea medie de gri.
Pentru 'double: Doua valori de prag. Implicit min+[1/3,2/3]*(max-min).
Pentru 'volume: Volumul fractiei. Implicit 0.5
Pentru 'hysteresis: Doua valori: [min,max]

3/15/2015

Prelucrarea imaginilor

25

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 5

min=50,
max = 120

3/15/2015

Threshold (dip-image)

Prelucrarea imaginilor

26

Segmentarea imaginilor
Conectarea muchiilor si detectarea frontierelor thresholding
Functii - 6
binarize(M, thresh) Intoarce forma binara a imaginii M. Pixelii cu valoarea peste thresh sunt setati pe 1, ceilalti pe 0.
binarize2(M, lowThresh, highThresh, inValue, outValue) Intoarce forma binarizata a imaginii M. Pixelii cu valori
intre lowTresh si highTresh sunt setati pe valoarea inValue, iar ceilalti pe valoarea outValue.
binarize_auto(M) Intoarce forma binara a imaginii M, cu pragul setat automat.
threshold(M, thresh) Intoarce imaginea M, cu pixelii cu valoarea sub thresh setati pe thresh.

3/15/2015

Prelucrarea imaginilor

27

Segmentarea imaginilor
Utilizarea informatiilor de frontiera pentru ameliorarea histogramelor si
aplicarea de praguri locale - 1
Eficienta tehnicilor de aplicare de praguri depinde de calitatea histogramelor.
O solutie ar fi sa fie considerati numai pixelii care se gasesc pe sau in apropierea muchiilor dintre obiecte.
In acest caz, se va manifesta o tendinta de adancire a vailor dintre maximele unei histograme.
Modul de lucru este urmatorul:
Se formeaza o imagine ai carei pixeli sunt setati pe 3 nivele, astfel:

0, daca f T

s ( x, y ) , daca f T si 2 f 0
, daca f T si 2 f 0

Simbolurile + si reprezinta nivele de gri distincte.


Astfel, pentru o imagine ce contine un obiect intunecat pe un fond deschis, procedeul descris mai sus va
produce o imagine in care:
- Pixelii care nu sunt pe o muchie (prima conditie), vor primi eticheta (valoarea) 0
- Pixelii pe partea intunecata a unei muchii (conditia 2) eticheta vor primi eticheta + (ceea ce poate insemna o
anumita valoare de gri)
-Pixelii care sunt pe partea luminoasa a unei muchii (conditia 3), vor primi eticheta -
Se poate obtine astfel o imagine segmentata, binara, la care valorile 1 corespund obiectelor de interes, iar 0urile corespund fundalului.
3/15/2015

Prelucrarea imaginilor

28

Segmentarea imaginilor
Utilizarea informatiilor de frontiera pentru ameliorarea histogramelor si
aplicarea de praguri locale - exemplu

3/15/2015

Prelucrarea imaginilor

29

Segmentarea imaginilor
Watersheding - 1

Crearea barajelor se face prin operatii succesive de dilatare

3/15/2015

Prelucrarea imaginilor

30

Segmentarea imaginilor
Watersheding - 2
Functii:
Matlab:
L = watershed(A)
L = watershed(A, conn)
Dipimage:
image_out = watershed(image_in,connectivity,max_depth,max_size)
image_out = waterseed(seed_image,grey_image,connectivity,max_depth,max_size)

3/15/2015

Prelucrarea imaginilor

31

Transformari geometrice ale imaginilor


Introducere
In afar de funciile predefinite pentru scalarea sau rotirea imaginilor, este posibil definirea de transformri 2D cum ar fi:
translatarea, deformarea (de diverse tipuri) a imaginilor, sau definirea unor transformri complexe (compuse, nlnuite).
Mai jos sunt descrise modalitile de realizare a diferitelor transformri. Se mai face precizarea c transformrile pot fi de
urmtoarele tipuri:
translaie, rotaie, scalare, deformare (shear). Liniile drepte rmn drepte, cele paralele
'affine'

rmn paralele, dar dreptunghiurile pot deveni paralelograme (de exemplu pentru
transformarea de deformare - shear).
Liniile drepte rmn drepte, dar cele paralele converg ctre puncte de fug, situate chiar i

'projective'

n afara imaginii (sau chiar la infinit).


Este o transformare care deplaseaz i scaleaz diferit fiecare dimensiune a imaginii n mod

'box'

independent.

'custom'

Sunt transformri definite de utilizator.

'composite'

Transformri obinute prin compunerea unor transformri elementare.

In Matlab, transformarea se realizeaz n general n doi pai, astfel:


n primul pas se definete structurade transformare, cu ajutorul funciei maketform
n al doilea pas se realizeaz efectiv transformarea, prin utilizarea funciei imtransform.
3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Rotatia
Rotirea in plan este modelata de transformarea matriceala descrisa de:

cos( ) sin( ) 0
sin( ) cos( ) 0

0
0
1
>> imagine=imread('cladire_2.jpg');
>> a=pi/6;
>> matrice_de_rotatie=[cos(a) sin(a) 0;-sin(a) cos(a) 0;0 0 1];
>> % crearea structurii de transformare:
>> s_rotatie=maketform('affine',matrice_de_rotatie);
>> %realizarea efectiva a transformarii:
>> imagine_rotita=imtransform(imagine,s_rotatie);
>> %afisare imagine transformata (rotita):
>> imshow(imagine_rotita);

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Translatia
Translatia in plan este modelata de transformarea matriceala descrisa de:

1 0 0
0 1 0

ux uy 1
>> imagine=imread('cladire_2.jpg');
>> matrice_translatie=[1 0 0;0 1 0; 200 400 1];
>> % imaginea e translatat cu 200 de pixeli pe direcia X i cu 400 de pixeli pe direcia Y.
>> % creare structura de transformare:
>> trans=maketform('affine',matrice_translatie);
>> % realizarea transformarii:
>>imagine_translatata=imtransform(imagine,trans,'Xdata', [1 1600], 'Ydata',... [1 1400], 'FillValues', [200;160;120]);
>> imshow(imagine_translatata);

Imaginea iniial are dimensiunea 1280x960. Dup ce sufer


translaia, dimensiunile ei devin 1480x1360. Parametrii
Xdata i Ydata, definesc spaiul ocupat de noua imagine. Fr
aceti parametri, imaginea translatat va aprea identic cu
cea veche, pentru c implicit se afieaz numai zona efectiv
a imaginii.

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Scalarea
Definirea unei transformri de tip scalare presupune utilizarea unei matrice de transformare de forma:
s x
0

0
sy
0

0
0
1

Secvena de comenzi care realizeaz scalarea unei imagini cu scrile sx=1.5, respectiv sy=.75, este urmtoarea:
>> imagine=imread('img1.jpg');
>> sx=1.5;
>> sy=.75;
>> matrice_de_scalare=[sx 0 0;0 sy 0; 0 0 1];
>> structura_scalare=maketform('affine',matrice_de_scalare);
>> imagine_scalata=imtransform(imagine,structura_scalare);
>> imshow(imagine_scalata);

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Deformarea (shear)
Definirea unei transformri de tip scalare presupune utilizarea unei matrice de transformare de forma:

1
sh
x
0

shy
1
0

0
0
1

Transformarea de tip deformare (shear) rotete axele OX i/sau OY cu unghiurile:

x cu shx tan( x )

y cu shy tan( y )

>> imagine=imread('img1.jpg');
>> ax=pi/6;
>> ay=0;
>> shx=tan(ax);
>> shy=tan(ay);
>> matrice_deformare=[1 shy 0;shx 1 0;0 0 1];
>> structura_deformare=maketform('affine',matrice_deformare);
>> imagine_deformata=imtransform(imagine,structura_deformare);
>> imshow(imagine_deformata);

ax=pi/6, ay=0
3/15/2015

ax=pi/6, ay=pi/4
Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Transformarea cu trei puncte de control
Este posibil ca n locul matricelor de transformare, s se utilizeze seturi de puncte. Pentru transformrile afine
se folosesc seturi de cte trei puncte, de forma:

Se realizeaz de fapt maparea (aducerea ) punctelor pi_in, p2_in, p3_in n (peste) punctele p1_out, p2_out,
p3_out.
Mai jos este prezentat secvena ce realizeaz o astfel de transformare afin. Imaginea utilizat are
dimensiunile 116 x 118 pixeli. n figura este prezentat imaginea de lucru i sunt marcate colurile, precum
i coordonatele lor, exprimate n coordonate pixeli (asta explic de ce punctul din stnga sus, unde se
gsete originea sistemului de axe, are coordonatele (1, 1) i nu (0, 0)). Pe figur s-a mai marcat i punctul
de la mijlocul laturii inferior orizontale. Tripleta de puncte ce se vor mapa este sugerat de ncadrarea n
ptrele. Noile puncte vor avea coordonatele (1, 1), (100, 1), (117, 60).

>> imagine=imread('img1.jpg');
>> sursa=[1 1;117 1;59 119];
>> tinta=[1 1;100 1;117 60];
>> structura_transf=maketform('affine',sursa, tinta);
>> imagine_transformata=imtransform(imagine,structura_transf);
>> imshow(imagine_transformata);
>> size(imagine_transformata)

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Transformarea de tip proiectiv
Transformarea de tip proiectiv seamn cu cea afin cu set de trei puncte, cu diferena c se folosesc
seturi de patru puncte. Secvena de mai jos realizeaz o astfel de transformare. In figura sunt prezentate
seturile de puncte (sursa-inta, input-output). Se face observaia c imaginile din figura nu sunt redate la
aceeai scar.
>> sursa=[1 1; 117 1; 117 119; 1 119];
>> tinta=[40 1; 80 1; 117 119; 1 199];
>> structura_p=maketform('projective',sursa, tinta);
>> imagine_transformata=imtransform(imagine,structura_p);
>> figure;
>> imshow(imagine_transformata);

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Transformarea de tip box
Permite scalarea diferit dup cele dou axe ale unei imagini, precum i repoziionarea imaginii
rezultate. Spre deosebire de transformarea afin de scalare, transformarea de tip box nu presupune
cunoaterea factorilor de scalare, ci doar a dimensiunii i poziiei iniiale i finale ale imaginii
prelucrate.
Mai jos se vor prezenta secvene echivalente pentru realizarea unei transformri de tip box:
>> t=maketform('box',[117 119], [59 60], [117 119]);
>> imagine_transformata=imtransform(imagine,t);
>> figure
>> imshow(imagine_transformata);

>> t2=maketform('box',[1 1;117 119],[59 60;117 119]);


>> imagine_transformata2=imtransform(imagine,t2);
>> figure
>> imshow(imagine_transformata2);

>> t3=maketform('box',[117 119], [80 60], [117 119]);


>> imagine_t=imtransform(imagine,t3);
>> imshow(imagine_t);

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Transformarea compusa

Sunt transformri n cascad. Mai jos este prezentat o secven care aplic unei imagini o scalare,
urmat de o rotire i n final o transformare proiectiv.
>> imagine=imread('img1.jpg');
>> sx=.75;
>> sy=1.25;
>> alf=pi/6;
>> scalare=[sx 0 0;0 sy 0;0 0 1];
>> rotire=[cos(alf) sin(alf) 0;-sin(alf) cos(alf) 0;0 0 1];
>> sursa=[1 1; 117 1; 117 119; 1 119];
>> tinta=[40 1; 80 1; 117 119; 1 199];
>> structura_s=maketform('affine',scalare);
>> structura_r=maketform('affine', rotire);
>> structura_p=maketform('projective',surs, tinta);
>> structura_compusa=maketform ('composite', structura_s, structura_r, structura_p);
>> imagine_finala=imtransform(imagine,structura_compusa);
>> imshow(imagine_finala);

3/15/2015

Prelucrarea imaginilor

Transformari geometrice ale imaginilor


Alinierea imaginilor (Image registration)
Alinierea imaginilor (Image registration) este procesul prin care doua sau mai multe imagini sunt aliniate. De
regula se vorbeste despre o imagine de baza (sau de referinta) este considerata referinta cu care se compara
alte imagini, numite imagini de intrare (input images). Acest lucru se realizeaza prin aplicarea imaginilor de
intrare a unei transformari spatiale. Aceasta problema se pune in special in cazul fotografierii din satelit su
de la inaltime, sau ori de cate ori dispozitive optice deformeaza imaginea obtinuta.
IN esenta, transformata spatiala mapeaza un set de puncte de pe imaginea de intrare, peste un set de
puncte de pe imaginea etalon, astfel modificand relatiile (din punct de vedere geometric) dintre pixelii
imaginii de intrare.
Uneori, efectul dorit se obtine prin mai multe iteratii (transformari). Alegerea pozitiei, numarului si tipului de
transformare aplicat au o influenta directa asupra rezultatului.
Schema de lucru:

Crearea structurii
pentru transformarea
spatiala
(cp2tform)

Selectare puncte de
control
(cpselect)
Reglajul fin al
punctelor de control
optional (cpcorr)
3/15/2015

Prelucrarea imaginilor

Realizarea
transformatei
spatiale
(imtransform)
10

Transformari geometrice ale imaginilor


Alinierea imaginilor functii 1
cpselect (input, base)
cpselect(input, base, CPSTRUCT_IN)
cpselect(input, base, xyinput_in, xybase_in)
h = cpselect(input, base,...)
cpselect(...,param1, val1,...)
input_points = cpcorr (input_points_in, base_points_in, input,base)
cpcorr intoarce puncte de control ajustate pentru imaginea de intrare, prin utilizarea cros-corelatiei
normalizate. Functia misca pixelii de control din imaginea de intrare cu maxim 4 pixeli.
TFORM = cp2tform (input_points, base_points, transformtype)
TFORM = cp2tform(CPSTRUCT, transformtype)
[TFORM, input_points, base_points] = cp2tform(CPSTRUCT,...)
TFORM = cp2tform(..., 'polynomial', order)
TFORM = cp2tform(..., 'lwm', N)
[TFORM, input_points, base_points, input_points_bad, base_points_bad]= cp2tform(..., 'piecewise linear')
B = imtransform (A,TFORM)
B = imtransform(A,TFORM,INTERP)
[B,XDATA,YDATA] = imtransform(...)
[B,XDATA,YDATA] = imtransform(...,param1,val1,param2,val2,...)

3/15/2015

Prelucrarea imaginilor

11

Transformari geometrice ale imaginilor


Alinierea imaginilor functii 2

3/15/2015

Prelucrarea imaginilor

12

Transformari geometrice ale imaginilor


Alinierea proiectiva a imaginilor
Aliniere folosind transformare de tip proiectiv
Secvena de lucru a fost inclus ntr-un fiier m, numit (aliniere_imagini_proiectiv.m), prezentat mai jos. Se vor
comenta numai instruciunile noi, legate strict de executarea transformrii. Comentariile sunt scrise cu set de
caractere Arial i fiecare seciune de comentarii este introdus de caracterul %
% se citesc in variabile cele doua imagini, cea defecta si apoi cea etalon.
imagine_deformata=imread('centru_ploiesti deformat1.jpg');
imagine_etalon=imread('centru_ploiesti etalon.jpg');
% functia cpselect permite selectarea de seturi de puncte pereche pe cele doua imagini. In final aceste seturi de puncte vor
coincide printr-un proces de mapare. Parametrul Wait permite selectarea efectiv a punctelor i revenirea la program la
terminare. Acest parametru se folosete numai cnd functia cpselect este utilizat ntr-un fiier script.
[a,b]=cpselect(imagine_deformata, imagine_etalon, 'wait', true);
% Se genereaz structura de transformare
structura=cp2tform(a, b, 'projective');
% Se citesc n variabila info propriettile imaginii etalon
info=imfinfo('centru_ploiesti etalon.jpg');
% Se genereaz imaginea corectat, cu plasarea ei n aceeai pozitie cu cea etalon, pentru a se permite ulterior suprapunerea i
compararea lor
imagine_corectata=imtransform(imagine_deformata, structura,'XData',[1 info.Width],'YData',[1 info.Height]);
% Se afieaz imaginea corectat
imshow(imagine_corectata);
% Se mentine imaginea n fereastra in care a fost afiat
hold on
% Se afieaz imaginea etalon i i se d un nivel de transparent pentru a se putea compara cu imaginea corectat
h = imshow(imagine_etalon, gray(256));
set(h, 'AlphaData', 0.5);

3/15/2015

Prelucrarea imaginilor

13

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea proiectiva, exemplu

3/15/2015

Prelucrarea imaginilor

14

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip polinomial - 1
In acest caz, imaginea defect conine n zona central o curbare similar cu cea produs de examinarea
cu o lup a zonei. Fiierul m utilizat se numete (aliniere_imagini_polynomial.m), prezentat mai jos, de
aceast dat necomentat.

3/15/2015

Prelucrarea imaginilor

15

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip polinomial - 2

3/15/2015

Prelucrarea imaginilor

16

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip afin
De aceast dat imaginea defect este deformat n zona din dreapta. Transformata indicat este de tip afin, cu
3 perechi de puncte de control. Fiierul m folosit se numete (aliniere_imagini_afin.m) i este prezentat mai jos.

imagine_deformata=imread('centru_ploiesti deformat3.jpg');
imagine_etalon=imread('centru_ploiesti etalon.jpg');
[a,b]=cpselect(imagine_deformata, imagine_etalon, 'wait', true);
structura=cp2tform(a, b, 'affine');
info=imfinfo('centru_ploiesti etalon.jpg');
imagine_corectata=imtransform(imagine_deformata, structura,'XData',[1
info.Width],'YData',[1 info.Height]);
imshow(imagine_corectata);
hold on
h = imshow(imagine_etalon, gray(256));
set(h, 'AlphaData', 0.6);

3/15/2015

Prelucrarea imaginilor

17

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip afin - Exemplu

3/15/2015

Prelucrarea imaginilor

18

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip liniar

De aceast dat imaginea defect este rotit i scalat. Pentru astfel de situaii, este suficient o
transformare liniar care necesit un numr minim de dou perechi de puncte. Fiierul m utilizat se numete
(aliniere_imagini_rotit.m).
imagine_deformata=imread('centru_ploiesti rotit.jpg');
imagine_etalon=imread('centru_ploiesti etalon.jpg');
[a,b]=cpselect(imagine_deformata, imagine_etalon, 'wait', true);
structura=cp2tform(a, b, 'linear conformal');
info=imfinfo('centru_ploiesti etalon.jpg');
imagine_corectata=imtransform(imagine_deformata, structura,'XData',[1
info.Width],'YData',[1 info.Height]);
imshow(imagine_corectata);
hold on
h = imshow(imagine_etalon, gray(256));
set(h, 'AlphaData', 0.6);

3/15/2015

Prelucrarea imaginilor

19

Transformari geometrice ale imaginilor


Alinierea imaginilor alinierea de tip liniar - Exemplu

3/15/2015

Prelucrarea imaginilor

20

Transformari geometrice ale imaginilor


Reconstructia morfologica
Reconstructia morfologica este un proces de dilatari succesive ale unei imagini, numita marker, pana cand
conturul acesteia (la nivel de nivel de gri) se incadreaza sub un contur al unei alte imagini numita masca.
Procesul se incheie atunci cand doua dilatari succesive nu mai produc modificari ale imaginii marker.
Fata de dilatarea clasica, reconstructia morfologica se caracterizeaza prin:
-Procesul se bazeaza pe doua imagini si nu pe o imagine si un element structurant
- procesul se bazeaza pe conceptul de conectivitate si nu pe cel de element structurant
- Procesul se repeta pana cand imaginea marker nu se mai modifica.

3/15/2015

Prelucrarea imaginilor

21

Transformari geometrice ale imaginilor


Reconstructia morfologica - exemplu
B=uint8(ones(100,100));
B=B*100;
for i=20:50
for j=20:60
B(i,j)=120;
end
end
for i=60:70
for j=70:80
B(i,j)=110
end
end
marker=B-10;
vr=imreconstruct(marker,B);
figure, imshow(vr);

3/15/2015

Prelucrarea imaginilor

22

Transformari geometrice ale imaginilor


Umplerea gaurilor - 1
Umplerea gaurilor (flood filling) este realizata de functia imfill. Aceasta, pentru imaginile binare modifica pixelii
conectati ai fundalului (zerouri) in pixeli ai obiectelor (1) si se opreste cand atinge frontierele obiectelor.
In cazul imaginilor de intensitate valorile de gri ale zonelor intunecate care sunt inconjurate de zone luminoase
sunt aduse la nivelul zonelor luminoase. In acest caz sunt eliminate zone de minim local care nu sunt conectate la
granita imaginii.
BW2 = imfill(BW)
[BW2,locations] = imfill(BW)
BW2 = imfill(BW,locations)
BW2 = imfill(BW,'holes')
I2 = imfill(I)
BW2 = imfill(BW,locations,conn)

3/15/2015

Prelucrarea imaginilor

23

Transformari geometrice ale imaginilor


Umplerea gaurilor - 2
>> imagine=imread('im2.tif');
>> figure, imshow(imagine);
>> imcc=imfill(imagine,'holes');
>> figure, imshow(imcc);

3/15/2015

Vezi si functia roifill

Prelucrarea imaginilor

24

S-ar putea să vă placă și