Sunteți pe pagina 1din 145

PRELUCRAREA S

I ANALIZA IMAGINILOR
Constantin VERTAN
{1999}

Cuprins

1 INTRODUCERE

1.1 Imagini digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Structura unui sistem de prelucrarea si analiza imaginilor . . . . . . . . .

1.3 Stocarea imaginilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.3.1

Stocarea imaginilor n memorie . . . . . . . . . . . . . . . . . . .

13

1.3.2

Stocarea imaginilor n fisiere . . . . . . . . . . . . . . . . . . . . .

14

A
TIRE A IMAGINILOR
2 TEHNICI DE MBUNAT
2.1 Operatii punctuale de modificare a contrastului . . . . . . . . . . . . . .

17
18

2.1.1

Modificarea liniar
a a contrastului . . . . . . . . . . . . . . . . . .

19

2.1.2

Modificarea neliniar
a a contrastului . . . . . . . . . . . . . . . . .

23

2.2 Pseudocolorarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

2.3 Operatii de contrastare bazate pe histograma imaginii . . . . . . . . . . .

26

A IMAGINILOR
3 FILTRAREA LINIARA

31

3.1 Filtrarea liniar


a de netezire . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.2 Filtrarea liniar


a de contrastare . . . . . . . . . . . . . . . . . . . . . . . .

36

3.3 Filtrarea liniar


a adaptiv
a. . . . . . . . . . . . . . . . . . . . . . . . . . .

38

4 TRANSFORMARI
INTEGRALE UNITARE DISCRETE
2

42

4.1 Generalit
ati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.2 Propriet
atile transformatelor unitare unidimensionale . . . . . . . . . . .

44

4.3 Transformata Fourier discret


a . . . . . . . . . . . . . . . . . . . . . . . .

45

4.3.1

Propriet
atile fundamentale ale transformatei Fourier . . . . . . . .

46

4.3.2

Transformata Fourier rapid


a . . . . . . . . . . . . . . . . . . . . .

49

4.4 Alte transform


ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4.1

Transformata cosinus . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4.2

Transformata sinus . . . . . . . . . . . . . . . . . . . . . . . . . .

54

A IMAGINILOR
5 FILTRAREA NELINIARA
5.1 Filtrarea de ordine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56
57

5.1.1

Filtrul median . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

5.1.2

Filtrele de ordine ponderate si structurile multietaj . . . . . . . .

62

5.2 Filtre de ordine de domeniu . . . . . . . . . . . . . . . . . . . . . . . . .

65

5.3 L-filtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

5.4 Aspecte de implementare . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

6 ELEMENTE DE MORFOLOGIE MATEMATICA


6.1 Transform
ari morfologice de baz
a . . . . . . . . . . . . . . . . . . . . . .

71
72

6.1.1

Transformarea Hit or Miss . . . . . . . . . . . . . . . . . . . . . .

72

6.1.2

Erodarea morfologic
a . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.1.3

Dilatarea morfologic
a. . . . . . . . . . . . . . . . . . . . . . . . .

75

6.1.4

Propriet
atile erod
arii si dilat
arii . . . . . . . . . . . . . . . . . . .

77

6.1.5

Aspecte de implementare . . . . . . . . . . . . . . . . . . . . . . .

84

6.2 Transform
ari morfologice derivate . . . . . . . . . . . . . . . . . . . . . .

85

6.2.1

Deschiderea si nchiderea . . . . . . . . . . . . . . . . . . . . . . .
3

85

6.2.2

Filtrele alternate secvential . . . . . . . . . . . . . . . . . . . . .

88

6.2.3

Operatori morfologici de contur . . . . . . . . . . . . . . . . . . .

88

6.3 Extinderea morfologiei matematice la nivele de gri . . . . . . . . . . . . .

89

7 METODE DE COMPRESIE A IMAGINILOR


7.1 Compresia imaginilor binare . . . . . . . . . . . . . . . . . . . . . . . . .

92
93

7.1.1

Codarea entropic
a (Human) . . . . . . . . . . . . . . . . . . . .

93

7.1.2

Codarea pe flux de biti . . . . . . . . . . . . . . . . . . . . . . . .

95

7.2 Compresia imaginilor cu nivele de gri . . . . . . . . . . . . . . . . . . . .

99

7.2.1

Codarea predictiv
a . . . . . . . . . . . . . . . . . . . . . . . . . .

100

7.2.2

Compresia imaginilor cu transformate . . . . . . . . . . . . . . . .

101

7.2.3

Codarea cu arbori cuaternari

. . . . . . . . . . . . . . . . . . . .

102

7.2.4

Cuantizarea vectorial
a . . . . . . . . . . . . . . . . . . . . . . . .

105

8 SEGMENTAREA IMAGINILOR

110

8.1 Segmentarea orientat


a pe regiuni . . . . . . . . . . . . . . . . . . . . . .

111

8.1.1

Segmentarea bazat
a pe histogram
a . . . . . . . . . . . . . . . . .

111

8.1.2

Cresterea si fuziunea regiunilor . . . . . . . . . . . . . . . . . . .

119

8.2 Segmentarea orientat


a pe contururi . . . . . . . . . . . . . . . . . . . . .

123

8.2.1

Metode derivative . . . . . . . . . . . . . . . . . . . . . . . . . . .

123

8.2.2

Alte metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

128

9 PARAMETRI DE FORMA

130

9.1 Parametri geometrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

130

9.2 Momente statistice si invarianti . . . . . . . . . . . . . . . . . . . . . . .

131

9.3 Semn
atura formei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

133

9.4 Skeletoane morfologice si generalizate . . . . . . . . . . . . . . . . . . . .

135

9.4.1

Skeletonul morfologic . . . . . . . . . . . . . . . . . . . . . . . . .

135

9.4.2

Skeletonul generalizat . . . . . . . . . . . . . . . . . . . . . . . . .

137

10 PRINCIPII DE IMPLEMENTARE SOFTWARE S


I HARDWARE

139

Capitolul 1
INTRODUCERE
Prelucrarea si analiza imaginilor (numit
a adeseori prescurtat doar prelucrarea imaginilor)
s-a n
ascut datorit
a ideii si necesit
atii de a nlocui observatorul uman printr-o masin
a. Este
important de precizat c
a analiza imaginilor a mers mai departe dect simpla nlocuire
a observatorului uman, deoarece au ap
arut solutii novatoare pentru probleme cu care
acesta nu mai fusese confruntat - ca n cazul imaginilor non-vizibile (imagini acustice,
ultrasonore, radar). Dup
a cum se remarc
a n [9], prelucrarea imaginilor nglobeaz
a posibilitatea de a dezvolta masina total
a de viziune, capabil
a s
a realizeze functiile vizuale ale
oric
arei vietuitoare (desigur, dup
a realizarea a importante dezvolt
ari teoretice si tehnologice).
Image processing holds the possibility of developing the ultimate machine
that could perform the visual functions of all living beings.
Trebuie remarcat
a terminologia anglo-saxon
a (original
a), n care disciplina este denumit
a
Digital Image Processing, deci prelucrarea digital
a a imaginilor. Prin prelucrarea digital
a
a imaginilor se ntelege prelucrarea pe un calculator digital a unor date bidimensionale
(imagini). Termenul cheie este cuvntul digital, nlocuit adesea n mod eronat n multe
traduceri romnesti cu termenul de numeric. Dup
a cum o arat
a dictionarul limbii romne
moderne, definitia cuvntului numeric este aceea de
care apartine numerelor, privitor la numere, exprimat prin numere.
Rezultatul oric
arui calcul este numeric. Termenul digital nseamn
a ns
a
ceea ce este referitor la reprezentarea informatiei discrete n calculatoare
6

Deci atta vreme ct accept


am ideea c
a unealta de lucru n prelucrarea imaginilor este
calculatorul, si acesta la rndul s
au este digital, atunci si prelucrarea este la rndul ei
digital
a, ca un caz particular al oric
arei prelucr
ari numerice. Desigur c
a exist
a ns
a si
prelucr
ari de imagini care sunt analogice - asa cum sunt toate prelucr
arile ce au loc n
cadrul lantului de transmisie si receptie a imaginii standard de televiziune.

1.1

Imagini digitale

La nceput, imaginile sunt semnale, dar nu functii temporale, ci functii definite pe un


domeniu spatial. Orice imagine este o structur
a bidimensional
a (tablou, matrice) de date.
Un element al imagini se numeste pixel (cuvnt preluat din englez
a, unde provine de la
picture element). Aceste date pot fi numere naturale, reale sau complexe, reprezentate
ns
a pe un num
ar finit de biti. Dup
a tipul datelor din acest
a structur
a bidimensional
a,
imaginile prelucrate pot fi mp
artite n mai multe categorii:
imagini scalare, n care fiecare component
a este un scalar (un unic num
ar); ca
exemple de astfel de imagini se pot da imaginile monocrome (n care punctele au
doar dou
a valori posibile, ce corespund unui continut binar al imaginii, n general
alb-negru) si imaginile cu nivele de gri (de tipul imaginii de luminanta de pe ecranele
televizoarelor alb-negru).
imagini vectoriale, n care fiecare component
a este un vector de numere; cazul
particular cel mai de interes este acela al imaginilor color, n care vectorul are trei
elemente (ce corespund celor trei constituente de baz
a ale oric
arei culori); n general,
pentru imaginile multicomponent
a, vectorul asociat fiec
arui punct din imagine are
mai multe elemente (caz ce corespunde imaginilor preluate n mai multe benzi
de frecventa, asa cum sunt imaginile de teledetectie ale satelitilor, imaginile de
termodetectie n benzile de infrarosu,...). Tot n categoria imaginilor vectoriale
intr
a ns
a si imaginile stereo (o pereche de imagini ale aceleiasi scene, luate din
unghiuri diferite) si secventele de imagini.
Conform datelor prezentate n [11], dintre imaginile prelucrate n aplicatii functionale,
20 % sunt alb-negru, 32 % sunt cu nivele de gri, 20 % sunt color, 10 % sunt imagini
stereoscopice si 18 % sunt secvente de imagini.
n mod clasic, valoarea unui element al unei imagini este o m
asur
a a intensit
atii luminoase
n punctul considerat; acesta nu este ns
a dect un caz particular. Dup
a natura lor,
imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile si imagini vizibile [2].
Imaginile abstracte sau modelele sunt de fapt functii [matematice], continue sau discrete,
de dou
a variabile. Imaginile non-vizibile, care, evident, nu pot fi percepute n mod direct
de ochiul uman, sunt de fapt achizitii ale unor cmpuri bidimensionale de parametri fizici
7

(presiune, temperatur
a, presiune, densitate, ...). n fine, imaginile ce pot fi percepute
n mod direct de c
atre ochiul uman (deci imaginile vizibile) sunt la rndul lor imagini
optice, generate ca distributii de intensitate luminoas
a (asa ca hologramele, imaginile
de interferenta si difractie) sau imagini propriu-zise (de luminanta - n sensul curent al
termenului, ce se refer
a la fotografii, desene, picturi, schite, scheme si altele din aceeasi
categorie).
O alt
a mp
artire a imaginilor scalare se poate face dup
a semnificatia ce se d
a valorii
numerice a pixelilor. Vom distinge astfel imagini de intensitate si imagini indexate. O
imagine de intensitate este o imagine n care valoarea fiec
arui pixel este o m
asur
a direct
a
a intensit
atii luminoase sau a m
arimii fizice preluate de senzor, ca de exemplu n imaginile
cu nivele de gri. Pixelii unei imagini de intensitate pot avea orice fel de valori: reale sau
naturale (depinznd dac
a imaginea este sau nu cuantizat
a).
O imagine indexat
a este acea imagine n care valoarea fiec
arui pixel este un indice prin care
se reg
aseste informatia de culoare asociat
a pixelului respectiv. Deci, pentru afisarea sau
reprezentarea unei imagini indexate este necesar
a o informatie suplimentar
a, de asociere
ntre indici si culori. Aceast
a asociere se face prin intermediul tabelei de culoare. Tabela
de culoare este o matrice n care fiecare linie contine descrierea unei culori (deci cele
trei componente ce definesc culoarea - n mod tipic intensit
atile relative de rosu, verde
si albastru ce compun culoarea dat
a printr-un amestec aditiv). Deci tabela de culoare
are trei coloane; num
arul de linii al tabelei de culoare este egal cu num
arul de culori
din imaginea reprezentat
a si este n mod tipic o putere a lui doi (16, 256, ...). Indicele
(valoarea pixelului) va fi num
arul de ordine al liniei din tabela de culoare pe care se
g
aseste descrierea culorii. Este evident c
a valorile pixelilor unei imagini indexate nu pot
fi dect numere naturale (deoarece sunt indici ntr-o matrice).
Aceast
a tehnic
a este folosit
a si n grafica pe calculator. Afisarea imaginilor pe ecranul
monitorului se face corespunz
ator unui anumit mod grafic, determinat din placa video
a calculatorului. Un mod video defineste num
arul maxim de culori ce pot fi utilizate
simultan si dimensiunile ecranului (n pixeli de afisaj). Culorile utilizate la un moment
dat sunt grupate ntr-o palet
a de culori de afisare. Paleta de afisare este o structur
a logic
a
1
definit
a n BGI (Borland Graphics Interface), pentru programare n sesiuni de tip DOS,
ca:
struct palettetype {
unsigned char size;
int colors[MAXCOLORS+1]; }
Modificarea unei culori din palet
a (o intrare a tabelului) se face cu:
void far setpalette(int index_culoare, int culoare);
1

Exemplele de cod C prezentate n lucrare corespund mediilor integrate Borland (Borland C++ 3.1,
Turbo C 2.0)

Afisarea unui pixel cu o anumit


a culoare se face cu:
putpixel(int pozx, int pozy, int index_culoare);
Sub Windows, este suportat
a si specificarea direct
a a culorii de afisat (sub forma unui
2
triplet RGB ), sistemul de operare aproximnd culoarea respectiv
a cu cea mai apropiat
a
culoare disponibil
a din paleta de lucru curent
a (n acest fel, utilizatorul poate neglija
existenta acesteia).
Pentru o imagine cu nivele de gri, componentele de rosu, verde si albastru ale fiec
arei
culori din paleta de culoare sunt identice. Dac
a specificarea componentelor de culoare se
face prin numere de 8 biti (deci ntre 0 si 255, adic
a cazul cel mai des folosit), tabela de
culoare va avea 256 de culori (tonuri de gri) diferite. Specificarea acestora se va face cu
indecsi ntre 0 si 255, alocati conform conventiei 0 - negru, 255 - alb. n acest fel, pentru
o imagine indexat
a cu nivele de gri, nu mai este necesar
a specificarea tabelei de culoare;
culorii reprezentate de indexul i i corespunde nivelul de gri i, adic
a tripletul RGB (i, i, i).
Modelul imagini indexate este un caz particular de folosire a tehnicii dictionar (sau
tehnicii tabelului de echivalenta - Look Up Table - LUT): o tehnic
a de reg
asire a unei
cantit
ati de informatie folosind asocierea unei chei de c
autare mult mai mici.

1.2

Structura unui sistem de prelucrarea si analiza


imaginilor

Structura tipic
a a unui sistem de prelucrarea (evident digital
a) si analiza imaginilor este
alc
atuit
a din punct de vedere functional dintr-un num
ar mic de blocuri (vezi figura 1.1):

sistemul de formare a imaginii (de exemplu sistemul de lentile al camerelor de


luat vederi): strnge radiatia electromagnetic
a a obiectului studiat pentru a forma
imaginea tr
as
aturilor de interes
convertorul de raditie: converteste radiatia electromagnetic
a din planul imaginii
ntr-un semnal electric.
Sistemul de formare a imaginii si convertorul de radiatie formeaz
a senzorul; acesta realizeaz
a o proiectie plan
a (bidimensional
a) a scenei reale (care este n general tridimensional
a). Un studiu realizat n Germania n anul 1996 [11] prin inventarierea sistemelor de
2

Red Green Blue - Rosu, Verde, Albastru: sistemul primar de reprezentare a culorilor.

Fig. 1.1: Schema general


a a unui sistem de analiza si prelucrarea imaginilor
preluare a imaginilor folosite n industrie indic
a o distributie a tipurilor de senzori dup
a
gama de radiatie captat
a conform tabelului 1.1:
Domeniu
Infrarosu Infrarosu Vizibil Ultraviolet
Radar
Radiatie
electromagnetic dep
artat apropiat
(microunde)
X
Procent
5%
25 %
40 %
10 %
10 %
10 %
Tabel 1.1: Tipuri de senzori folositi n prelucrarea imaginilor

sistemul de achizitie (echivalent unui frame-grabber sau video-blaster): converteste


semnalul electric al senzorului ntr-o imagine digital
a, pe care o stochez
a; acesta nu
este altceva dect un dispozitiv de esantionare (discretizare a suportului imaginii)
si cuantizare (discretizare a domeniului de valori a imaginii).
sistemul de prelucrare (n mod tipic un calculator, fie el PC sau statie de lucru); n
aceast
a categorie se ncadreaz
a ns
a si masinile specializate de calcul, calculatoarele
de proces, ...
software-ul specializat: implementeaz
a algoritmii de prelucrare si analiz
a
n [11] se arat
a c
a unitatea de prelucrarea hardware (deci calculatorul) folosit
a la aplicatiile de prelucrarea imaginilor functionale la acea dat
a este n cea mai mare majoritate
a cazurilor un PC obisnuit, cu performante standard; datele sunt sintetizate n tabelul
1.2:

10

Platform
a hardware
Procent din piata
PC standard, bus ISA, Windows 3.1, 95, NT
40 %
Calculatoare industriale (procesoare Intel), bus VME
15 %
PC standard cu acceleratoare specializate, bus VLB, PCI
15 %
Statii de lucru (workstations)
10 %
Masini specializate
10 %
Calculatoare Macintosh, calculatoare paralele (transputere), altele
10 %
Tabel 1.2: Unit
ati de calcul folosite n prelucrarea imaginilor
Sistemul software specializat care este responsabil cu realizarea efectiv
a a unei sarcini concrete poate fi descompus n mai multe module, nu neap
arat bine separate si nu neap
arat
prezente mpreun
a: mbun
at
atirea, restaurarea, compresia, segmentarea si analiza [9].
Blocul de mbun
at
atire a imaginilor are ca scop accentuarea anumitor tr
as
aturi [ale
obiectelor continute n imagine] pentru usurarea unor sarcini ulterioare de analiz
a automat
a sau interpretare prin afisare. Asemenea metode pot fi utile la extragerea tr
as
aturilor caracteristice ale obiectelor, eliminarea zgomotelor suprapuse imaginii, m
arirea
confortului vizual. Acesti algoritmi nu m
aresc continutul informational al imaginii si
sunt n general interactivi si puternic dependenti de aplicatie.
Restaurarea imaginilor se refer
a la eliminarea sau minimizarea efectelor unor perturbatii
si a unor degrad
ari. Perturbatiile reprezint
a n general zgomotele (modelate ca procese
aleatoare) ce se suprapun n cursul achizitiei imaginii (din cauza senzorului si a lantului
de transmisiune si captare); degrad
arile sunt cauzate de imperfectiunile si limit
arile deterministe ale senzorului (efecte de apertur
a, timp de expunere, deficiente geometrice ale
sistemului de lentile, ...).
Compresia imaginilor se refer
a la reducerea volumului de date (num
arului de biti) cu
care este reprezentat
a imaginea, printr-o transformare reversibil
a - imaginea trebuie s
a
poat
a s
a fie recuperat
a integral (sau cu diferente foarte mici, controlabile) din versiunea
sa comprimat
a.
Segmentarea este procesul de descompunere a unei imagini (sau scene) n elementele
(obiectele) sale constituente. Adeseori, segmentarea este strns legat
a de algoritmii de
analiz
a, al c
aror scop este de a realiza m
asur
atori cantitative sau evalu
ari calitative asupra
unor anumite categorii de obiecte, prezente n imaginea dat
a.
Sfera de aplicabilitate a tehnicilor de prelucrarea si analiza imaginilor este deosebit de
larg
a; practic, n orice domeniu de activitate se pot g
asi numeroase aplicatii. Aceast
a clas
a
de aplicatii extrem de specifice a fost caracterizat
a drept consumul imaginii [1] (imaginea folosit
a n vederea analizei, deci a lu
arii unor decizii). Imaginile preluate de c
atre
sateliti pot fi folosite la descoperirea resurselor terestre, cartografiere geografic
a, predictia
recoltelor, urm
arirea dezvolt
arii urbane, urm
arirea vremii, controlul si prevenirea incendi-

11

ilor si inundatiilor, precum si alte aplicatii ecologice si militare. Aplicatiile transmisiei


si compresiei imaginilor se reg
asesc n televiziunea digital
a, sistemele de teleconferinta,
transmisiile fax, birotic
a, comunicatia pe retele distribuite, sisteme de securitate cu circuit nchis, aplicatii militare. n aplicatiile medicale sunt prelucrate radiografiile cu raze
X, angiogramele, echografiile, tomografiile, imaginile de rezonanta magnetic
a nuclear
a.
Acestea pot fi utilizate pentru monitorizarea pacientilor si pentru descoperirea si identificarea de boli si tumori.
O larg
a clas
a de aplicatii sunt cele industriale, n care componentele de prelucrarea si
analiza imaginilor sunt folosite n sisteme mai mari de asigurare a calit
atii produselor
(metrologie, controlul calit
atii - inclusiv defectoscopie nedistructiv
a). Solutiile sunt extrem de specifice, puternic legate de procesul de fabricatie urm
arit si tind s
a devin
a din
ce n ce mai utilizate odat
a cu impunerea normelor de calitate total
a ale standardului
ISO9000 (se poate urm
ari [10] pentru aplicatii specifice ale diferitelor firme germane).
Din acest punct de vedere este interesant
a comparatia ntre cteva caracteristici ale sistemului vizual si de prelucrare uman si un sistem de prelucrarea si analiza imaginilor [8],
folosite pentru aplicatii industriale, prezentat
a n tabelul 1.3.
Criterii
Om
Sistem de prelucrarea imaginilor
Obiectivitate
NU
DA
Control 100%
NU
DA

Rat
a de eroare
MARE
MICA

Rat
a de lucru
MICA
MARE

Rezistenta la oboseal
a
MICA
MARE
Iluzie optic
a
DA
NU
Prelucrare statistic
a
Greu realizabil
DA
Reproductibilitate
Greu realizabil
DA
M
asurare geometric
a
Cu instrumente auxiliare
DA
Recunoastere de forme
DA
DA
Tabel 1.3: Comparatia ntre caracteristici esentiale ale sistemului vizual uman si sistemele
de prelucrarea si analiza imaginilor

1.3

Stocarea imaginilor

Se poate considera c
a exist
a dou
a moduri de stocare a imaginilor: stocarea n memoria
de lucru a unit
atii de prelucrare a imaginii de lucru (care este o stocare de scurt
a durat
a
- doar pe durata prelucr
arii efective) si stocarea de lung
a durat
a imaginilor, n fisiere, pe
suporturi externe de memorie (benzi, discuri, etc.). Diferenta esential
a ntre cele dou
a
tipuri de stocare este aceea c
a n memorie imaginea va fi reprezentat
a complet, n form
a
necomprimat
a, pentru a permite accesul rapid direct la informatia fiec
arui pixel.
12

1.3.1

Stocarea imaginilor n memorie

Principalul limbaj de programare utilizat pentru aplicatii cu calcule intensive r


amne nc
a
limbajul C (C++). Stocarea imaginilor se va face, evident, prin intermediul unor variabile
ce implementeaz
a structuri de date bidimensionale. Ceea ce este deosebit este modul de
declarare a acestora: declararea static
a nu este convenabil
a din cauza dimensiunilor n
general mari ale imaginilor, si deci este necesar
a o declarare dinamic
a. Particularitatea
este dat
a de memorarea separat
a a fiec
arei linii (sau coloane) a matricii ntr-un vector
alocat dinamic, si gruparea adreselor de nceput a acestora ntr-un vector de pointeri, la
care se va retine adresa de nceput (deci un alt pointer). Dac
a consider
am un tip generic
de date pentru componentele matricii (caracter, sau ntreg, sau real), atunci o secventa
C de declarare a unui imagini poate fi:
tip ** imagine;
unsigned int contor;
imagine=(tip**) malloc(nr_linii*sizeof(tip*));
for (contor=0;contor<nr_linii;contor++)
imagine[contor]=(tip*) malloc(nr_coloane*sizeof(tip));
Se remarc
a folosirea constantelor nr_linii si nr_coloane (cu semnificatie evident
a) si a
tipului generic tip pentru valoarea pixelilor. Linia a 3-a aloc
a spatiul pentru un masiv de
pointeri la date de tip pointer; spatiul de memorie necesar (argumentul functiei malloc)
este dat de num
arul de pointeri la liniile imaginii ce nmulteste dimensiunea unui astfel
de pointer (sizeof(tip*)). Valoarea imagine[contor] este adresa de nceput a spatiului
de memorie la care ncep valorile pixelilor de pe linia contor; acestia sunt stocati ntrun vector declarat de malloc(nr_coloane*sizeof(tip)). Trebuie remarcat
a conversia de
tip (cast) obligatorie ce nsoteste fiecare alocare de memorie (se stie c
a functia malloc
ntoarce un pointer la void). De asemenea se observ
a c
a secventa anterioar
a nu face nici
un fel de verificare a succesului operatiei de alocare de memorie (verificarea faptului c
a
valoarea returnat
a de functia malloc nu este NULL). n mod implicit, la compilare, toti
pixelii (toate valorile matricii imagine) sunt initializati cu 0.
Spre deosebire de C, limbajul Matlab3 aduce mari simplific
ari. Exist
a un singur tip de
date, reprezentate pe 8 octeti (caracteristic
a ce se schimb
a ncepnd cu versiunea 5.0, ce
admite valori reale, ntregi sau caracter, declarate explicit). Orice variabil
a Matlab este
creat
a n momentul folosirii sale n membrul stng al unei expresii (deci nu este necesar
a
declararea prealabil
a folosirii); orice variabil
a este o matrice (scalarul este o matrice de o
linie si o coloan
a). Functiile returneaz
a matrici. Secventa C anterioar
a este echivalent
a
cu:
imagine=zeros(nr_linii,nr_coloane);
3

Codurile Matlab prezentate n lucrare corespund versiunii Matlab 4.2c.

13

1.3.2

Stocarea imaginilor n fisiere

Un fisier este entitatea logic


a de organizare a informatiei nscrise pe mediile magnetice
de stocare si se compune dintr-un sir de octeti. Pentru stocarea imaginii este necesar
ca acesti octeti s
a contin
a informatia aferent
a pixelilor precum si informatie despre tipul
imaginii: dimensiunile acesteia, dac
a este sau nu indexat
a, dac
a are sau nu o tabel
a de
culoare atasat
a, dac
a este sau nu comprimat
a si dup
a ce metod
a. Anumite structuri
de fisiere au fost impuse de-a lungul timpului de firme produc
atoare de software sau
de organisme de standardizare, c
ap
atnd denumirea de formate de imagini. Formatele
de imagini s-au f
acut cunoscute mai ales dup
a extensia standard a fisierelor ce contin
imaginile stocate dup
a formatul respectiv: BMP, TIF, GIF, PCX, JPG ... . n cele
ce urmeaz
a ne vom referi la formatele RAW(cunoscut si ca IMG), unul dintre cele mai
rudimentare formate de fisiere imagine, si Windows Bitmap -BMP al firmei Microsoft,
care este unul dintre cele mai larg recunoscute formate de fisiere.
Un fisier RAW contine imagini indexate cu nivele de gri, de form
a p
atrat
a. Fisierul nu
are antet (dimensiunile imaginii fiind deduse din dimensiunea fisierului ce o contine) si
nu contine nici tabel de culoare (acesta are toate componentele liniei i egale ntre ele,
reprezentnd griuri). Fiecare pixel al imaginii este codat cu num
arul corespunz
ator de
biti (4, 8, etc.); imaginea este baleiat
a n ordinea normal
a (ncepnd cu prima linie a
imaginii, de la stnga la dreapta).
Un fisier BMP4 are trei componente consecutive: un antet de fisier (BITMAPFILEHEADER), o structur
a de informatie a imaginii(BITMAPINFO) si codarea pixelilor.
Antetul de fisier (BITMAPFILEHEADER) contine informatii asupra tipului, dimensiunii si reprezent
arii fisierului Bitmap independent de dispozitiv (DIB - Device Independent
Bitmap); semnificatiile componentelor sunt date n tabelul 1.4.
typedef struct tagBITMAPFILEHEADER{
WORD bfType;
DWORD bfType;
WORD bfReserved1;
WORD bfReserved2;
DW bfOffBits;
}BITMAPFILEHEADER;

Structura de informatie a imaginii (BITMAPINFO) contine informatii asupra dimensiunilor si culorilor unui DIB, si este alc
atuit
a din dou
a componente: antetul structurii de
informatii (BITMAPINFOHEADER), a c
arui componente sunt descrise n tabelul 1.5 si
tabelul de culoare, format din structuri RGBQUAD.
4

Denumirile componentelor logice ale fisierului sunt cele standardizate de Microsoft.

14

Cmp
bfType
bfSize
bfReserved1
bfReserved2
bfOBits

Descriere
Specific
a tipul de fisier; trebuie s
a contin
a caracterele BM
Specific
a lungimea fisierului n DWORD
Cmp rezervat, valoare 0
Cmp rezervat, valoare 0
Specific
a deplasamentul n octeti de la sfrstul structurii
BITMAPFILEHEADER pn
a la zona din fisier ce contine pixelii codati

Tabel 1.4: Descrierea cmpurilor structurii BITMAPFILEHEADER


Cmp
biSize
biWidth
biHeight
biPlanes
biBitCount
biCompression

Descriere
Num
arul de octeti ai structurii BITMAPINFOHEADER
L
atimea imaginii, n pixeli
n
altimea imaginii, n pixeli
Num
arul de plane de culoare ale dispozitivului de afisaj (1)
Num
arul de biti cu care se codeaz
a un pixel; poate fi 1, 4, 8 sau 24
Tipul de compresie utilizat
a: BI_RGB f
ar
a compresie, BI_RLE8
sau BI_RLE4 pentru compresie de tip RLE cu cuvinte de respectiv
8 sau 4 biti
biSizeImage
Dimensiunea imaginii n octeti
biXPelsPerMeter Rezolutia pe orizontal
a a dispozitivului tint
a (n pixeli pe metru)
biYPelsPerMeter Rezolutia pe vertical
a a dispozitivului tint
a (n pixeli pe metru)
biClrUsed
Num
arul de culori utilizate n imagine; dac
a este 0, imaginea
foloseste toate culorile disponibile ale paletei
biClrImportant
Num
arul de culori considerate importante; dac
a este 0, toate
culorile sunt luate n considerare
Tabel 1.5: Descrierea cmpurilor structurii BITMAPINFOHEADER
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
DWORD biWidth;
DWORD biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
DWORD biXPelsPerMeter;
DWORD biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;

15

Structura RGBQUAD descrie o culoare prin componentele sale de rosu, verde si albastru,
si un cmp rezervat avnd valoarea 0.
typedef struct tagRGBQUAD{
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
}RGBQUAD;
Codarea pixelilor se face dup
a cteva reguli. Fiecare pixel va fi codat pe biBitCount biti;
dac
a biBitCount este 1, 4 sau 8, imaginea va fi indexat
a si fisierul contine tabela de culoare
asociat
a imaginii. Codurile pixelilor se grupeaz
a pe octeti (deci pentru o codare de 4 biti
per pixel, fiecare octet de cod va corespunde la doi pixeli al
aturati). Dac
a biBitCount
este 24, pentru fiecare pixel se asociaz
a direct trei octeti, ce reprezint
a componentele de
rosu, verde si albastru ale culorii respective; aceast
a imagine se numeste True Color si
nu mai are un tabel de culoare asociat. Denumirea de True Color (culoare adev
arat
a)
24
provine din faptul c
a num
arul total de culori ce se pot astfel reprezenta (2 ) dep
aseste
limita sensibilit
atii umane de discernere a culorilor.
Codarea se face independent pe fiecare linie orizontal
a a imaginii. Codurile (indexurile)
tuturor pixelilor unei linii sunt concatenate; sirul rezultat trebuie s
a fie multiplu de 32
de biti (sau de 4 octeti, sau s
a contin
a un num
ar ntreg de DWORDs). Dac
a acest
a
constrngere nu este respectat
a, linia respectiv
a se completeaz
a cu num
arul necesar de
biti (care, n mod evident, nu vor fi utilizati la citirea imaginii din fisier). Codarea
imaginii ncepe cu ultima linie, si pentru fiecare linie baleiajul este normal (de la stnga
la dreapta).

16

Capitolul 2
A
TIRE A
TEHNICI DE MBUNAT
IMAGINILOR
mbun
at
atirea imaginilor este o sintagm
a general
a ce se refer
a la o clas
a larg
a de operatii
al c
aror scop este m
arirea detectabilit
atii componentelor imaginii. Detectabilitatea componentelor este legat
a mai mult de perceptia vizual
a a unui observator uman dect de o
analiz
a automat
a cantitativ
a. Perceptia vizual
a de referinta este cea a unui expert uman
n domeniul aplicatiei din care provine imaginea.
Asadar criteriile de evaluare ale calit
atii unei imagini sunt subiective si specifice aplicatiei.
n [2] se face analogia operatiilor de mbun
at
atire a imaginilor cu reglajul tonalit
atii
muzicii ascultate; n functie de ascult
ator, se vor favoriza componentele nalte sau joase,
sau nici unele. Ca o consecinta, procesul de mbun
at
atire va fi interactiv, transform
arile
efectuate trebuind s
a fie validate (cel putin n etapa de proiectare sau prob
a) de c
atre un
utilizator uman.
Principiul (aproape unanim acceptat) este c
a mbun
at
atirea calit
atii unei imagini se face
f
ar
a a lua n considerare nici o informatie asupra imaginii originale sau asupra procesului
de degradare (prin care imaginea nu este suficient de bun
a). Conform acestui punct
de vedere chiar si o imagine original
a (nedegradat
a) poate fi mbun
at
atit
a, obtinnd o
imagine falsificat
a, dar subiectiv preferabil
a [18]. n general, calitatea subiectiv
a a unei
imagini poate fi apreciat
a pe baza contrastului sau accentu
arii elementelor de contur
(muchii, frontiere, linii, margini) si pe baza netezimii n regiunile uniforme.
Cresterea uniformit
atii regiunilor este ns
a asimilat
a elimin
arii unui eventual zgomot
suprapus imaginii, operatie denumit
a n mod clasic filtrare. Filtrarea ce are ca scop
eliminarea zgomotului va fi studiat
a n urm
atoarele capitole.
Din punctul de vedere al metodelor utilizate, putem distinge mai multe tipuri de operatii
de mbun
at
atire:
17

operatii punctuale, prin care se realizeaz


a o corespondenta de tip unu la unu ntre
vechea valoare a nivelului de gri si noua valoare a acestuia, pentru fiecare pixel al
imaginii. Tot n acest
a categorie vom include si operatiile de pseudocolorare, care
se refer
a la afisarea imaginii folosind o palet
a de culoare modificat
a.
operatii locale (sau de vecin
atate), prin care noua valoare a nivelului de gri ntr-un
pixel este obtinut
a din vechea valoare a pixelului repectiv si din valorile unor pixeli
vecini pixelului considerat.
operatii integrale, n care noua valoare a unui pixel este dependent
a de valorile
tuturor pixelilor imaginii
n acest capitol vom studia doar operatiile punctuale si de pseudocolorare.
Prin mbun
at
atire, unei imagini nu i se adaug
a nici o informatie nou
a fata de cea ce exista
initial [9] (deci nu se adaug
a nimic imaginii), ci doar este prezentat altfel continutul initial
al acesteia. Desi la o examinare superficial
a afirmatia este corect
a, putem g
asi m
acar dou
a
obiectii (sau contraexemple) la aceast
a formulare:
din punctul de vedere al utilizatorului, informatia, chiar dac
a exist
a, nu poate fi
folosit
a, deci este asimilabil nul
a. Acesta este cazul imaginilor obtinute n conditii
extreme de iluminare, ce prezint
a un contrast foarte slab (imagini subexpuse sau
supraexpuse) [5].
din punctul de vedere al teoriei informatiei, informatia din imagine poate fi asimilat
a
entropiei procesului aleator ale c
arui realiz
ari particulare sunt valorile de gri ale
pixelilor. Entropia se modific
a ns
a la orice transformare ce afecteaz
a distributia
nivelelor de gri din imagine.

2.1

Operatii punctuale de modificare a contrastului

Operatiile punctuale de modificare a contrastului (numite si transform


ari ale nivelului de
gri) sunt asocieri (mapping, n englez
a) ce leag
a nivelul de gri original de noua sa valoare.
O asemenea asociere nu este altceva dect o functie:
v = T (u), u [0; L 1]

(2.1)

n [5] se stabilesc ca necesare conditiile ca:


transformarea T s
a p
astreze gama admisibil
a de valori ale imaginii (dac
a nivelele
de gri au fost reprezentate pe L nivele de cuantizare, atunci 0  T (u)  L 1,
u [0; L 1])
18

transformarea T s
a fie monoton
a (cresc
atoare sau descresc
atoare) pentru a p
astra
ordinea ntre nivelele de gri

2.1.1

Modificarea liniar
a a contrastului

Cea mai des folosit


a tehnic
a de modificare liniar
a a contrastului este o transformare liniar
a
pe portiuni, dat
a de:

T1 u, 0 u < T1
+ T
(u T1 ) , T1 u < T2
v=
(2.2)
2 T1

L1
+ L1T2 (u T2 ) , T2 u < L

n formula anterioar
a, parametrii de control sunt T1 , T2 , si ; acestia sunt grupati
cte doi, definind punctele (T1 ,) si (T2 ,). Aceste dou
a puncte de control, mpreun
a cu
punctele fixe (0, 0) si (L 1, L 1) vor defini cele trei segmente de dreapt
a ce apar n
formula (2.2). Rezultatul aplic
arii unei asemenea operatii punctuale se obtine modificnd
valoarea (nivelul de gri) fiec
arui pixel al imaginii initiale, u, conform (2.2), obtinnd noul
nivel de gri v. Transformarea poate fi f
acut
a n dou
a moduri: fie se repet
a calculele de la
(2.2) pentru fiecare pixel, baleind imaginea, fie noile valori ale contrastului se calculeaz
a
de la nceput pentru toate nivelele de gri posibile (ntre 0 si L1) si apoi aceste modific
ari
se aplic
a imaginii. Codul C urm
ator implementeaz
a a doua variant
a de calcul, care este
mai rapid
a (calculele nivelelor de gri au fost separate de ciclul de baleiere al imaginii si
au fost eliminate structurile conditionale if - impuse de definitia de tip acolad
a - prin
separarea domeniilor de calcul n trei cicluri). Trebuie remarcat
a de asemenea definirea
nivelului de gri ca unsigned int, ceea ce creaz
a posibilitatea folosirii unui num
ar de nivele
de gri mai mare de 256 (pentru care ar fi fost suficient un unsigned char).

unsigned int T1,T2,alfa,beta,gri_vechi,i,j;


gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
for (gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1;
for (gri_vechi=T1;gri_vechi<T2;gri_vechi++)
gri_nou[gri_vechi]=alfa+(beta-alfa)*(gri_vechi-T2)/(T2-T1);
for (gri_vechi=T2;gri_vechi<L;gri_vechi++)
gri_nou[gri_vechi]=beta+(L-1-beta)*(gri_vechi-T1)/(L-1-T2);
for (i=0;i<NRLIN;i++)
for (j=0;j<NRCOL;j++)
imagine_noua[i][j]=gri_nou[imagine_veche[i][j]];
Vom prezenta n cele ce urmeaz
a un exemplu; n figura 2.1 este prezentat
a pe de o parte
imaginea original
a lena (una dintre fotografiile impuse ca standard de fapt n raportarea
rezultatelor obtinute), iar al
aturat imaginea obtinut
a cu o modificare liniar
a pe portiuni
19

a contrastului, determinat
a de parametrii T1 = 30, T2 = 100, = 20, = 200. n figura
2.2 este prezentat
a functia de transformare a nivelelor de gri (T (u)).

Fig. 2.1: Imagine original


a si imagine cu contrastul modificat

Fig. 2.2: mbun


at
atire liniar
a pe portiuni, definit
a de punctele (0,0), (30,20), (100,200),
(255,255)
Vizibilitatea componentelor scenei este n general determinat
a n cea mai mare parte de
contrastul zonei din imagine; contrastul este o m
asur
a proportional
a cu diferenta dintre
luminozitatea anumitor pixeli (nivelul lor de gri). Pentru a putea prevedea deci efectele
unei operatii de mbun
at
atire de tipul prezentat asupra contrastului este deci suficient
a
studierea diferentelor de nivele de gri ntre o aceeasi pereche de pixeli nainte si dup
a
efectuarea transform
arii. La limit
a, este posibil ca pixelii s
a aib
a nivelul de gri original
diferit cu doar o unitate (cuanta minim
a), si atunci modificarea contrastului va fi dat
a
20

de diferenta valorilor transformate, adic


a de derivata functiei de transformare:
C=

v
T (u2 ) T (u1 )
dT (u)
=
=
= T (u)
u
u2 u1
du

(2.3)

Pentru functia liniar


a pe portiuni este evident c
a derivata va fi constant
a pe aceleasi
intervale, avnd valoarea egal
a cu panta segmentului de dreapt
a.

, dac
a u [0; T1 ]

T1

,dac
a u [T1 ; T2 ]
(2.4)
C=
T2 T1
L1
, dac
a u [T2 ; L 1]
L1T2

Dac
a pe un interval aceast
a pant
a este subunitar
a, atunci diferenta ntre nivelele al
aturate de gri se micsoreaz
a si deci contrastul scade; dac
a din contr
a, panta dreptei este
supraunitar
a, diferenta dintre nivelele de gri al
aturate se m
areste si contrastul va creste.
Spre exemplu, n transformarea din figura 2.2, pe intervalul [30,100] contrastul creste, iar
pe intervalele [0,30] si [100,255] contrastul scade. Aceste efecte sunt usor vizibile pe imaginile din figura 2.1: de exemplu sc
aderea contrastului pentru nivelele de gri de la cap
atul
superior al gamei admise (dinspre alb) se observ
a prin disparitia detaliilor luminoase din
imagine (panglica lat
a de la p
al
arie); cresterea contrastului pe intervalul [30,100] (deci
griuri nchise) este vizibil n zona penei de p
al
arie, ale c
arei detalii sunt acum mult mai
sesizabile.
n functie de alegerea celor patru parametri, se pot obtine cteva cazuri particulare de
interes ce poart
a denumiri specifice.

Fig. 2.3: Imagine original


a si imagine binarizat
a cu pragul 125
Dac
a T 1 = T 2 si = 0, = L 1, se obtine pr
aguirea sau binarizarea (thresholding)
(vezi figura 2.4); n imaginea rezultat
a nu exist
a dect alb si negru (figura 2.3); toate
21

nivelele de gri initiale a c


aror valoare era mai mic
a dect T1 fiind negre si toate nivelele
de gri initiale mai mari ca T1 devenind albe. Dup
a cum se va vedea la capitolul de
segmentare orientat
a pe regiuni (capitolul 8), aceasta este si una dintre tehnicile cele mai
simple de segmentare. n urma acestei transform
ari, contrastul este maximizat la nivelul
ntregii imagini.

Fig. 2.4: Transformarea de binarizare


Dac
a = 0 si = L 1 se obtine operatia de ntindere maxim
a a contrastului (contrast
streching) (vezi figura 2.5) pentru intervalul [T1 ; T2 ]. Nivelele de gri care se g
asesc n afara
acestui interval vor fi nlocuite fie cu alb, fie cu negru.

Fig. 2.5: Transformarea de ntindere maxim


a a contrastului

22

2.1.2

Modificarea neliniar
a a contrastului

Principalul dezavantaj al tehnicii liniare pe portiuni prezentate este faptul c


a modificarea
contrastului este aceeasi pe un ntreg interval de nivele de gri, si nu este posibil
a o
modificare neuniform
a a contrastului pe ntregul interval de nivele de gri sau n jurul
unui anume nivel de gri. Tehnicile neliniare au aceste propriet
ati.
O prim
a variant
a este compandarea domeniului [9], definit
a de o curb
a logaritmic
a si cu
punctele fixe (0, 0) si (L 1, L 1):
v = T (u) =

L1
lg(1 + u)
lg L

(2.5)

Contrastul va varia neuniform de-a lungul scalei de gri, m


arindu-se la cap
atul inferior
(negru) si micsorndu-se la cap
atul superior (alb). n mod reciproc se poate defini expandarea domeniului, ca transformare invers
a celei de compandare, si deci avnd o alur
a
exponential
a:
eu 1
v = T (u) = (L 1) L1
(2.6)
e
1
Contrastul va varia neuniform de-a lungul scalei de gri, m
arindu-se la cap
atul superior (alb) si micsorndu-se la cap
atul inferior (negru). Termenii de compandare si de
expandare au fost dati prin asem
anare cu transform
arile folosite n teoria cod
arii si cuantiz
arii (ce intervin n metodele de cuantizare a semnalului vocal pentru telefonia digital
a,
cunoscute sub numele de legea A n Europa si legea n America). Trebuie ns
a subliniat
c
a n prelucrarea imaginilor aceste transform
ari nu afecteaz
a domeniul de valori, care
r
amne [0, L 1].
Alte transform
ari neliniare pot fi obtinute prin folosirea unor functii de tip putere; si
acestea au nivelele de gri extreme ca puncte fixe ((0, 0) si (L 1, L 1)). O prim
a
variant
a este functia putere:
v = T (u) = (L 1)

u
L1

(2.7)

Dup
a valorile parametrului-putere r se pot obtine dou
a comport
ari diferite: pentru r < 1
comportarea este de acelasi tip cu al functiei de compandare logaritmice, iar pentru r > 1
comportarea este de tipul functiei de expandare. Trebuie remarcat c
a legile de variatie
ale contrastului vor fi ns
a diferite.
Exist
a ns
a si o variant
a la care se mai adaug
a un punct fix (T, T ), functia devenind cu
dou
a intervale de definitie:
r

v = T (u) =

T Tu , dac
a u [0; T ]
L1u r
a u [T, L 1]
L 1 (L 1 T ) L1T , dac

Functia are o alur


a de tipul celei prezentate n figura 2.6.
23

(2.8)

Fig. 2.6: Modificare neliniar


a a contrastului, cu trei puncte fixe
n [9], n cadrul operatiilor punctuale de mbun
at
atire a imaginilor sunt prezentate si
operatii aritmetice simple, ca de exemplu negativarea. Negativarea este descris
a de:
v = T (u) = L 1 u

(2.9)

Efectul acesteia de modificare a contrastului se bazeaz


a doar pe caracteristicile sistemului vizual uman, pentru care contrastul depinde de diferenta de luminozitate ntre pixeli
apartinnd unui obiect, respectiv fundalului, raportat
a la luminanta medie a fundalului.
O categorie aparte de aplicatii n care sunt utile asemenea inversiuni este analiza imaginilor medicale, care pentru o analiz
a automat
a trebuiesc inversate; un astfel de exemplu
este imaginea angiografic
a din figura 2.7.

Fig. 2.7: Imagine original


a si negativat
a (dintr-o aplicatie medical
a)
Alte operatii posibile (tratate n [9], dar de mai mic
a semnificatie practic
a) sunt repre24

zentarea planelor de bit (pentru fiecare pixel al imaginii, fiecare bit al reprezent
arii binare
a nivelului de gri este considerat ca valoarea unui pixel al unei imagini binare), transformarea de lipire clipping (care p
astreaz
a nemodificate nivelele de gri dintr-un anumit
interval si le anuleaz
a pe celelalte - imaginea rezultat
a continnd obiectele de interes pe
fond negru) si transformarea de t
aiere slicing (care transform
a nivelele de gri dintr-un
interval fixat n alb si tot restul n negru; nu este altceva dect un alt tip de binarizare).

2.2

Pseudocolorarea

Pseudocolorarea este o tehnic


a de mbun
at
atire a vizibilit
atii anumitor componente ale
imaginii (sau a imaginii n ansamblu) prin modificarea paletei de culoare cu care imaginea
este afisat
a (reprezentat
a). Aceasta nseamn
a c
a pentru anumite nivele de gri, afisarea
nu se va mai face cu culoarea a c
arei componente sunt toate egale cu indexul (nivelul de
gri), ci cu o alt
a culoare. Acest
a definitie acoper
a ns
a si cazul operatiilor de modificare
a contrastului prezentate anterior; functia v = T (u) nu este altceva dect o functie de
constructie a unei noi palete de culoare pentru aceeasi imagine. Spre exemplu, codul
modific
arii neliniare de contrast devine:
unsigned int T1,T2,alfa,beta,gri_vechi;
gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
for (gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1;
for (gri_vechi=T1;gri_vechi<T2;gri_vechi++)
gri_nou[gri_vechi]=alfa+(beta-alfa)*(gri_vechi-T2)/(T2-T1);
for (gri_vechi=T2;gri_vechi<L;gri_vechi++)
gri_nou[gri_vechi]=beta+(L-1-beta)*(gri_vechi-T1)/(L-1-T2);
for (gri_vechi=0;gri_vechi<L;gri_vechi++)
setpalette(gri_vechi,(color) gri_nou[gri_vechi]);
Ultima bucl
a for a codului modific
a paleta de culoare pentru fiecare index (intrare) a
acesteia, conform noilor valori calculate. Remarcati cast-ul (schimbarea de tip) la tipul
color; acesta este inserat mai mult ca o m
asur
a de atentionare: culoarea (deci variabila de
tip color) trebuie obtinut
a din scalarul nivel de gri n conformitate cu regulile de descriere
a culorilor valabile n respectivul mod grafic.
Ideea de baz
a n pseudocolorare este de a folosi culori pentru a pune n evidenta zone
de interes din imagini cu nivele de gri (exist
a si varianta color
arii false - false coloring,
care transform
a o imagine color ntr-o alt
a imagine color, dar cu un contrast mult mai
pronuntat si artificial ntre elementele sale). Acest
a idee este normal
a dac
a se are n
vedere faptul c
a ochiul (sistemul vizual) uman distinge ceva mai putin de 256 nuante de
gri, desi diferentiaz
a cteva milioane de culori [9].
25

O aplicatie interesant
a a pseudocolor
arii este prezentat
a n [2]. La NASA, la nceputurile
erei digitale n tehnicile de achizitie a imaginilor, era necesar
a digitizarea unor imagini de
microscopie, pentru care iluminarea era reglat
a manual, pn
a la o vizibilitate maxim
aa
tuturor detaliilor. Pentru c
a operatorul nu putea distinge clar si precis care era iluminarea
cea mai potrivit
a (care nici nu producea suprailuminare si nici nu l
asa umbre mai mari
dect era necesar), la afisarea n timp real a imaginii achizitionate pe monitoarele de
control, paleta de griuri a fost modificat
a pe ultima pozitie (alb), unde s-a inserat rosu.
Atunci instructiunile pentru operator erau: creste curentul prin lamp
a (iluminarea) pn
a
cnd n imagine apare rosu, dup
a care redu curentul pn
a cnd culoarea rosie dispare.
Rezultatul acestei tehnici simple au fost mii de imagini digitizate corect.
n final merit
a poate amintit
a remarca (destul de acid
a) din [2]:
Desi prin natura sa este un detaliu al tehnicilor de afisare, pseudocolorarea
a fost adesea glorificat
a prin termeni ca prelucrare prin pseudocolorare sau
analiz
a prin pseudocolorare. Pseudocolorarea r
amne un accesoriu favorit al
vnz
atorilor, care o utilizeaz
a adesea n demonstratiile produselor [software],
deoarece poate strni interesul n ochii clientilor mult mai repede dect orice
alt
a metod
a de afisare cunoscut
a. Cercet
arile mele au adus la lumin
a o list
a
dureros de scurt
a a aplicatiilor demonstabil productive a pseudocolor
arii

2.3

Operatii de contrastare bazate pe histograma imaginii

Pentru o imagine f de M N pixeli si L nivele de gri, histograma este definit


a (2.10)
ca probabilitatea (frecventa relativ
a) de aparitie n imagine a diferitelor nivele de gri
posibile.

h(i) =

1
MN

M1 N1
m=0 n=0

(i f(m, n)) , i = 0, 1, ...L 1

(2.10)

Din punct de vedere statistic, putem considera valoarea fiec


arui pixel al imaginii ca o
realizare particular
a a unei variabile aleatoare asociat
a nivelelor de gri, caz n care histograma (2.10) este functia de densitate de probabilitate a acestei variabile aleatoare.
Fiind o functie de densitate de probabilitate, histograma oric
arei imagini verific
a conditia
L1

de normare

h(i) = 1.
i=0

Din punct de vedere practic, calculul histogramei unei imagini nseamn


a parcurgerea
punct cu punct a imaginii si contorizarea num
arului de nivele de gri ntlnite. Presupunnd L nivele de gri posibile n imaginea de dimensiuni NRLIN si NRCOL, codul
26

urm
ator aloc
a pentru fiecare nivel de gri posibil cte un unsigned int, ce va contoriza
num
arul de aparitii ale nivelului de gri respectiv. Pentru fiecare punct al imaginii se
incrementeaz
a pozitia din histogram
a ce corespunde valorii de gri din acel pixel. Ceea
ce rezult
a n final difer
a de histograma descris
a de (2.10) prin constanta de normare
num
arul total de puncte ale imaginii (deci M N sau NRLIN*NRCOL); este evident c
a
valorile obtinute pot fi normate pentru a obtine o functie de densitate de probabilitate
prin mp
artirea cu NRLIN*NRCOL si definirea histogramei ca fiind format
a din real sau
float.
histo=(unsigned int*)malloc(L*sizeof (unsigned int));
for (i=0;i<L;i++)
histo[i]=0;
for (i=0;i<NRLIN;i++)
for (j=0;j<NRCOL;j++)
histo[imagine[i][j]]++;
n Matlab, implementarea oric
arei functii este cu att mai eficient
a (din punctul de vedere
al timpului de rulare) cu ct sunt evitate structurile repetitive (n particular buclele for).
Cum, pentru calculul histogramei, ciclarea nu poate fi evitat
a (deci trebuie parcurse fie
toate punctele imaginii, fie toate nivelele de gri), se alege varianta care implic
a repetarea
minim
a a cicl
arii:
histo=zeros(1,L);
for i=1:L
p=find(imagine==i);
histo(i)=length(p);
% histo(i)=length(p)/prod(size(imagine));
end
Functia find (functie standard a pachetului Matlab) returneaz
a pozitiile (indicii) la care
este g
asit
a valoarea i n matricea imagine (adic
a ntoarce pozitiile punctelor ce au valoarea
i); num
arnd aceste puncte (deci calculnd lungimea vectorului n care sunt stocate) se
g
aseste num
arul de puncte ce au respectivul nivel de gri. Normarea histogramei se poate
face f
ar
a a modifica declaratiile de definire a structurilor (pentru Matlab este indiferent
dac
a se stocheaz
a ntregi sau numere cu parte zecimal
a). Acest
a structur
a este mai rapid
a
dect cea prin care se parcurgea toat
a imaginea deoarece se foloseste o singur
a bucl
a de
lungime L (si nu dou
a bucle imbricate, de lungime total
a NRLIN*NRCOL), iar functia
find este rapid
a, fiind o functie precompilat
a.
Histograma imaginii ofer
a informatii asupra plasamentului n nuanta a continutului
imaginii (vezi figura 2.8). La majoritatea imaginilor exist
a o distributie neuniform
a a
nivelelor de gri; exist
a nivele de gri predominante si exist
a nivele de gri folosite putin sau
27

deloc. Operatiile de mbun


at
atire a imaginilor (pentru mbun
at
atirea perceptiei vizuale)
au ca scop redistribuirea nivelelor de gri, astfel ca acestea s
a ocupe ntreaga gam
a de
variatie disponibil
a, n mod uniform: aceasta este egalizarea de histogram
a [9], [18].

Fig. 2.8: Imagine cu nivele de gri si histograma acesteia

Scopul egaliz
arii de histogram
a este deci obtinerea unei distributii uniforme a nivelelor de
gri; imaginea rezultat
a va prezenta cea mai mare mbun
at
atire a contrastului, distribuit
regulat n ntreaga gam
a dinamic
a a nivelelor de gri. Din punct de vedere matematic,
egalizarea de histogram
a nseamn
a transformarea unei distributii oarecari (descris
a de histograma imaginii initiale) ntr-o distributie uniform
a. Considernd variabilele aleatoare
X(, x) si Y (, y) legate prin Y = g(X), atunci ntre functiile de densitate de probabilitate
a celor dou
a variabile aleatoare exist
a relatia [16]:
fY (y) = fX (x)

1
|x=g1 (y)
(g 1 (y))

Dac
a dorim ca functia de densitate de probabilitate fY (y) s
a fie uniform
a (n conditiile
n care functia de densitate de probabilitate fX (x) este dat
a), atunci nseamn
a c
a vom
avea (g 1 (y)) = k1 fX (g 1 (y)). Rezolvarea acestei ecuatii produce solutia y = g(x) =
x

fX (t)dt.

Pentru cazul particular al imaginilor, variabila aleatoare X ia valori naturale - nivelele


de gri. Functia de densitate de probabilitate fX (x) este histograma [normat
a] a imaginii
x

iar functia de transformare devine y = g(x) =

fX (t)dt. Tinnd

seama c
a valorile de
0

gri sunt discrete, integrala se transform


a n sum
a si acest
a form
a nu este altceva dect

28

histograma cumulativ
a a imaginii; dac
a h este histograma imaginii, atunci
x

h(i)

g(x) = H(x) =

(2.11)

i=0

Valorile functiei trebuie ns


a redistribuite n intervalul permis de valori de gri, ceea ce
duce la deducerea formulei care exprim
a noile valori de gri:
v=

H(u) H(0)
(L 1) + 0.5
M N H(0)

(2.12)

O variant
a de cod care realizeaz
a egalizarea de histogram
a este prezentat
a n continuare. Trebuie remarcat c
a modul de calcul al histogramei cumulative este de tip iterativ,
bazndu-se pe formula H(x) = H(x 1) + h(x), ce se poate deduce imediat din (2.11).
Mai trebuie de asemenea remarcat c
a se foloseste o histogram
a nenormat
a.
gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
histo_cum=(unsigned int *) malloc (L*sizeof(unsigned int));
tot=NRLIN*NRCOL;
histo_cum[0]=histo[0];
for (i=1;i<L;i++)
histo_cum[i]=histo_cum[i-1]+histo[i];
for (i=0;i<L;i++)
gri_nou[i]=round((histo_cum[i]-histo_cum[0])*(L-1)/(tot-histo_cum[0]));
Figurile urm
atoare prezint
a o imagine original
a (lena) si rezultatul egaliz
arii de histogram
a, precum si histogramele originale si egalizate (figura 2.9). Ceea ce se remarc
a
cu usurinta este diferenta dintre histograma obtinut
a si histograma perfect uniform
a
dorit
a. Unul dintre efectele secundare notabile este introducerea de nivele de gri lips
a n
histograma egalizat
a (aspectul n pieptene al acesteia).

Imagine original
a

Imagine dup
a egalizarea de histogram
a
29

800

600

400
200

50

100

150

200

250

300

Fig. 2.9: Histograma imaginii lena, nainte si dup


a egalizare
Alte variante de egalizare a histogramei [18] folosesc histograme modificate ale imaginii
(prin contabilizarea doar a anumitor pixeli) sau limiteaz
a amplitudinea vrfurilor histogramei, redistribuind uniform pixelii n exces.
Tehnica de egalizare a histogramei poate fi extins
a prin realizarea unei histograme de
form
a impus
a (dar oarecare) a imaginii rezultat; aceast
a metod
a este denumit
a specificare
de histogram
a [9], [5].
O ultim
a remarc
a se poate referi la validitatea introducerii tehnicilor de mbun
at
atire a
histogramei n categoria de operatii punctuale. Majoritatea autorilor consider
a c
a orice
operatie care este echivalent
a cu modificarea paletei de culoare a imaginii este o operatie
punctual
a. n acelasi timp ns
a, noile valori de gri ale fiec
arui punct sunt calculate pe
baza histogramei imaginii, deci pe baza unei m
asuri ce ia n calcul valorile din ntreaga
imagine; din acest punct de vedere, egalizarea de histogram
a poate fi inclus
a n categoria
operatiilor integrale.

30

Capitolul 3
A
FILTRAREA LINIARA
IMAGINILOR
Odat
a cu operatiile de filtrare liniar
a, se ncepe studiul operatorilor de vecin
atate: operatorii al c
aror rezultat depinde att de valoarea punctului n care au fost aplicati, ct
si de valorile unui num
ar de alte puncte vecine (nu neap
arat topologic) punctului curent
de calcul. Filtrarea se cheam
a liniar
a pentru c
a operatia verific
a principiul superpozitiei
(liniarit
atii): pentru dou
a imagini f1 si f2 , doi scalari a1 si a2 si operatorul liniar L avem
L(a1 f1 + a2 f2 ) = a1 L(f1 ) + a2 L(f2 )

(3.1)

Operatia de filtrarea liniar


a calculeaz
a noua valoare a unui pixel al imaginii (din pozitia
(m, n)) ca o combinatie liniar
a (medie ponderat
a) a unui num
ar de valori din imaginea
original
a:
wkl f (m k, n l)
(3.2)
v(m, n) =
(k,l)W

W este vecin
atatea punctului curent n care se face calculul; W este numit
a masc
a sau
fereastr
a de filtrare si este o form
a plan
a, descris
a ca o multime de puncte din spatiul
cartezian, n coordonate relative (deci n alt sistem de coordonate dect sistemul de
coordonate a imaginii). Scalarii wkl sunt atasati pozitiilor (k, l) din fereastra de filtrare
si poart
a numele de coeficienti ai filtrului. Spre exemplu, o masc
a simpl
a de mediere este
media aritmetic
a a valorilor dintr-o vecin
atate p
atrat
a de 3 x 3 pixeli, centrat
a n pixelul
curent; pentru acest caz, toti coeficientii vor avea valoarea 1/9 si masca de filtrare W
va fi: W = {(0, 0), (1, 0), (1, 0), (0, 1), (1, 1), (1, 1), (0, 1), (1, 1), (1, 1)}. Pentru
acest caz particular, expresia (3.2) devine:
1

v(m, n) =

f (m k, n l)
9
k=1 l=1
31

(3.3)

adic
a, desf
asurat, v(m, n) = f (m+1,n1)
+ f (m+1,n)
+ f (m+1,n+1)
+ f (m,n)
+ f (m,n1)
+ f (m,n+1)
+
9
9
9
9
9
9
f (m+1,n1)
f (m+1,n)
f (m+1,n+1)
+
+
. Acelasi lucru se poate exprima si prin specificarea
9
9
9

1/9 1/9 1/9


matricial
a a m
astii de filtrare si marcarea originii acesteia, ca W = 1/9 1/9 1/9 .
1/9 1/9 1/9

Formula de definitie (3.2) nu este altceva dect suma produselor punct cu punct a coeficientilor m
astii si a valorilor pixelilor imaginii din zon
a de imagine peste care a fost
suprapus
a masca. Aceast
a sum
a de produse se calculeaz
a pentru fiecare punct al imaginii,
deplasnd masca. Descrierea algoritmului nu este ns
a altceva dect descrierea plastic
a
a unei operatii de convolutie bidimensional
a, n care, prin conventie, masca de filtrare
este considerat
a nucleul de convolutie. Deplasarea m
astii (ferestrei de filtrare) a condus
la adoptarea denumirii de tehnic
a a ferestrei glisante; aplicarea acesteia se poate descrie
simplu:
se plaseaz
a originea ferestrei de filtrare (pe rnd) n fiecare punct al imaginii si se
selecteaz
a punctele imaginii situate n interiorul ferestrei (putem imagina fereastra
de filtrare ca fiind o apertur
a ntr-o plac
a opac
a; ntr-o anumit
a pozitie a acesteia
valorile selectate din imagine sunt valorile punctelor ce se v
ad prin apertur
a).
pentru fiecare pozitie se face suma produselor punct cu punct coeficient masc
avaloare pixel.
Fereastra de filtrare este deci definit
a de form
a (multimea W ) si valori (coeficientii wkl ).
Cele mai simple ferestre de filtrare sunt cele de form
a p
atrat
a, avnd originea n centru
(deci fiind p
atrate de dimensiuni impare: 3 x 3, 5 x 5, etc.) - de tipul celei prezentate
n exemplul anterior. Fereastra de filtrare are n general o dimensiune mult mai mic
a
dect dimensiunile imaginii (mai sunt numite si nuclee mici, f
acnd referinta la operatia
de convolutie). Codul care urmeaz
a exemplific
a aceast
a cea mai simpl
a filtrare, cu un
nucleu de dimensiune 3 x 3. Se remarc
a alocarea static
a a coeficientilor w ai filtrului
(numere reale) si alocarea dinamic
a a imaginii rezultat (considerat
a aici ca avnd valori
ntregi). Calculul valorilor pixelilor din imaginea filtrat
a s-a f
acut decupnd cte un rnd
si o coloan
a de la extremit
atile imaginii originale (pentru a evita efectele de margine, n
care masca debordeaz
a n afara imaginii), acestea fiind completate n imaginea rezultat
prin copierea valorilor originale. O alt
a variant
a de evitare a efectelor de margine este
bordarea (completarea) imaginii la capete cu cte o linie si o coloan
a cu valori nule. De
asemenea, se poate constata c
a n expresia de calcul efectiv indicii tabelului de coeficienti
ai m
astii au fost deplasati, astfel nct indicele minim s
a fie 0, si nu negativ.
real w[3][3];
img_out=(int**)malloc(NRLIN*sizeof(int*));
for (i=0;i<NRLIN;i++)
32

img_out[i]=(int*)malloc(NRCOL*sizeof(int));
for (i=0;i<NRCOL;i++)
{ img_out[0][i]=img[0][i];
img_out[NRLIN-1][i]=img[NRLIN-1][i];}
for (i=0;i<NRLIN;i++)
{ img_out[i][0]=img[i][0];
img_out[i][NRCOL-1]=img[i][NRCOL-1];}
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++)
img_out[i][j]=round(w[1][1]*img[i][j]+w[1][0]*img[i][j-1]+
w[1][2]*img[i][j+1]+w[0][1]*img[i-1][j]+w[0][0]*img[i-1][j-1]+
w[0][2]*img[i-1][j+1]+w[2][1]*img[i+1][j]+w[2][0]*img[i+1][j-1]+
w[2][2]*img[i+1][j+1]);
Pentru o imagine p
atrat
a de dimensiune N si o masc
a de filtrare p
atrat
a de dimensiune
n, num
arul de operatii necesare unei filtr
ari liniare este de N 2 n2 nmultiri si N 2 (n2 1)
adun
ari, adic
a complexitatea de calcul este O[N 2 ], att fata de dimensiunile imaginii ct
si fata de dimensiunile ferestrei de filtrare. Aceasta duce la constrngerea practic
a de a
folosi ferestre de filtrare ct mai mici (si de a ncerca descompunerea ferestrelor mari de
filtrare ntr-o succesiune de ferestre mai mici - spre exemplu o filtrare cu un nucleu de 5 x
5, care ar necesita 25 de operatii pentru fiecare pixel, poate fi echivalat
a cu dou
a filtr
ari
succesive cu nuclee de 3 x 3 pixeli, care necesit
a doar 18 operatii pentru fiecare pixel). n
figurile urm
atoare se prezint
a efectul unei operatii de mediere cu un nucleu de 7 x 7: se
remarc
a faptul c
a imaginea rezultat este mai neclar
a si cetoas
a (efect de blur) si c
a toate
contururile au devenit mai vagi.

Rezultatul unei filtr


ari de mediere

Imagine original
a

33

3.1

Filtrarea liniar
a de netezire

Efectul de ncetosare a unei imagini poate fi considerat si ca un efect de mbun


at
atire
a uniformit
atii regiunilor [18]. Aceasta nseamn
a c
a se elimin
a micile diferente dintre
valorile pixelilor apartinnd unei aceleiasi regiuni (zone cu intensitate luminoas
a relativ
constant
a). Acesta este fundamentul metodelor de reducere a zgomotului alb aditiv
gaussian (normal) suprapus imaginii: un asemenea zgomot ce afecteaz
a o regiune absolut
uniform
a (n care toti pixelii ce o formeaz
a au aceeasi valoare) produce variatia valorilor
din interiorul acesteia, deci micsoreaz
a uniformitatea. Variatiile introduse sunt cu att
mai mari cu ct puterea zgomotului este mai mare; pentru un zgomot de medie nul
a
(asa cum este zgomotul alb gaussian aditiv) puterea este identic
a cu varianta. Teoria
proceselor aleatoare [16] arat
a c
a, pentru o combinatie liniar
a de realiz
ari ale unei variabile
n

aleatoare y =

ai xi , varianta noii variabile aleatoare este proportional


a cu varianta
i=1

variabilei aleatoare din care au provenit realiz


arile particulare: 2y =

n
i=1

a2i 2x . Deci, prin

medierea a n realiz
ari ale unei variabile aleatoare, varianta este redus
a de n ori (ai = n1 ).
M
asurile de calitate folosite pentru a caracteriza n mod obiectiv calitatea unei imagini
(sau rezultatul unei prelucr
ari) sunt extensii bidimensionale ale m
asurilor de calitate
folosite pentru caracterizarea semnalelor unidimensionale. Dac
a consider
am f imaginea
original
a (corect
a) si g imaginea a c
arei calitate trebuie determinat
a (g este considerat
a
c
a provine din f prin suprapunerea unui zgomot aditiv), rapoartele de calitate cele mai
utilizate sunt: raportul semnal zgomot (Signal to Noise Ratio - SNR) (3.4), raportul
semnal de vrf zgomot (Peak Signal to Noise Ratio - PSNR) (3.5), eroare p
atratic
a medie
(Mean Squared Error - MSE) (3.6) si eroarea medie absolut
a (Mean Absolute Error MAE) (3.7).
N

SN R = 10 log

f 2 (n, m)

n=1 m=1
M

n=1 m=1

dB

(3.4)

(g(m, n) f (n, m))


2

NM
P SN R = 10 log

1
M AE =
NM

n,m

(3.5)

(g(m, n) f(n, m))

n=1 m=1
N

dB
2

n=1 m=1

1
M SE =
NM

max f (n, m)

(g(m, n) f (n, m))2

(3.6)

|g(m, n) f (n, m)|

(3.7)

n=1 m=1

34

Fig. 3.1: Imagine degradat


a de un zgomot aditiv gaussian

Fig. 3.2: Reducerea zgomotului prin filtrarea de mediere


Figurile urm
atoare prezint
a o imagine degradat
a cu un zgomot aditiv, alb, gaussian,
de medie nul
a (figura 3.1 SNR=16.97 dB, PSNR=22.43 dB, MAE=15.22) si imaginea
filtrat
a cu un filtru liniar de mediere aritmetic
a, cu fereastr
a 3 x 3 (figura 3.2 SNR=19.33
dB, PSNR=24.79 dB, MAE=9.31). Se poate observa att o calitate vizual
a mai bun
a
(regiuni mai uniforme) ct si factori de calitate mai buni (SNR si PSNR mai mari, MAE
mai mic).

Un caz particular de interes este considerarea regiunilor constante (absolut uniforme) ale
imaginii; n aceste regiuni toti pixelii vor avea aceeasi valore, si deci uniformitatea nu mai
poate fi mbun
at
atit
a. n acelasi timp, operatia de filtrare de netezire trebuie s
a p
astreze
aceast
a valoare constant
a a pixelilor (pe care o vom nota cu ); nlocuind n formula de
35

definitie a filtr
arii liniare (3.2), vom obtine c
a
wkl

=
(k,l)W

adic
a:
wkl = 1

(3.8)

(k,l)W

Aceast
a conditie (suma coeficientilor m
astii de filtrare s
a fie unitar
a) se numeste conditia
de normare a nucleelor de filtrare de netezire si defineste un astfel de nucleu.
Nucleele de filtrare folosite nu trebuie limitate strict la nucleele ce realizeaz
a media aritmetic
a ntr-o vecin
atate p
atrat
a, centrat
a n punctul considerat.
M
atoare rea

astile urm

1/16 1/16 1/16


0
1/5
0
lizeaz
a medieri ponderate: W1 = 1/16 1/2 1/16 , W2 = 1/5 1/5 1/5 ,
1/16 1/16 1/16
0
1/5
0

0
1/8
0
1/2 1/6

W3 =
1/8 1/4 1/8 , W4 =
. Nucleul de filtrare poate avea orice
1/6 1/6
0
1/8
0
form
a (deci exist
a o libertate total
a n definirea multimii W (3.2)); n acelasi timp ns
a,
practica a demonstrat suficienta consider
arii unor forme regulate (p
atrate, centrate) pentru masc
a. Orice masc
a poate fi extins
a cu puncte ce au atasat un coeficient nul, pentru a rezulta
o
masc
a
p
a
trat
a
centrat
a
; spre exemplu, masca W4 poate fi scris
a si ca

0
0
0

0 1/2 1/6 ; la fel s-a procedat si cu m


W4 =
astile W2 si W3 . Trebuie remarcat
0 1/6 1/6
c
a toate aceste m
asti respect
a conditia de normare a unui nucleu de netezire (3.8).

3.2

Filtrarea liniar
a de contrastare

Contrastarea unei imagini are ca obiectiv mbun


at
atirea perceperii vizuale a contururilor
obiectelor (mbun
at
atirea detectabilit
atii componentelor scenei de-a lungul frontierelor
acestora). n principiu, acest deziderat se poate realiza prin modificarea valorilor pixelilor
aflati de o parte si de alta a unei frontiere comune.
O experienta de perceptie vizual
a subiectiv
a (benzile lui Mach) a pus n evidenta faptul
c
a sistemul vizual uman are tendinta de a adnci profilul zonelor de tranzitie dintre regiuni
uniforme. Studiul fiziologiei sistemului vizual a demonstrat c
a acesta se realizeaz
a prin
prelucr
ari de tip derivativ ce apar n diferitele etape pe care le parcurge informatia vizual
a;
efectul global poate fi descris ca sc
aderea din semnalul original a unei derivate secunde
a acestuia, ponderat
a corespunz
ator (asa cum prezint
a figurile 3.3 si 3.4, pentru cazul
unidimensional - sectiunea unei frontiere ntre regiunile imaginii).
36

1.5
1
0.5
0
-0.5
0

50

100

150

200

250

Fig. 3.3: Profilul original de tranzitie si profilul adncit prin sc


aderea derivatei secunde
0.1
0.05
0
-0.05
-0.1
0

50

100

150

200

250

Fig. 3.4: Derivata secund


a a profilului original prezentat anterior
Implementarea unei derivate secunde pentru cazul discret va trebui s
a ia n considerare
existenta a dou
a directii de derivare de baz
a si modul de definire a derivatei n cazul discret
(de exemplu prima derivat
a pe directia orizontal
a poate fi f (m, n) = f (m, n+1)f(m, n)
sau f (m, n) = f(m, n) f(m, n 1) sau f (m, n) = f (m, n + 1) f (m, n 1)). M
asti
obisnuite de implementare
a unei derivate secundebidirectionale
(operator
Laplacian)

0
1/4
0
1/4 1/2 1/4
pot fi [9], [19], [5]: W5 = 1/4
1
1/4 , W6 = 1/2
1
1/2 ,
0
1/4
0
1/4 1/2 1/4

1/8 1/8 1/8

W7 =
1/8
1
1/8 .
1/8 1/8 1/8
Pentru un astfel de operator de derivare este esential ca r
aspunsul s
au pentru pixeli din
interiorul unei regiuni absolut uniforme (de valoare ) s
a fie nul (derivata unei constante
este nul
a); pentru aceasta, din formula de definitie a filtr
arii liniare (3.2) avem c
a0=

37

wkl , adic
a:
(k,l)W

(3.9)

wkl = 0
(k,l)W

Aceasta este conditia de normare a unui nucleu de filtrare derivativ


a, pentru care suma
coeficientilor m
astii trebuie deci s
a fie nul
a. Se remarc
a faptul c
a nucleele de derivat
a
secund
a (operatori laplacieni) prezentate anterior verific
a acest
a conditie de normare
(3.9). Figurile urm
atoare prezint
a o imagine slab contrastat
a si varianta sa mbun
at
atit
a
prin contrastare cu nucleul laplacian W5 .

Contrast mbun
at
atit

Imagine original
a

3.3

Filtrarea liniar
a adaptiv
a

Termenul de adaptiv se refer


a la capacitatea filtrului de a-si ajusta comportarea (care este
determinat
a de caracteristicile sale de definitie) n functie de anumite criterii, urm
arind
optimizarea unor m
asuri de calitate. n mod curent, optimizarea m
asurilor de calitate
se traduce n prelucrarea semnalelor unidimensionale prin minimizarea erorii p
atratice
medii (sau, corespunz
ator, maximizarea raportului semnal zgomot). Pe lng
a m
asurile
obiective de calitate, prelucrarea imaginilor adaug
a si o m
asur
a subiectiv
a: confortul
vizual al unui observator, pentru care imaginea dat
a arat
a bine, sau mai bine dect o
alta. Prin procesul de adaptare, n fiecare nou punct prelucrat structura filtrului este
alta, lund n considerare caracteristicile locale pixelului curent prelucrat.
Atta timp ct (cel putin teoretic) n fiecare punct al imaginii operatia este diferit
a
(deoarece se face cu un filtru diferit), filtrarea global
a nu mai este liniar
a (nu mai respect
a
principiul superpozitiei (3.1)).
Adaptarea filtrelor liniare nu poate urm
ari dect dou
a variante: modificarea formei ferestrei de filtrare, sau modificarea coeficientilor unei ferestre de filtrare de form
a fixat
a.
38

Exemplul cel mai folosit de modificare a modificare a formei ferestrei de filtrare este filtrul
de netezire directional
a adaptiv
a [9]. Termenul de filtrare directional
a se refer
a la forma
puternic orientat
a a ferestrei de filtrare (deci fereastra de filtrare nu mai este p
atrat
a, ci va
avea o form
a liniar
a, orientat
a dup
a o anumit
a directie). Pentru fiecare punct al imaginii
se pot considera mai multe orient
ari (deci mai multe directii) posibile pentru masca de
mediere. Pentru fiecare dintre directiile alese se obtine n urma filtr
arii o valoare. n mod
ideal, dorim ca valoarea obtinut
a prin filtrare s
a nu difere n mod semnificativ de valoarea
initial
a din pixelul considerat. O diferenta semnificativ
a poate nsemna c
a punctul curent
este situat pe un contur, si acceptarea acestei valori mult diferite de cea initial
a produce
efectul de ncetosare a imaginii (caracteristic oric
arei filtr
ari de netezire). Solutia adus
a
de filtrul adaptiv este de a alege din setul de valori obtinute pentru diferitele ferestre
de filtrare pe aceea care este cea mai apropiat
a de valoarea initial
a din punctul curent.
Fragmentul de cod urm
ator prezint
a un caz particular de filtrare directional
a adaptiv
a:
ferestrele directionale au trei puncte si sunt alese dup
a cele patru directii principale
(orizontal, vertical si cele dou
a diagonale, adic
a directiile orientate la 0 , 45 , 90 si 135
fata de orizontal
a).
int val_temp1,val_temp2,out0,out45,out90,out135;
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++) {
out0=round((img[i][j]+img[i][j-1]+img[i][j+1])/3);
out90=round((img[i][j]+img[i-1][j]+img[i+1][j])/3);
out45=round((img[i][j]+img[i-1][j+1]+img[i+1][j-1])/3);
out135=round((img[i][j]+img[i-1][j-1]+img[i+1][j+1])/3);
if (abs(out0-img[i][j])>abs(out90-img[i][j]))
val_temp1=out90;
else
val_temp1=out0;
if (abs(out45-img[i][j])>abs(out135-img[i][j]))
val_temp2=out135;
else
val_temp2=out45;
if (abs(val_temp1-img[i][j])>abs(val_temp2-img[i][j]))
img_out[i][j]=val_temp2;
else
img_out[i][j]=val_temp1; }
n cod nu a mai fost inclus
a alocarea de memorie pentru imaginea de iesire img_out si
nici partea de copiere a valorii marginilor imaginii; se remarc
a folosirea a patru variabile
suplimentare out0, out45, out90, out135 care primesc valorile obtinute prin filtrarea directional
a cu masca orientat
a la 0 , 45 , 90 si 135 . Variabilele val_temp1 si val_temp2
sunt folosite apoi pentru a calculul valorii celei mai apropiate de valoarea original
a.
Ideea de a accepta valoarea produs
a de medierea valorilor selectate de fereastra filtrului
39

numai dac
a acest
a valoare este suficient de apropiat
a de valoarea original
a se poate aplica
si pentru filtrarea de netezire cu fereastr
a si coeficienti ficsi [5]. n acest caz rezultatul
netezirii ntr-un punct va fi acceptat doar dac
a diferenta fata de valoarea original
a este
mai mic
a dect un prag impus:

wkl f (m k, n l), dac


a f(m, n)
wkl f (m k, n l) < T
g(n, m) =
(k,l)W
(k,l)W

f (m, n), n rest

O variant
a clasic
a de filtrare liniar
a adaptiv
a, realizat
a prin recalcularea coeficientilor
m
astii de filtrare n fiecare punct al imaginii este prezentat
a n [18]. Acest filtru este
o combinatie liniar
a convex
a a imaginii zgomotoase si a imaginii obtinute din aceasta
printr-o filtrare liniar
a de mediere (cu fereastr
a constant
a), adic
a: f = f + f. O
combinatie liniar
a convex
a se obtine doar dac
a + = 1. Deci
f = f + (1 )f

(3.10)

Imaginea zgomotoas
a f provine dintr-o imagine corect
a g, la care s-a ad
augat un zgomot
alb aditiv de medie nul
a n (n = 0) si necorelat cu imaginea (ng = ng = 0): f = g + n.
Atunci
(3.11)
f = (g + n) + (1 )(g + n) = g + n + (1 )g
Ceea ce defineste filtrul adaptiv este coeficientul ; acesta este calculat local impunnd
optimizarea unei m
asuri de calitate obiective - eroarea p
atratic
a medie ntre imaginea
original
a g si rezultatul filtr
arii f.
2 = f g

= (n + ( 1)(g g))2 = 2 n2 +2(1)ng2(1)ng+(1)2 (gg)2

2 = 2 n2 + 2( 1)ng 2( 1)ng + ( 1)2 (g g)2 = 2 n2 + ( 1)2 (g g)2


2 = 2 2n + ( 1)2 2g

(3.12)

Formula (3.12) arat


a c
a eroarea p
atratic
a medie este suma ponderat
a dintre varianta
2
2
(puterea) zgomotului n si varianta imaginii originale g . G
asirea coeficientului optim
2
nseamn
a g
asirea minimului lui , deci anularea derivatei acestuia.
d2
= 2 2n + 2( 1) 2g = 0
d
=

2g
2n
=
1

2g + 2n
2f

(3.13)

De aici rezult
a expresia final
a a filtrului:
f=

2n
2f
40

f+

2n
f
2f

(3.14)

Se observ
a c
a trebuiesc cunoscute puterea de zgomot si varianta local
a (n fiecare punct)
al imaginii zgomotoase. Adaptarea se face ntre dou
a cazuri limit
a: dac
a puterea de
2
zgomot este mult mai mare dect varianta valorilor imaginii originale ( n
2g ) atunci,
din prima parte a formulei (3.13) rezult
a = 0 si deci filtrul optim este un simplu filtru
de mediere; dac
a varianta valorilor din imagine este mult mai mare dect puterea de
2n , deci este de presupus c
a punctul curent considerat este situat pe un
zgomot ( 2f
contur) atunci = 1 si filtrul optim este un filtru identitate (trece tot). Prezent
am n
continuare codul Matlab ce implementeaz
a acest
a filtrare adaptiv
a:
[NRLIN,NRCOL]=size(img);
for i=2:NRLIN-1
for j=2:NRCOL-1
temp=img(i-1:i+1,j-1:j+1);
temp=temp(:);
varianta_img=std(temp);
alfa=1-varianta_zg/varianta_img;
img_out(i,j)=alfa*img(i,j)+(1-alfa)mean(temp);
end
end
Se folosesc functiile Matlab mean (pentru a calcula media valorilor selectate de fereastra
de filtrare p
atrat
a de 3 x 3) si std (pentru a calcula varianta local
a a imaginii). Se
presupune c
a puterea de zgomot varianta_zg este un parametru cunoscut.
n capitolul urm
ator se va introduce o nou
a posibilitate de caracterizare a efectelor filtr
arii
liniare a imaginilor: reprezentarea n domeniul frecventelor spatiale (o extensie direct
a
a spectrului semnalelor unidimensionale). De asemenea vom ar
ata c
a r
amne valabil
a
teorema convolutiei, prin care vom introduce si o nou
a modalitate de implementare a
filtrelor liniare: filtrarea n domeniul de frecventa.

41

Capitolul 4

TRANSFORMARI
INTEGRALE
UNITARE DISCRETE
4.1

Generalit
ati

Aceast
a categorie de prelucr
ari include operatii de tip integral totalitatea pixelilor
imaginii initiale contribuie la obtinerea valorii fiec
arui pixel din imaginea rezultat. n
[9] se consider
a c
a termenul de transform
ari de imagine se refer
a n mod uzual la o
clas
a de matrici unitare folosite pentru reprezentarea imaginilor. Orice imagine poate fi
reprezentat
a ca o serie de matrici de baz
a ortonormale. Pentru o imagine p
atrat
a U1 de
dimensiune N, o dezvoltare n serie este
N1 N1

Akl V (k, l)

U=

(4.1)

m=0 n=0

a2 (de dimensiuni N N) iar V (k, l) sunt coeficientii


unde Akl sunt matricile de baz
dezvolt
arii n serie. Exprimnd relatia (4.1) la nivelul fiec
arui pixel al imaginii U obtinem
N1 N1

akl (m, n)V (k, l)

U(m, n) =

(4.2)

k=0 l=0

Calculul coeficientilor V (k, l) ai transform


arii se poate face n conditiile impuse de orto1

n acest capitol vom folosi notatiile matriciale si vectoriale clasice: litere mari, drepte si groase pentru
matrici (A este o matrice), litere mici, drepte si groase pentru vectori (v este un vector) si litere nclinate
pentru elementele vectorilor si matricilor (A(i, j), v(m)).
2
Numite uneori si imagini de baz
a.

42

gonalitate si completitudine a matricilor de baz


a Akl prin:
V (k, l) =

N 1 N1

akl (m, n)U (m, n)

(4.3)

m=0 n=0

Multimea coeficientilor transform


arii V (k, l) formeaz
a matricea V, transformata imaginii.
Atunci relatia (4.2) este transformarea direct
a a imaginii, iar relatia (4.3), prin care se
obtine imaginea din transformata sa, este transformata invers
a. Se poate remarca faptul
c
a ambele transform
ari (direct
a si invers
a) necesit
a N 4 operatii de nmultire, si deci o
complexitate O(N 4 ).
Conditia de ortonormalitate a matricilor de baz
a se exprim
a ca
N1 N1

m=0 n=0

akl (m, n)ak l (m, n) = (k k , l l ), k, l, k , l

(4.4)

si asigur
a faptul c
a orice dezvoltare n serie truncheat
a minimizeaz
a eroarea p
atratic
a de
aproximare.
Conditia de completitudine a matricilor de baz
a se exprim
a ca
N1 N 1
k=0 l=0

akl (m, n)akl (m , n ) = (m m , n n ), m, n, m , n

(4.5)

si asigur
a faptul c
a baza de matrici folosit
a este complet
a.
O transformare de tip (4.2) este deci caracterizat
a de cei N 4 coeficienti akl (m, n), ce pot fi
interpretati ca valori ai unei functii de patru variabile (k, l, m, n), cte dou
a pentru fiecare
imagine (initial
a si transformat
a). Aceast
a functie se numeste nucleul transform
arii. Prin
definitie, o transfomare se zice separabil
a dac
a nucleul ei este separabil dup
a perechi de
variabile corespondente:
akl (m, n) = ak (m)bl (n) = a(k, m)b(l, n)

(4.6)

Impunnd conditiile (4.4) si (4.5) acestei noi forme a coeficientilor transform


arii, rezult
a
c
a matricile A = {a(k, m)} si B = {b(l, n)} trebuie s
a fie matrici unitare:
AAT = AT A = IN

(4.7)

BBT = BT B = IN
Pentru o transformare separabil
a, relatiile de definitie (4.2) si (4.3) pot fi rescrise sub
form
a matricial
a ca:
V = AUBT
(4.8)
U = AT VB
43

(4.9)

Num
arul de nmultiri necesare pentru a realiza oricare dintre transform
arile (4.8) sau
3
3
(4.9) este doar N (deci o complexitate O(N )). Proprietatea de separabilitate conduce
deci la reducerea complexit
atii calculelor cu un ordin de m
arime; n practic
a se folosesc
numai transform
ari separabile, pentru care, n plus, A = B. n acest caz particular,
relatia (4.8) se poate scrie ca
V = AUAT = A(AUT )T = (UT AT )T AT
ceea ce nseamn
a c
a se poate face o transformare unidimensional
a pe fiecare linie sau
coloan
a a lui U urmat
a de aceeasi transformare pe fiecare coloan
a sau linie a rezultatului. Astfel, transform
arile practic utilizate n prelucrarea imaginilor (matricilor) sunt
(paradoxal ?) unidimensionale.
Aceste observatii ne conduc la concluzia c
a pentru acoperirea cazurilor utilizate n mod
curent este suficient
a studierea propriet
atilor transformatelor integrale unitare unidimensionale.

4.2

Propriet
atile transformatelor unitare unidimensionale

n cele ce urmeaz
a vom considera semnalul de intrare u = (u(0), u(1), ..., u(N 1)) si
transformata sa v, obtinut
a prin folosirea matricii unitare A. Relatiile de transformare
(direct
a si invers
a) sunt v = Au si u = AT v.
1. Energia semnalului se conserv
a printr-o transformare unitar
a.
Ev = v

= vT v = (Au)T Au = uT AT Au = uT u = u

= Eu

(4.10)

Energia vectorului semnal este de fapt lungimea (Euclidian


a) a acestuia n spatiul
N-dimensional de reprezentare. Conservarea energiei este deci echivalent
a cu conservarea lungimii vectorului, deci transformarea unitar
a este o rotatie n spatiul
semnalului. Aceasta nseamn
a c
a baza de reprezentare a lui u este rotit
a, iar v este
proiectia lui u pe noua baz
a.
2. Energia medie a semnalului se conserv
a printr-o transformare unitar
a.
v=Au= Au

(4.11)

Ev = vT v = (Au)T Au = uT AT Au=uT u = Eu

(4.12)

Corelatiei componentelor semnalului se modific


a; dac
a not
am cu C matricea de
covariatie atunci:
Cu = (u u)(u u)T
(4.13)
44

= (v v)(v v)T = A(u u)(u u)T AT = ACu AT

(4.14)

Majoritatea transform
arilor unitare au tendinta de a aglomera o mare parte a
energiei medii a semnalului n relativ putini coeficienti ai transform
arii. Deoarece
energia total
a se conserv
a prin transfomare, multi coeficienti ai transform
arii vor
contine foarte putin
a energie. Energia medie a coeficientilor transform
arii va avea
o distributie neuniform
a, chiar dac
a n secventa de intrare aceasta era uniform
distribuit
a.
Dac
a componentele lui u sunt puternic corelate, coeficientii transform
arii vor fi
decorelati (termenii matricii de covariatie care nu sunt pe dioagonala principal
a vor
avea valori mici comparativ cu valorile de pe diagonal
a).
3. Entropia unui vector cu componente aleatoare se conserv
a printr-o transformare
unitar
a
H(u) =

N
N
log2 (2e |Cu |1/N ) =
log2 (2e |Cv |1/N ) = H(v)
2
2

(4.15)

Deoarece entropia este o m


asur
a a cantit
atii de informatie (informatia medie)
nseamn
a ca transform
arile unitare p
astreaz
a informatia continut
a n semnal.

4.3

Transformata Fourier discret


a

Transformata Fourier este poate cea mai important


a transformare integral
a unitar
a, ce
asigur
a trecerea ntre spatiul semnalului si spatiul de frecvente ale semnalului. Dup
a
cum semnalul este clasic (temporal, si deci unidimensional) sau cu suport spatial bidimensional (imagine), spatiul de frecventa marcheaz
a frecvente propriu-zise sau frecvente
spatiale.
Transformata Fourier discret
a bidimensional
a este o transformare separabil
a, n care nucleul se poate descompune n termeni identici A = B = F. Matricea F a transform
arii
este o matrice unitar
a, ce verific
a (4.7). Elementele matricii transform
arii sunt exponentialele complexe:
2
1
1 kn
F (k, n) = ej N kn = wN
(4.16)
N
N
Separabilitatea ne permite deci s
a studiem majoritatea propriet
atilor transform
arii pe
cazul unidimensional, urmnd ca rezultatele s
a fie usor extinse pentru cazul bidimensional. Folosind notatiile introduse n sectiunea 4.2, putem scrie deci transformata Fourier
unidimensional
a direct
a ca:
N1

v(k) =
n=0

kn
u(n)wN
, k = 0, N 1

45

(4.17)

iar transformarea invers


a ca
1
u(n) =
N

N1

k=0

kn
v(k)wN
, n = 0, N 1

(4.18)

Relatiile se extind imediat la cazul bidimensional:


N1 N1

v(k, l) =
m=0 n=0

u(m, n) =

1
N2

kn+ml
u(m, n)wN
, k, l = 0, N 1

(4.19)

N1 N1
(kn+ml)

v(k, l)wN
k=0 l=0

, m, n = 0, N 1

(4.20)

Trebuie totusi remarcat c


a formele prezentate ale transform
arilor nu mai sunt unitare
(apare o asimetrie ntre transformarea direct
a si cea invers
a prin factorul de scalare de
tip 1/N). Matematic, definitia (4.16) este corect
a, dar n practic
a se folosesc formele
neunitare prezentate n (4.17), (4.18) si (4.19), (4.20).

4.3.1

Propriet
atile fundamentale ale transformatei Fourier

Dintre numeroasele propriet


ati ale transformatei Fourier [9], [19] ne vom referi doar
la dou
a propriet
ati fundamentale: simetria central
a a spectrului de frecventa (avnd
drept consecinta important
a faptul c
a este necesar acelasi spatiu de memorie pentru a
reprezenta fie spectrul unei imagini, fie imaginea propriu-zis
a) si teorema convolutiei circulare (care face leg
atura ntre filtrarea n domeniul spatial si n domeniul de frecventa).
Transformata Fourier a unei secvente (matrici) reale este complex conjugat
a fata de
mijlocul s
au [9]. Aceasta nseamn
a c
a
v(

N
N
N
k) = v ( + k), k = 0,
2
2
2

(4.21)

N
N
N
N
N
k, l) = v ( + k, + l), k, l = 0,
2
2
2
2
2
Relatiile arat
a c
a exist
a o simetrie central
a a spectrelor de frecventa, n centru aflndu-se
o valoare real
a. Dar singura valoare real
a din spectre este cea ce corespunde componentei
de fecventa nul
a (componenta medie), si deci este necesar
a o interschimbare a jum
at
atilor
de spectru (n cazul secventelor unidimensionale) sau a sferturilor de spectru (n cazul
imaginilor), astfel nct componenta de frecventa nul
a s
a fie n centru. n figura 4.1 este
reprezentat modulul spectrului de frecventa al imaginii lena, reprezentat cu 256 nivele
de gri (valorile au fost scalate dup
a o reprezentare logaritmic
a) astfel nct valorile mai
mari corspund unei nuante mai deschise. Se observ
a n partea dreapt
a spectrul central simetrizat, n care valorile maxime (corespunzd frecventelor cele mai mici, inclusiv
v(

46

Fig. 4.1: Spectrele de frecventa (Fourier) ale imaginii lena, nainte si dup
a aranjarea
cu simetrie central
a.
zero) se g
asesc n centrul imaginii, iar n partea stng
a spectrul original obtinut n urma
transform
arii Fourier, n care maximele se g
asesc pe cele patru colturi.
Ca si n cazul unidimensional, si pentru imagini leg
atura dintre frecventele spatiale si
obiectele din domeniul spatial (imagine) se p
astreaz
a: frecventele spatiale ridicate corespund detaliilor, obiectelor mici, contururilor, zgomotului. n figura 4.2 este prezentat
spectrul de frecventa al imaginii lena degradat
a de zgomot impulsiv de tip sare si piper
(figura 5.1); zgomotul impulsiv corespunde aparitiei a numeroase detalii (obiecte mici
punctele de zgomot) si variatii ale nivelului de gri. Efectul evident este acela de m
arire
a valorilor din spectru corespunz
atoare frecventelor nalte si, corespunz
ator, diminuarea
importantei relative a frecventelor joase.

Fig. 4.2: Spectrul de frecventa al imaginii lena degradat


a de zgomot impulsiv.
47

Prelucrarea imaginilor (fie ele scalare sau vectoriale) presupune executarea, prin intermediul unui bloc functional ce poate fi presupus initial de tip cutie neagr
a, a unei
operatii de tip Image In, Image Out [2] (spre deosebire de tehnicile de analiz
a ce pot fi
caracterizate ca operatii Image In, Description Out). Transformarea imaginii de intrare
n imaginea rezultat de iesire (ce prezint
a aceleasi caracteristici majore, simbolice si perceptuale3 ) se numeste n mod generic filtrare4 . Functia unui filtru este de a transforma
un semnal dat ntr-un alt semnal, mai potrivit unei anume aplicatii date.
Definitiile filtr
arii (sau ale dispozitivului care o realizeaz
a, filtrul) ce se reg
asesc n dictionarele lingvistice de uz general fac apel la notiunea de semnal electric si de frecvente
asociate componentelor acestuia. Descrierea actiunii filtrului este descrierea unei operatii
liniare efectuate n domeniul frecventelor. Extinderea acestor definitii la cazul imaginilor
presupune n primul rnd definirea spectrului de frecventa asociat unui semnal cu suport
[spatial] multidimensional si, implicit, introducerea notiunii de frecventa spatial
a. Utilizarea unei prelucr
ari n domeniul frecventelor presupune apoi identificarea benzilor de
frecventa corepunz
atoare entit
atilor ce se doresc p
astrate, respectiv eliminate, asociere
ce nu este ntotdeauna simpl
a. n practic
a, aceasta nseamn
a determinarea unui spectru
de frecvente transformat, care apoi este transformat prin transformata Fourier invers
a n
imaginea filtrat
a aceasta este filtrarea n domeniul frecventa.
Filtrarea liniar
a a imaginilor se bazeaz
a pe convolutia [circular
a] ntre imaginea de prelucrat si un nucleu de filtrare (a se vedea capitolul 3); teoria transformatelor unitare
[9] arat
a c
a o asemenea operatie este echivalent
a unui produs ntre spectrul Fourier al
imaginii si spectrul Fourier al nucleului de filtrare; aceasta este teorma convolutiei. n
cazul unidimensional, dac
a secventele x si y au aceeasi lungime, si U este operatorul de
convolutie circular
a (definit n (4.23)) atunci:
Fourier(x U y) = Fourier(x) Fourier(y)

(4.22)

N1

x U y(n) =
k=0

x ((n k) mod N ) y(k), n = 0, N 1

(4.23)

Teorema convolutiei ofer


a deci instrumentul prin care se pot echivala operatiile de filtrare
realizate n domeniile spatial (filtrarea liniar
a, prezentat
a n capitolul 3) si de frecventa.
Aceasta nseamn
a c
a un nucleu mic de convolutie (masc
a de filtrare) este bordat cu zerouri pn
a la obtinerea dimensiunii imaginii (teorema convolutiei circulare se refer
a la
3

Prin prisma acestei definitii, transfom


arile unitare ale imaginilor (deci reprezentarea ntr-un spatiu
spectral) nu sunt filtr
ari; spectrul unei imagini, desi este echivalent acesteia din punct de vedere informational, nu are aceleasi caracteristici perceptuale.
4
Filtrul este un sistem de circuite electrice, sonore, etc. cu care se selecteaz
a dintr-un complex
de oscilatii cu frecvente diferite, oscilatiile cu frecventele cuprinse ntre anumite limite. (Dictionarul
Explicativ al Limbii Romne, 1995)
Filtrul este un dispozitiv ce amortizeaz
a selectiv oscilatiile cu anumite frecvente si nu afecteaz
a oscilatiile avnd alte frecvente. (Webster Encyclopedic Unabridged Dictionary, 1995)
Filtrul este un dispozitiv destinat favoriz
arii sau inhib
arii trecerii anumitor componente de frecventa
a unui semnal electric. (Larousse, 1994)

48

secvente de aceeasi lungime) si apoi transformat Fourier; ceea ce se obtine este r


aspunsul
n frecventa al filtrului. Figura 4.3 prezint
a r
aspunsul n frecventa a filtrului de mediere
aritmetic
a realizat cu un nucleu p
atrat, centrat de 3 x 3; se remarc
a comportamentul de
tip filtru trece jos. Acest comportament este leagt de efectul de blur al filtrului de mediere, pus n evidenta prin reducerea vizibilit
atii contururilor imaginii, si deci nl
aturarea
frecventelor nalte ce le sunt asociate.

Fig. 4.3: R
aspunsul n frecventa a unui nucleu 3 x 3 de mediere aritmetic
a.

4.3.2

Transformata Fourier rapid


a

Implementarea direct
a a relatiei de definitie a transform
arii Fourier discrete unidimen2
sionale (4.17) necesit
a evident N nmultiri complexe si N(N 1) adun
ari, ceea ce duce la
o complexitate O(N 2 ). Realizarea unei implement
ari mai rapide a transform
arii Fourier
(FFT - Fast Fourier Transform) a constituit unul dintre momentele cele mai importante
pentru domeniul prelucr
arii digitale a semnalelor. Tehnica initial
a a fost divizarea n
timp: cele N esantioane ale secventei se mpart n dou
a, dup
a indicii pari si respectiv
impari:
N1
2
u(n) exp(j kn) =
v(k) =
N
n=0
N/21

u(2n) exp(j
n=0

N/21

=
n=0

2
k 2n) +
N

N/21

u(2n + 1) exp(j
n=0

2k
2k
2k
u(2n) exp(j
2n) exp(j
2n)+exp(j
)
N/2
N
N

49

2
k(2n + 1)) =
N

N/21

u(2n+1) exp(j
n=0

2k
2n) =
N/2

N/21

=
n=0

2k
2k
upar (n) exp(j
n) + exp(j
)
N/2
N

N/21

uimpar (n) exp(j


n=0

2k
n) =
N/2

2k
)vimpar (k)
(4.24)
N
n (4.24) am notat cu upar secventa obtinut
a din toate valorile pare ale secventei initiale,
iar cu uimpar secventa obtinut
a din toate valorile impare ale secventei initiale. Aceast
a
relatie exprim
a posibilitatea construirii transform
arii Fourier a secventei u de lungime
N prin transform
arile Fourier ale unor jum
at
ati de secventa (de lungime N/2) vpar si
vimpar .
= vpar (k) + exp(j

Dac
a not
am cu T (N) timpul de calcul al transformatei Fourier a secventei de lungime
N , atunci avem:
N
T (N) = 2T
+N
(4.25)
2
n mod evident T (1) = 1 (transformata Fourier a secventei de lungime 1 este identic
a cu
secventa); dezvoltnd ecuatia recurent
a din (4.25) obtinem:
T (N ) = 2T

N
2

+ N = 2 2T

N
4

= ... = 2i T

+
N
2i

N
2

+ N = 4T

N
4

+ 2N =
(4.26)

+ iN

La limit
a, cnd i este ales astfel ca N = 2i vom avea:
T (N ) = NT (1) + N log2 N = N log2 N + N
ceea ce este echivalent cu o complexitate de O(N log N ). Sporul de vitez
a obtinut prin
FFT fata de implementarea clasic
a este deci proportional cu N/ log2 N (deci aproape un
ordin de m
arime pentru o lungime tipic
a de secventa N = 256).
Relatia de implementare de baz
a (4.24) mai poate fi scris
a si ca:
k
v(k) = vpar (k) + wN
vimpar (k), k = 0, ...,

N
1
2

(4.27)

N
, ..., N 1
2
ceea ce semnific
a faptul c
a dou
a valori ale transform
arilor Fourier ale secventelor pe
jum
atate sunt combinate liniar pentru a genera dou
a valori, simetrice fata de centru, ale
secventei originale. Blocul ce realizeaz
a aceste prelucr
ari este numit celul
a butterfly,
5
caracterizat de o operatie de nmultire-adunare (figura 4.4).
k
v(k) = vpar (k) wN
vimpar (k), k =

Operatia de multire-adunarte este una dintre operatiile de baz


a (cablate) din setul de instructiuni
al procesoarelor de semnal (DSP).

50

+wNk

vpar(k)

vimpar(k)

-wNk

v(k)
v(N/2+k)

Fig. 4.4: Celula de baz


a butterfly
Construind etapele succesive de njum
at
atire a lungimii secventei, pentru o secventa de
lungime N = 8 se ajunge la schema din figura 4.5. Se remarc
a reordonarea esantioanelor
secventei de intrare dup
a ordinea de bit invers
a bit-reverse (forma binar
a a noului indice
este forma binar
a a vechiului indice reflectat
a).
v(0)

u(0)
u(4)

w80

w80

w80

v(1)
v(2)

u(2)
u(6)

w80

u(1)
u(5)

w84

w81

v(4)

w80
w80

w82

u(3)
u(7)

w80

v(3)

w84

w83

Fig. 4.5: Schema FFT pentru o secventa de lungime 8.


Implement
arile clasice ale FFT folosesc o reordonare in-place a secventei de intrare (n
acelasi spatiu de memorie, prin interschimb
ari) pentru numere complexe (scrise n ordinea
parte real
a, parte imaginar
a). Acelasi cod este folosit att pentru transformata direct
a
ct si pentru transformata invers
a, doar prin modificarea unui parametru de semn ce
intervine la calculul coeficientilor Fourier wN . Rezultatul (transformata) ia locul datelor
51

v(5)
v(6)
v(7)

de intrare, n acelasi spatiu de memorie (deci din nou o implementare in-place). n


continuare prezent
am codul C din [13].
void fft(float data,integer nn,isign)
integer m,n,mmax,i,j,step;
n=nn<<1;
j=1;
for (i=1;i<n;i+=2){
if (j>i) {
swap(data[j],[data[i]);
swap(data[j+1],[data[i+1]);}}
m=n>>1;
while (m>=2 && j>m) {
j-=m;
m>>=1;}
j+=m;}
mmax=2;
while (n>mmax) {
step=2*mmax;
teta=2*PI/(isign*mmax);
wtemp=sin(teta/2);
wpr=-2*wtemp*wtemp;
wpi=sin(teta);
wr=1;
wi=0;
for (m=1;m<mm1x;m+=2) {
for (i=m;i<=n;i+=step) {
j=i+mmax;
tempr=wr*data[j]-wi*data[j+1];
tempi=wr*data[j+1]+wi*data[j];
data[j]=data[i]-tempr;
data[j+1]=data[i+1]-tempi;
data[i]+=tempr;
data[i+1]+=tempi;}
wr=(wtemp=wr)*wpr-wi*wpi+wr;
wi=wi*wpr+wtemp*wpi+wi;}
mmax=step;}
Prima parte a codului realizeaz
a reordonarea seceventei n ordinea invers
a de bit. n
partea a doua a codului se realizeaz
a calculul efectiv al celulelor butterfly, corespunznd
transform
arilor unor secvente de dimensiune mmax, si deci prelu
arii unor date situate la
52

distanta mmax ntre indici (vizibil si n schema din figura 4.5).


Transformata rapid
a bidimensional
a implic
a realizarea cte unei transform
ari unidimensionale pentru fiecare linie si coloan
a a imaginii (conform principiului separabilit
atii);
2
aceasta conduce la o complexitate O(N log N).

4.4

Alte transform
ari

n cele ce urmeaz
a vom prezenta pe scurt alte transform
ari unitare folosite n prelucrarea
imaginilor; aparitia acestora s-a datorat adapt
arii mai bune dect transformata Fourier
la compactarea energiei si decorelarea spectral
a a anumitor clase de semnale.

4.4.1

Transformata cosinus

Transformata cosinus este o transformat


a unitar
a separabil
a, caracterizat
a de A = B =
C. Elementele matricii C sunt date de
1
C(k, n) =
N

1, dac
ak=0

, n = 0, N 1
2 cos (2n+1)k
, dac
a k = 1, N 1
2N

(4.28)

Transform
arile direct
a si invers
a a unei secvente u sunt definite ca:
N1

u(n) cos

(2n + 1)k
, k = 0, N 1
2N

(4.29)

(k)v(k) cos

(2n + 1)k
, n = 0, N 1
2N

(4.30)

v(k) = (k)
n=0
N1

u(n) =
k=0

unde

1
(k) =
N

1,
k=0
2, k = 0

(4.31)

Una dintre propriet


atile importante ale transformatei cosinus se refer
a la leg
atura acesteia
cu transformata Fourier: transformata cosinus a unei secvente nu este partea real
a a
transformatei Fourier a aceleiasi secvente. Transformata cosinus se poate obtine prin
transformarea Fourier a unei secvente rearanjate sau a unei secvente dublate si simetrizate
central. Fie N par; si definim
N
u1 (n) = u(2n)
, n = 0, 1
u1 (N n 1) = u(2n + 1)
2
53

(4.32)

u2 (n) =

u(N n 1), 0  n < N


u(n N ), N  n < 2N

(4.33)

Aceasta nseamn
a c
a secventa u1 este u(0), u(2), u(4), ..., u(N 2), u(N 1), u(n 3), ...,
u(3), u(1), iar secventa u2 este u(N 1), u(N 2), ..., u(1), u(0), u(0), u(1), ..., u(N
2), u(n 1). Atunci:
COS(u) = Re (k) exp(

jk
) Fourier(u1 )
2N

(4.34)

k
), k = 0, ..., N 1
(4.35)
2N
O consecinta imediat
a a acestor relatii este posibilitatea realiz
arii unei transform
ari cosinus rapide (de complexitate O(N log N )) folosind transformata Fourier rapid
a.
COS(u) = Fourier(u2 ) exp(

O alt
a proprietate important
a a transformatei cosinus este accea c
a vectorii bazei cosinus
(coloanele matricii C) sunt vectori proprii pentru orice matrice simetric
a tridiagonal
a de
forma:

1
0
... ...
0

1
0
...
0

...
0

Q=
(4.36)
...

...
...
...
...
...

0
...
0
1
0
...
...
0

1
Dac
a not
am cu ck coloana k a matricii transform
arii cosinus, atunci:
Qck = k ck
Aceast
a proprietate revel
a faptul c
a transfomata cosinus se comport
a precum transformata Karhunen-Loeve pentru orice clas
a de semnale a c
aror matrice de covariatie este de
forma (4.36). Dar aceast
a form
a este tipic
a secventelor stationar Markov de ordinul 1,
cu parametru de corelatie mare ( 1), model adeseori folosit n cazul imaginilor. Deci
transformata cosinus este similar
a transform
arii optime de decorelare Karhunen-Loeve
pentru o clas
a larg
a de imagini naturale (alte comentarii referitoare la aceast
a proprietate si la aplicatiile ei practice se g
asesc n sectiunea 7.2.2, referitoare la compresia
imaginilor cu transformate).

4.4.2

Transformata sinus

Transformata sinus este o transformat


a unitar
a separabil
a, caracterizat
a de A = B = S.
Elementele matricii S sunt date de
S(k, n) =

2
(k + 1)(n + 1)
sin
, k, n = 0, N 1
N +1
N +1
54

(4.37)

Transform
arile direct
a si invers
a a unei secevente u sunt definite ca:
v(k) =

u(n) =

2
N +1
2
N +1

N1

u(n) sin

(k + 1)(n + 1)
, k = 0, N 1
N +1

(4.38)

v(k) sin

(k + 1)(n + 1)
, n = 0, N 1
N +1

(4.39)

n=0
N1

k=0

Una dintre propriet


atile importante ale transformatei sinus se refer
a la leg
atura acesteia
cu transformata Fourier: transformata sinus a unei secvente nu este partea imaginar
a
a transformatei Fourier a aceleiasi secvente. Transformata sinus se poate obtine prin
transformarea Fourier a extensiei antisimetrice a secventei. Fie N par; si definim
u(0) = u(N + 1) = 0
u(n) = u(N n) , n = 1, N
u(N + 2 + n) = u(n)

(4.40)

Aceasta nseamn
a c
a secventa u este 0, u(N1), u(N 2), ..., u(1), u(0), 0, u(0), u(1), ...,
u(N 1). Atunci
SIN(u) = Im j(1)k Fourier(u)
(4.41)
O consecinta imediat
a a acestei relatii este posibilitatea realiz
arii unei transform
ari sinus
rapide (de complexitate O(N log N)) folosind transformata Fourier rapid
a.
O alt
a proprietate important
a a transformatei sinus este aceea c
a vectorii bazei sinus
(coloanele matricii S) sunt vectori proprii pentru orice matrice simetric
a tridiagonal
a de
forma:

1
0 ... 0
1
0 ... 0

Q=
(4.42)
... ... ... ... ...
0

... 0 1

0
... 0 1
arii sinus, atunci:
Dac
a not
am cu sk coloana k a matricii transform
Qsk = k sk
Aceast
a proprietate revel
a faptul c
a transfomata sinus se comport
a precum transformata
Karhunen-Loeve pentru orice clas
a de semnale a c
aror matrice de covariatie este de forma
(4.42). Dar aceast
a form
a este tipic
a secventelor stationar Markov de ordinul 1, cu
parametru de corelatie [0.5; 0.5].

55

Capitolul 5
A
FILTRAREA NELINIARA
IMAGINILOR
Operatiile de filtrare studiate pn
a n prezent au fost caracterizate esential (din punct de
vedere matematic) de c
atre principiul liniarit
atii (sau superpozitiei). Istoric, acestea au
fost primele operatii utilizate, avnd un suport teoretic solid si desigur, avnd mai multe
caracteristici utile. O mare parte a aplicatiilor curente de prelucrare a imaginilor probabil
c
a se pot rezolva suficient de precis folosind doar operatii liniare. Limit
arile operatiilor
liniare de filtrare apar ns
a n momentul n care se consider
a zgomote ce nu au distributie
normal
a, si, mai mult, nu mai sunt aditive.
Exemplul cel mai simplu de astfel de zgomot este zgomotul impulsiv, caracterizat de impulsuri pozitive si negative de amplitudine maxim posibil
a (relativ la num
arul de nivele de
cuantizare ale imaginii) care afecteaz
a prin nlocuire o parte din pixelii imaginii. Aceasta
nseamn
a c
a imaginea va fi uniform acoperit
a de puncte foarte nchise (negre) si foarte
deschise (albe), rezultatul fiind ceea ce se numeste zgomot de tip sare si piper (vezi
figura 5.1). Asemenea erori apar n portiunile de achizitie si transmisiune ale sistemului de prelucrarea si analiza imaginilor (din cauza erorilor n convertorul analog-digital,
din cauza erorilor de nregistrare pe mediile magnetice de stocare sau de pe canalul de
transmisiune); este posibil ca asemenea valori s
a apar
a si ca urmare a unui zgomot aditiv
caracterizat de o distributie cu coad
a lung
a - deci care asigur
a probabilit
ati nenule de
aparitie a unor valori mult diferite de medie. Aceste valori aberante (mult mai mari sau
mai mici dect valorile normale ale regiunii n care apar) sunt numite outlier: valori
extreme sau erori grosiere.
Dac
a o asemena imagine ar fi filtrat
a liniar (cu un filtru de mediere sau poate cu un filtru
de reliefare) rezultatul ar fi o accentuare a punctelor de zgomot si o corupere a punctelor
cu valori corecte din jurul lor.
Zgomotul impulsiv nu este singurul model de degradare neliniar
a: exist
a zgomote de56

Fig. 5.1: Imagine afectat


a de zgomot impulsiv; 10% dintre pixeli au valorile modificate
pendente de valoarea imaginii din pixelul afectat, precum si compuneri neaditive ale
zgomotului cu imaginea original
a (multiplicativ
a, convolutiv
a) [9].
Este deci evident c
a se impune considerarea si a altor metode de filtrare, care nu mai
respect
a principiul superpozitiei, si deci sunt neliniare. O clas
a esential
a de astfel de
metode de filtrare sunt cele bazate pe ordonare - rank order filtering [12]. Ideea esential
a
este aceea c
a operatia de ordonare plaseaz
a valorile aberante (extremale) la capetele
sirului de valori (deci ntr-o zon
a bine definit
a), permitnd astfel identificarea si eliminarea
acestora.

5.1

Filtrarea de ordine

Filtrele de ordine sunt operatori locali: filtrul este definit de o fereastr


a (masc
a), care
selecteaz
a din imaginea de prelucrat un num
ar de vecini ai pixelului curent (se respect
a
deci acelasi model de prelucrare al ferestrei glisante, ntlnit si la filtr
arile liniare n
domeniul spatial). Valorile selectate de fereastra de filtrare sunt apoi ordonate cresc
ator;
dac
a valorile selectate de o fereastr
a cu n pozitii sunt {x1 , x2 , ..., xn }, atunci acelasi set
de valori, ordonate cresc
ator este {x(1) , x(2) , ..., x(n) }. Valorile x(i) se numesc statistici de
ordine de ordinul i si au proprietatea
x(1)  x(2)  ...  x(n)

(5.1)

n mod evident statistica de ordinul 1, x(1) , este valoarea minim


a, iar statistica de ordinul
a.
n, x(n) , este valoarea maxim
Iesirea filtrului de ordine de ordin k este statistica de ordinul k, cu k [1; n]:
rankk {x1 , x2 , ..., xn } = x(k)
57

(5.2)

n acest fel, iesirea unui filtru de ordine este una dintre valorile selectate de fereastra de
filtrare, si deci nu se creaz
a la iesire valori noi (asa cum se ntmpl
a la filtrarea liniar
a);
acesta este un avantaj att n ceea ce priveste p
astrarea valorilor originale din imagine,
ct si din punctul de vedere al simplific
arii calculelor (nu mai sunt necesare operatii cu
numere reale, ce trebuie apoi rotunjite sau truncheate la numere naturale).
Filtrele de ordine nu sunt liniare din cauza operatiei de ordonare (ce nu respect
a principiul
superpozitiei); n general putem scrie:
rankk {x1 + y1 , x2 + y2 , ..., xn + yn } = rankk {x1 , x2 , ..., xn } + rankk {y1 , y2 , ..., yn } (5.3)
Filtrele de ordine comut
a ns
a cu operatiile de modificare liniar
a a valorilor:
rankk {x1 + , x2 + , ..., xn + } = rankk {x1 , x2 , ..., xn } +

(5.4)

Din punct de vedere statistic, intereseaz


a functiile de distributie ale iesirii filtrului (functie
de densitate de probabilitate, functie de repartitie) atunci cnd functiile de distributie
ale valorilor de intrare sunt presupuse cunoscute. Modelul folosit n general se bazeaz
a pe
ipoteza de independenta si distributie identic
a a valorilor selectate de fereastra filtrului
(ceea ce conduce, implicit, la ipoteza c
a valorile pixelilor imaginii sunt variabile aleatoare
independente, identic distribuite1 ). Dac
a not
am cu f (x) si F (x) functiile de densitate
de probabilitate si respectiv repartitie a valorilor pixelilor din imaginea ce se filtreaz
a cu
un filtru de ordine de ordin k cu fereastr
a de n elemente, atunci ceea ce intereseaz
a este
functia de densitate de probabilitate a iesirii filtrului de ordine, fk (x).
Fie t o valoare oarecare din domeniul de variatie al variabilelor aleatoare; atunci probabilitatea evenimentului ca iesirea filtrului de ordine s
a se g
aseasc
a n intervalul [t; t + dt]
este fk (t)dt. Evenimentul de interes este deci

adic
a

t  rankk {x1 , x2 , ..., xn }  t + dt

(5.5)

t  x(k)  t + dt

(5.6)

Statisticile de ordine sunt obtinute prin ordonarea cresc


atoare a valorilor xi , ordonare
cresc
atoare care poate fi interpretat
a ca o permutare oarecare a indicilor valorilor ({1, 2, ..., n}
{i1 , i2 , ..., in }). n acest caz, evenimentul de interes exprimat de (5.6) este realizat
prin mai multe evenimente elementare de tipul:
xi1 , xi2 , ..., xik1  t  xik  t + dt  xik+1 , ..., xin

(5.7)

Probabilitatea evenimentului elementar din (5.7) este dat


a de probabilitatea ca k 1
k1
valori s
a fie mai mici dect t (deci F (t)), probabilitatea ca n k valori s
a fie mai mari
1

Aceast
a ipotez
a a mai fost f
acut
a si pentru deducerea transform
arii de egalizare a histogramei
imaginilor.

58

ca t + dt (deci (1 F (t))nk ) si probabilitatea ca o valoare s


a fie cuprins
a n intervalul
[t; t + dt] (deci f (t)dt), adic
a:
P = F k1 (t)(1 F (t))nk f (t)dt

k1
(n moduri de alege o valoare din
Num
arul total de evenimente de tipul (5.7) este nCn1
k1
cele n, la fiecare dintre aceste alegeri corespunznd Cn1
moduri de a alege din cele n 1
valori r
amase k 1 valori care s
a fie mai mici ca t). Atunci:
k1 k1
Pr t  x(k)  t + dt = nCn1
F (t)(1 F (t))nk f (t)dt

(5.8)

si deci functia de densitate de probabilitate a iesirii filtrului de ordine de ordin k este:


k1 k1
fk (x) = nCn1
F (x)(1 F (x))nk f(x)

(5.9)

n [12] sunt prezentate diferite utiliz


ari ale functiei de densitate de probabilitate a iesirii
filtrelor de ordine, mai ales pentru determinarea comport
arii asimptotice (n ) a
filtrelor.
Propriet
atile deterministe ale filtrelor de ordine se refer
a la comportamentul acestora
n zonele tipice ale unei imagini: portiuni netede si contururi. Filtrele de ordine nu
afecteaz
a contururile (zonele de pant
a abrupt
a) si p
asteaz
a valoarea zonelor uniforme.
Aceste comport
ari au fost extinse la investigarea clasei mai generale de semnale r
ad
acin
a
- semnale ce nu sunt modificate prin filtrare.
Orice secventa {xi } monoton
a (cresc
atoare sau descresc
atoare) este un semnal r
ad
acin
a
pentru filtrele de ordine. n plus, filtrele de ordine comut
a cu orice functie monoton
a g:
rankk (g(xi )) = g(rankk (xi ))
Pe lng
a metodele analitice de construire a semnalelor r
ad
acin
a [12], n practic
a, semnalele
r
ad
acin
a se obtin prin filtrarea repetat
a a unui semnal oarecare, pn
a la obtinerea invariantei. S
a consider
am spre exemplu secventa unidimensional
a x = {0, 1, 1, 3, 1, 3, 2, 3, 3, 2,
1, 1} pe care o vom filtra cu o fereastr
a de filtrare de dimensiune 3, centrat
a, cu un filtru de
ordine de ordin 2. Dup
a prima filtrare se obtine secventa x1 = {0, 1, 1, 1, 3, 2, 3, 3, 3, 2, 1, 1, 0},
iar dup
a a doua filtrare se obtine secventa x2 = {0, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 0}. Aceast
a
secventa este invariant
a la filtr
arile urm
atoare si este deci un semnal r
ad
acin
a. Figura
5.4 prezint
a secventele x, x1, x2.

5.1.1

Filtrul median

Filtrul median este un filtru de ordine a c


arui iesire este statistica de ordine de ordin
central a setului de valori selectate de fereastra de filtrare.
x( n+1 ) dac
a n este impar
2
median{x1 , x2 , ..., xn } =
(5.10)
1
1
x
+ 2 x( n +1) dac
a n este par
2 (n)
2

59

4
3
2
1
0

10

12

14

Fig. 5.2: Semnal initial oarecare; prin filtr


ari de ordine repetate acesta se va transforma
ntr-un semnal r
ad
acin
a.

2
0
0

10

12

14

Fig. 5.3: Rezultatul primei filtr


ari a secventei initiale.

0
0

10

12

14

Fig. 5.4: Semnal r


ad
acin
a al filtrului de ordine considerat, obtinut dup
a dou
a iteratii ale
filtr
arii.

60

Iesirea filtrului median este deci valoarea din centrul secventei ordonate; n cazul secventelor
(ferestrelor de filtrare) de dimensiune par
a, aceast
a pozitie central
a nu exist
a, si atunci
este definit
a ca media aritmetic
a a valorilor vecine centrului imaginar. n practic
a, filtrul
median se foloseste doar cu ferestre de filtrare de dimensiune impar
a, ceea ce conduce la
posibilitatea de a scrie:
median{x1 , x2 , ..., xn } = rank n+1 {x1 , x2 , ..., xn }
2

(5.11)

Aceasta nseamn
a c
a dac
a fereastra de filtrare are 3 puncte, medianul este statistica de
2
ordinul 2 , pentru o fereastr
a filtrare cu 9 puncte, medianul este statistica de ordinul 5,
iar pentru o fereastr
a de filtrare de 25 de puncte, medianul este statistica de ordinul 13.
Figura 5.5 prezint
a rezultatul filtr
arii cu un filtru median cu fereastr
a p
atrat
a de 3 x 3
puncte a imaginii degradate cu zgomot impulsiv din figura 5.1.

Fig. 5.5: Imagine filtrat


a cu filtru median cu fereastr
a de 3 x 3.
Efectele de filtrare a zgomotului impulsiv (de tip sare si piper) sunt evidente; valorile
punctelor de zgomot sunt 0 sau 255 si deci, dup
a ordonare se vor afla la capetele sirului
de valori; iesirea filtrului median, fiind statistica de ordin central, este situat
a departe
de valorile extreme. n imaginea filtrat
a median (figura 5.5) se observ
a totusi existenta
unor puncte albe si negre (puncte de zgomot) ce nu au putut fi eliminate prin filtrare;
spunem c
a n acele pozitii filtrul a fost str
apuns de impulsuri (care deci au ajuns la
iesirea filtrului). Probabilitatea de str
apungere a unui filtru median este dependent
a de
procentul de puncte de zgomot din imagine si de dimensiunea ferestrei de filtrare folosite.
Str
apungerea filtrului median se produce atunci cnd n fereastra de filtrare avem m
acar
n+1
impulsuri
de
zgomot
de
aceea
s
i
valoare.
2
O variant
a a filtrului median cu fereastr
a de filtrare p
atrat
a este filtrul median separabil.
Separabilitatea semnific
a (ca si n cazul transform
arilor unitare) realizarea operatiei nti
2

Aceasta nseamn
a deci c
a exemplul de construire a semnalului r
ad
acin
a prezentat anterior este realizat pentru un filtru median.

61

pe linii, si apoi pe coloanele imaginii, pe baza unor ferestre de filtrare liniare. Este
evident c
a rezultatul acestei operatii de filtrare nu coincide cu rezultatul filtr
arii mediane
3
cu fereastr
a p
atrat
a (figura 5.6 prezint
a rezultatul filtr
arii mediane separabile cu ferestre
de dimensiune 3 a imaginii cu zgomot impulsiv din figura 5.1; rezultatul filtr
arii mediane
cu fereastr
a p
atrat
a 3 x 3 este prezentat n figura 5.5).

Fig. 5.6: Rezultatul filtr


arii cu un filtru median separabil.
Se remarc
a faptul c
a aceast
a structur
a de filtrare, desi prezint
a avantaje din punctul
de vedere al timpului de calcul necesar, se str
apunge mai usor dect filtrul median cu
fereastr
a p
atrat
a din care a derivat.

5.1.2

Filtrele de ordine ponderate si structurile multietaj

Att filtrele liniare ct si filtrele de ordine se bazeaz


a pe acelasi principiu al ferestrei
glisante. Prelucr
arile realizate asupra valorilor selectate de aceast
a fereastr
a de filtrare
sunt evident diferite, dar se poate totusi remarca faptul c
a structura de filtrare liniar
a
permite o flexibilitate mai mare (se pot realiza un num
ar infinit de filtre liniare pentru o
aceeasi fereastr
a de filtrare, prin varierea coeficientilor de ponderare). Singurul factor de
reglaj al filtrelor de ordine este ordinul statisticii selectate la iesire4 .
Este evident c
a ponderarea filtrelor de ordine nu se poate face prin multiplicarea valorilor selectate de fereastra de filtrare cu diferiti coeficienti, asa ca n cazul filtrelor liniare.
3

Filtrul de minim (filtrul de ordine de ordin 1) si filtrul de maxim (filtrul de ordine de ordin n) sunt
singurele filtre de ordine separabile.
4
Zamperoni a propus adaptarea ordinului statisticii folosite ca iesire a filtrului de ordine prin k =
1
2

+
i=1

x(i) x(1)
x(n) x(1)

62

Ponderarea are ca scop nt


arirea influentei anumitor pixeli din fereastra de filtrare (de
exemplu pixelul central - curent prelucrat - care ar fi de asteptat ca s
a aib
a o influenta
mai puternic
a asupra rezultatului filtr
arii dect vecinii s
ai). Avnd n vedere c
a rezultatul filtr
arii (deci valoarea unei anumite statistici) este determinat
a n urma ordon
arii,
modalitatea de a nt
ari influenta unei anume valori este de a o repeta de mai multe ori,
crescnd astfel probabilitatea de a o reg
asi ca statistica de ordin dorit. Asadar, ponderarea filtrelor de ordine se refer
a la repetarea de un num
ar fixat de ori a valorilor selectate
de fereastra de filtrare. Multimea de valori ce rezult
a se numeste multiset. Ponderile wi
atasate fiec
arei pozitii de filtrare vor fi numere naturale nenule, ce exprim
a num
arul de
repetitii al valorii corespunz
atoare n multiset.
Spre exemplu s
a consider
am portiunea de
selectat
a de o fereastr
a de filtrare de
imagine
1 3 3
dimensiune 3 x 3, ale c
arei valori sunt 2 2 1 ; statistica median
a ce corespunde
4 3 5
acestei situatii este 3 (setul ordonat de valori fiind
3, 3, 3, 4, 5). Dac
a consider
am
1, 1, 2, 2,
1 2 1
acum filtrul median ponderat cu masca W = 2 3 2 , multisetul rezultant este 1,
1 2 1
3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 4, 3, 3, 5 (sau ordonat 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5)
ceea ce face ca medianul s
a fie 2 (si deci o valoare mai apropiat
a de valoarea original
a din
punctul curent prelucrat). Masca de ponderare W semnific
a faptul c
a valoarea central
a
este repetat
a de 3 ori, valorile de pe pozitiile vecinilor imediati (orizontali si verticali)
sunt repetate de cte 2 ori, iar valorile de pe pozitiile vecinilor de pe diagonal
a sunt
considerate o singur
a dat
a. Filtrul de ordine rezultat se poate scrie ca:
rankk (xi wi ) = x(k)
n

Este evident c
a multisetul de valori contine

wi termeni, si deci ordinul statisticii


j=1

maxime este

wi , iar ordinul statisticii mediane este


j=1

1
2

wi + 1

(presupunnd un

j=1

num
ar impar de valori n multiset). Un caz particular destul de des utilizat este acela al
filtrelor de ordine central ponderate, n care toti coeficientii de ponderare (repetitie) sunt
1, cu exceptia coeficientului ce corespunde pixelului curent prelucrat, ce are o valoare mai
mare ca 1.
Structurile multietaj grupeaz
a cteva filtre de ordine (median, minim, maxim) aplicate
succesiv, cu ferestre de filtrare diferite. Cele mai r
aspndite structuri sunt cele de tip
median multietaj (median din median pe orizontal
a, median pe vertical
a si valoarea
curent
a), reprezentat n figura 5.8 si max/min-median (maxim sau minim din medianele
pe vertical
a, orizontal
a si cele dou
a diagonale ale ferestrei de filtrare p
atrate centrate n
punctul curent prelucrat), reprezentat n figura 5.7.
63

Fig. 5.7: Structr


a multietaj de tip max / min - median, bazat
a pe o fereastr
a de filtrare
de dimensiune 3.

Fig. 5.8: Structur


a de filtrare de tip median - median, bazat
a pe o fereastr
a de filtrare
p
atrat
a de dimensiune 3.

64

5.2

Filtre de ordine de domeniu

Filtrele de ordine de domeniu (filtre LUM Lower-Upper-Middle [18]) introduc o posibilitate de adaptare si reglare a filtrelor de ordine.
Valoarea y de iesire a filtrului LUM de netezire este definit
a ca:

a x < x(k)
x(k) , dac
x
, dac
a x > x(nk+1)
y=
(nk+1)
x , n rest

(5.12)

unde x este valoarea ce corespunde originii ferestrei de filtrare cu n pozitii, iar k este
parametrul de reglaj al filtrului. Valoarea k este un ntreg din intervalul [0; n+1
]; dac
a
2
n+1

k = 0 filtrul de comport
a ca un filtru trece tot (y = x ), iar dac
a k = 2 , filtrul este un
filtru median (y = x( n+1 ) ).
2

Valoarea y de iesire a filtrului LUM de conturare este definit


a ca:

x +x
a x(l) < x < (l) 2(nl+1)
x(l) , dac
x +x
y=
x
, dac
a (l) 2(nl+1) < x < x(nl+1)
(nl+1)
x , n rest

(5.13)

unde x este valoarea ce corespunde originii ferestrei de filtrare cu n pozitii, iar l este
parametrul de reglaj al filtrului. Valoarea k este un ntreg din intervalul [0; n+1
]; dac
a
2
l = 0 filtrul de comport
a ca un filtru de reliefare extrem
a, iar dac
a l = n+1
,
filtrul
este
2
un filtru trece tot (y = x ).

5.3

L-filtre

L-filtrele [12] au fost introduse din dorinta de a oferi o mai mare flexibilitate operatiilor
de filtrare neliniar
a bazate pe ordonare; pasul firesc de dezvoltare a fost combinarea
tuturor statisticilor de ordine n valoarea de la iesirea filtrului. Iesirea unui L-filtru este
o combinatie liniar
a a statisticilor de ordine:
n

L({x1 , x2 , ..., xn }) =

wi x(i)

(5.14)

i=1

Este evident c
a prin varierea coeficientilor wi se pot obtine diferite filtre, inclusiv filtrele
de ordine (un singur coeficient egal cu 1, iar restul nuli). Coeficientii celor mai uzuale
L-filtre sunt prezentati n tabelul 5.1

65

Filtru
Filtru de ordine de ordin k, rankk
Filtru de mediere aritmetic
a
Filtru de mijloc
Filtru de cvasi-mijloc
Medie -reglabil
a

Coeficienti
ak = 1, ai = 0, i = k
ai = 1/n
a1 = an = 0.5, ai = 0, i
/ {1, n}
ak = an+1k = 0.5, ai = 0, i
/ {k, n + 1 k}
ak = 1/n(1 2), i [n + 1; n n]
ai = 0, i
/ [n + 1; n n]

Tabel 5.1: Coeficientii celor mai uzuale L-filtre.


Se poate demonstra cu usurinta c
a coeficientii L-filtrelor trebuie s
a ndeplineasc
a aceleasi
conditii de normare ca si coeficientii filtrelor liniare: s
a aib
a suma 1 pentru un filtru de
netezire (conform (3.8)) si suma 0 pentru un filtru de reliefare (conform (3.9)). Toate
filtrele prezentate n tabelul 5.1 sunt deci filtre de netezire, al c
aror scop este m
arirea
uniformit
atii regiunilor imaginii prin eliminarea diferitelor zgomote suprapuse acesteia.
Tabelul 5.2 prezint
a filtrele cele mai potrivite pentru eliminarea diferitelor tipuri de zgomote.
Tip zgomot
impulsiv (sare si piper)
gaussian
impulsiv + gaussian
uniform

Filtru
filtru de
filtru de
filtru de
filtru de

ordine (median, maxim, minim)


mediere aritmetic
a
tip medie -reglabil
a
mijloc

Tabel 5.2: L-filtre utilizate pentru reducerea diferitelor tipuri de zgomote.

Un exemplu de filtru de reliefare (cu comportare derivativ


a, care s
a satisfac
a deci (3.9))
este gradientul morfologic diferenta ntre valoarea maxim
a si minim
a din fereastra de
filtrare curent
a:
grad{x1 , x2 , ..., xn } = x(n) x(1)
Folosirea unui asemenea operator produce o imagine n care valoarea fiec
arui pixel este
invers proportional
a cu gradul de uniformitate (netezime) al vecin
at
atii acestuia (vezi
figura 5.9).

5.4

Aspecte de implementare

Implementarea filtrelor neliniare de ordine sau a L-filtrelor urmeaz


a aceleasi principii
ca si oricare tehnic
a de tip fereastr
a glisant
a (ca filtrarea liniar
a) n ceea ce priveste
66

Fig. 5.9: Operatorul gradient morfologic aplicat imaginii filtrate din figura 5.5.
problemele legate de realizarea formei ferestrei de filtrare si efectele de margine. Ceea ce
este particular filtrelor din aceast
a categorie este etapa de ordonare a valorilor selectate
de fereastra de filtrare n fiecare pozitie.
n teoria algoritmilor au fost dezvoltati numerosi algoritmi de sortare (ordonare cresc
atoare), a c
aror complexitate de calcul variaz
a de la O(n2 ) (bubble sort, sortare prin determinare succesiv
a de extreme), O(n log n) (sortare prin interclasare sau insertie) pn
a la
O(n) (pentru determinare doar a extremelor si a statisticii mediane). Trebuie ns
a remarcat c
a o metod
a de sortare de complexitate O(n2 ) nu este neap
arat mai neeficient
a dect
o metod
a de sortare O(n): complexitatea unui algoritm exprim
a comportarea asimptotic
a a num
arului de operatii necesare, n conditiile n care dimensiunea caracteristic
ana
setului de date ce se prelucreaz
a este foarte mare (la limit
a n ). Sort
arile folosite n
implementarea filtrelor neliniare de ordine prelucreaz
a seturi mici de date (s
a nu uit
am c
a
rareori o fereastr
a de filtrare dep
aseste dimensiunea de 25 de pixeli), si deci complexitatea
O() nu este un criteriu valid de alegere a unui algoritm de sortare.
Codul Matlab ce urmeaz
a implementeaz
a un L-filtru cu o fereastr
a p
atrat
a de dimensiune
3 x 3, centrat
a; ponderile filtrului sunt stocate n vectorul w (1 linie, 9 coloane, prima
pozitie corespunznd coeficientului statisticii minime). L-filtrul este aplicat imaginii in
(de dimensiuni nrlin si nrcol); efectele de margine sunt evitate prin neprelucrarea primei
si ultimei linii, respectiv coloane a imaginii. Rezultatul este nscris n imaginea out.
[nrlin,nrcol]=size(in);
out=in;
for i=2:nrlin-1
for j=2:nrcol-1
temp=in(i-1:i+1,j-1:j+1);
temp=sort(temp(:));
67

out(i,j)=fix(w*temp);
end
end
Se remarc
a folosirea functiei standard sort ce realizeaz
a operatia de ordonare cresc
atoare
a valorilor; iesirea L-filtrului este produsul scalar al vectorului de coeficienti ai filtrului
cu vectorul statisticilor de ordine.
n cele ce urmeaz
a vom considera un exemplu de implementare a unui filtru cu ordonare
dup
a rang relizat cu o fereastr
a centrat
a de 3 x 3 pixeli, pentru filtrarea unei imagini
cu NRLIN linii si NRCOL coloane; prima si ultima linie si coloan
a sunt identice cu cele
din imaginea ce se filtreaz
a (remarcati buclele for de alocare a spatiului pentru imaginea
filtrat
a si initializarea valorilor acesteia).
unsigned char temp[9],dummy;
boolean sortat;
img_out=(int**)malloc(NRLIN*sizeof(int*));
for (i=0;i<NRLIN;i++)
img_out[i]=(int*)malloc(NRCOL*sizeof(int));
for (i=0;i<NRCOL;i++)
{ img_out[0][i]=img[0][i];
img_out[NRLIN-1][i]=img[NRLIN-1][i];}
for (i=0;i<NRLIN;i++)
{ img_out[i][0]=img[i][0];
img_out[i][NRCOL-1]=img[i][NRCOL-1];}
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++)
{ for (k=0;k<9;k++)
temp[k]=img[i-1+k/3][j-1+k%3];
sortat=false;
while (! sortat) do
{ sortat=true;
for (k=0;k<8;k++)
if (temp[k]>temp[k+1])then
{ dummy=temp[k+1];
temp[k+1]=temp[k];
temp[k]=dummy;
sortat=false;
}
}
img_out[i][j]=temp[5];
}

68

Valorile selectate de fereastra de filtrare sunt stocate n vectorul de 9 pozitii temp. Citirea
acestor valori se face printr-un ciclu, bazndu-se pe introducerea unei relatii de echivalenta
ntre ordinea de baleiaj a ferestrei si pozitia valorilor n vector (economia nu este de timp
de executie ci de timp de scriere a codului). Aceast
a alocare este echivalent
a cu liniile de
cod:
temp[0]=img[i-1][j-1];temp[1]=img[i-1][j];
temp[2]=img[i-1][j+1];temp[3]=img[i][j-1];
temp[4]=img[i][j];temp[5]=img[i][j+1];
temp[6]=img[i+1][j-1];temp[7]=img[i+1][j];
temp[8]=img[i+1][j+1];
Sortarea implementat
a este de tip bubble sort; fiecare pozitie a vectorului ce contine
valorile extrase de fereastra de filtrare este comparat
a cu pozitia urm
atoare, iar dac
a
ordinea cresc
atoare nu este respectat
a, cele dou
a valori sunt interschimbate; indicatorul
sortat indic
a efectuarea a m
acar unei interschimb
ari, si deci necesitatea relu
arii verific
arii
ordinii. Filtrul de ordine folosit este medianul (se preia n imaginea rezultat statistica de
ordine cu num
arul 5, deci statistica median
a).
Structura de program folosit
a anterior realizeaz
a ordonarea vectorului de valori pentru
fiecare pozitie a ferestrei de filtrare; o serioas
a economie de timp se poate realiza dac
a se
tine seama c
a la mutarea ferestrei de filtrare de la un pixel al imaginii la un pixel vecin
acestuia, se modific
a un num
ar relativ mic de valori (restul r
amnnd neschimbate).
Aceasta poate conduce la ideea p
astr
arii unei p
arti a setului de valori ordonate, n care
s
a se intercaleze valorile noi.
O alt
a variant
a de determinare a statisticilor de ordine se bazeaz
a pe folosirea histogramei
valorilor din fereastra de filtrare. Histograma (2.10) reprezint
a num
arul de puncte ce au
o anumit
a valoare si este echivalent
a cu functia de densitate de probabilitate a unei
variabile aleatoare. Pentru aceeasi varibil
a aleatoare exist
a ns
a si functia de repartitie
primitiva functiei de densitate de probabilitate; asadar putem asocia oric
arei histograme
h o histogram
a cumulativ
a (5.15):
i

H(i) =
j=0

h(j), cu i = 0, 1, ..., L 1

(5.15)

Histograma cumulativ
a n punctul i va reprezenta deci num
arul de puncte (pixeli) a
c
aror valoare (nivel de gri) este mai mic
a dect i. Determinarea valorii statisticilor de
ordine pentru un set de valori pe baza histogramei acestora este imediat
a. S
a consider
am
urm
atorul exemplu: setul de valori selectate de fereastra de filtrare este {1, 2, 3, 3,
4, 0, 1, 1, 2, 1, 1, 0, 0, 1, 2, 7, 7, 6, 0, 1, 6, 6, 5, 5, 0}(valori din intervalul 07).
Histograma acestui set este h = 5 7 3 2 1 2 3 2 iar histograma cumulativ
a
este H = 5 12 15 17 18 20 23 25 . Atunci statisticile de ordine de ordin 15
69

(H(0)) au valoarea 0, statisticile de ordine de ordin 6 (H(0) + 1) 12 (H(1)) au valoarea


1, statisticile de ordine de ordin 13 (H(1) + 1) 15 (H(2)) au valoarea 2, statisticile de
ordine de ordin 16 (H(2) + 1) 17 (H(3)) au valoarea 3, statistica de ordine de ordin 18
(H(3) +1 = H(4)) are valoarea 4, statisticile de ordine de ordin 19 (H(4) +1) 20 (H(5))
au valoarea 5, statisticile de ordine de ordin 21 (H(5) + 1) 23 (H(6)) au valoarea 6,
statisticile de ordine de ordin 24 (H(6) + 1) 25 (H(7)) au valoarea 7. Regula de decizie
general
a este: statisticile de ordine de ordin H(j 1) + 1 pn
a la H(j) au valoarea j, cu
j = 0, 1, 2, ..., L 1 si H(1) = 0.
Deci, pentru o statistic
a oarecare de ordin r, trebuie identificat num
arul j astfel ca:
H(j 1) + 1  r  H(j)

(5.16)

Problemele ce apar la o asemenea implementare sunt legate n primul rnd de timpul de


determinare a num
arului j ce satisface (5.16), timp ce este direct proportional cu num
arul
de nivele de gri din imagine (si deci lungimea vectorului histogram
a sau histogram
a
cumulativ
a). Se poate ns
a observa c
a histograma ntr-o fereastr
a de filtrarea va selecta
relativ putine valori diferite, si atunci histograma va fi un vector rar (sparse), cu multe
intr
ari nule, iar histograma cumulativ
a va avea, corespunz
ator, multe portiuni constante.
n aceste conditii, o reprezentare mai eficient
a (att ca memorie ocupat
a, ct si ca timp de
c
autare) este memorarea doar a tranzitiilor (pozitie, valoare) din histograma cumulativ
a,
adic
a doar memorarea histogramei.

70

Capitolul 6
ELEMENTE DE MORFOLOGIE

MATEMATICA
n mod traditional, prelucrarea semnalelor multidimensionale (si a imaginilor n particular) a fost bazat
a pe exploatarea conceptelor si teoriei sistemelor liniare si a transformatei
Fourier ([9], [2]). Desi aceste abord
ari clasice sunt justificate si dau rezultate n multe
cazuri, aplicarea lor este limitat
a de problema fundamental
a impus
a de semnalele de
tip imagine: modul de reprezentare a formei sau structurii geometrice existente ntr-un
semnal.
Morfologia matematic
a, dupa cum indic
a si numele (morphos form
a, logos stiinta, deci
stiinta formelor), realizeaz
a o abordare axat
a pe form
a a prelucr
arii imaginilor. Folosit
a
corespunz
ator, morfologia matematic
a conduce la prelucr
ari ce simplific
a structura imaginii, p
astrnd caracteristicile esentiale de form
a si eliminnd irelevantele.
Ideea de baz
a a oric
arei prelucr
ari morfologice este considerarea imaginii ca un ansamblu
(multime, reuniune de p
arti) asupra c
aruia se aplic
a transform
ari a c
aror esenta este
comparatia cu multimi (ansambluri) mai simple, numite elemente structurante. Scopul
acestor transform
ari este extragerea de forme mai simple din formele initiale (complexe)
ale imaginii.
Morfologia matematic
a este utilizat
a ca o abordare natural
a a proceselor de vedere artificial
a, deoarece tr
as
aturile si respectiv identificarea obiectelor sunt corelate cu forma.
Principalele aplicatii sunt n domeniile roboticii, microscopiei electronice, imagisticii biomedicale, telemetriei, inspectiei automate a produselor, analizei de scen
a. Aplicatiile
industriale sunt impulsionate si de continua dezvoltare si mbunatatire a arhitecturilor
de calcul ce implementeaz
a transform
ari morfologice.

71

6.1
6.1.1

Transform
ari morfologice de baz
a
Transformarea Hit or Miss

Transformarea Hit or Miss a fost introdus


a n [14] si reprezint
a poate cea mai primar
a
si evident
a exemplificare a conceptului de studiu al formei. Orice form
a poate fi considerat
a ca o reuniune de componente (blocuri, regiuni, scheme) individuale independente,
plasate n diverse pozitii; a recunoaste forma implic
a identificarea local
a a p
artilor sale
componente si deci o operatie simpl
a de potrivire de m
asti (pattern matching).
Rezultatul aplic
arii acestei transform
ari de identificare (numit
a uneori si transformarea
totul sau nimic) este o multime ale c
arei puncte satisfac criteriul de identificare a unei
vecin
at
ati cu masca aplicat
a.
Transformarea Hit or Miss se defineste pe baza unei partitii (B1 , B2 ) a elementului
structurant B: B = B1 B2 si B1 B2 = ca:
A U B = {x|(B1 )x A} {x|(B2 )x AC }

(6.1)

n (6.1) A este multimea c


areia i se aplic
a transformarea, AC este complementara multimii
A, B este elementul structurant si (Bi )x este multimea Bi translatat
a cu vectorul x.
Trebuie remarcat faptul c
a oric
arui element structurant trebuie s
a i se ataseze o origine.
Figura 6.1 prezint
a o exemplificare a transform
arii Hit or Miss.
Se poate observa c
a aceast
a transformare produce ca rezultat o multime de puncte ce
satisfac concomitent un set de conditii de tipul (Bi )x Ai , unde {Ai } formeaz
a o partitie
a spatiului.
Este evident c
a {A, AC } formeaz
a o partitie, dar aceasta nu este singura posibil
a. Anumite aplicatii practice pot impune ns
a situatii mai complexe, a c
aror rezolvare dep
aseste
cadrul morfologiei binare [14]. Astfel se pot cita asa numitele cazuri: cazul petrografic
(provenit din analiza hidrocarburilor si a mineralelor), n care p componente mpart exact
spatiul (f
ar
a a l
asa locuri libere) si cazul geografic, n care p componente nu ocup
a ntreg spatiul si se pot ntrep
atrunde (cazul zonelor de p
adure cu diferite specii de copaci).
Figura 6.2 prezint
a o astfel de transformare.
Transformarea Hit or Miss, n forma prezentat
a, prezint
a un interes mai mult teoretic,
datorit
a situ
arii sale la baza constructiei morfologiei matematice. Se va ar
ata ns
a c
a este
posibil
a exprimarea acesteia si n functie de transform
arile morfologice fundamentale larg
utilizate (erodarea si dilatarea).

72

Fig. 6.1: Exemplificare a transform


arii de identificare a configuratiilor locale (Hit or
Miss); n particular exemplul prezint
a determinarea punctelor de tip colt dreapta-jos.

Fig. 6.2: Exemplu de transformare Hit or Miss extins


a pentru o partitie cu trei multimi
a spatiului imaginii.
73

6.1.2

Erodarea morfologic
a

Erodarea morfologic
a a multimii A prin elementul structurant B se defineste ca multimea
punctelor (elementelor) cu care se poate translata elementul structurant astfel nct acesta
s
a fie inclus n multimea de prelucrat A:
A  B = {x|Bx A}

(6.2)

Erodare morfologic
a a multimii A este transformata Hit or Miss a multimii cu un element
structurant B = B1 (B2 = ):
A  B = {x|(B1 )x A} {x|()x AC } = {x|(B)x A}
Aceast
a relatie de definitie se mai poate exprima ca:
A  B = {x|Bx A} = {x|b B, a A astfel nct b + x = a} =
= {x|b B, a A astfel nct x = a b} =

bB

Ab =

(6.3)
Ab (6.4)

bB S

Figura 6.3 prezint


a rezultatul erod
arii unor multimi discrete, iar figura 6.4 prezint
a rezultatul erod
arii unor multimi continue.

Fig. 6.3: Exemple de erodare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.

74

Fig. 6.4: Rezultatul erod


arii unor multimi continue cu un element structurant de tip disc
(originea elementului structurant este centrul discului).

6.1.3

Dilatarea morfologic
a

Dilatarea morfologic
a a multimii A cu elementul structurant B se defineste ca multimea
punctelor (elementelor) cu care se poate translata elementul structurant astfel nct acesta
s
a aib
a puncte comune cu multimea de prelucrat A:
A B = {x|Bx A = }

(6.5)

Erodare morfologic
a a multimii A este complementara transformatei Hit or Miss a multimii
cu un element structurant B = B2 (B1 = ):
(AB)C = {x|(B1 )x A}{x|(B2 )x AC } = {x|()x A}{x|(B2 )x AC } = {x|(B)x AC }
A B = {x|(B)x AC }C = {x|(B)x

AC } = {x|Bx A = }

Relatia de definitie mai poate fi exprimat


a si ca:
A B = {x|Bx A = } = {x|b B, a A astfel nct b + x = a} = (6.6)
= {x|b B, a A astfel nct x = a b} =

bB

Ab =

Ab (6.7)

bB S

Figura 6.5 prezint


a rezultatul erod
arii unor multimi discrete, iar figura 6.6 prezint
a rezultatul dilat
arii unor multimi continue.

75

Fig. 6.5: Exemple de dilatare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.

Fig. 6.6: Rezultatul dilat


arii unor multimi continue cu un element structurant de tip disc
(originea elementului structurant este centrul discului).

76

6.1.4

Propriet
atile erod
arii si dilat
arii

Se observ
a c
a, n general, efectul operatiei de dilatare este de a m
ari obiectul; acesta creste,
se umfl
a, corespunz
ator formei si dimensiunii elementului structurant. Efectul erod
arii
este, dup
a cum am v
azut, o micsorare a obiectului. Modificarea dimensiunii obiectului este strict determinat
a de forma elementului structurant: un element structurant
simetric (disc, segment de dreapt
a centrat n origine) provoac
a o modificare simetric
a
a dimensiunilor; dac
a elementul structurant nu este simetric, efectele se vor manifesta
asupra obiectului pe directia elementului structurant si n sens contrar acestuia. Efectele
erod
arii si dilat
arii vor fi discutate n continuare, pe baza propriet
atilor matematice ale
acestora.
Dilatarea si erodarea formeaz
a o pereche de operatii duale:
(A B)C = AC  B si (A  B)C = AC B

(6.8)

Demonstratia este imediat


a:
A B = {x|Bx A = }, de unde rezult
a
(AC B)C = {x|Bx AC = }C = {x|Bx AC = } = {x|Bx A} = A  B

(6.9)

a
si A  B = {x|Bx A} de unde rezult
(AC  B)C = {x|Bx AC }C = {x|Bx

AC } = {x|Bx A = } = A B

(6.10)

Interpretarea dualit
atii ca obtinerea acelorasi efecte, dar asupra unor multimi complementare, este corect
a: dac
a dilatarea va m
ari obiectul (multimea), aceasta nseamn
a c
a
va micsora n acelasi timp fundalul (complementara multimii), deci va fi echivalent
a cu o
erodare a fundalului. Dac
a erodarea micsoreaz
a obiectul (multimea), aceasta nseamn
a
o m
arire simultan
a a fundalului (complementara multimii), deci o dilatare a acestuia.
Un caz particular ce poate apare este acela al elementelor structurante ce nu contin
originea. Folosind un asemenea element structurant, rezultatele operatiilor morfologice
vor fi translatate fata de pozitia la care ar fi fost de asteptat s
a apar
a.
Leg
atura ntre translatia elementului structurant (faptul c
a acesta nu contine originea
poate fi interpretat ca o deplasare) sau a multimii (obiectului) care se prelucreaz
a si
deplasarea rezultatului operatiilor morfologice este dat de propriet
atile de invarianta la
translatie:
(6.11)
At B = (A B)t si At  B = (A  B)t
A Bt = (A B)t si A  Bt = (A  B)t
77

(6.12)

Aceste propriet
ati de invarianta la translatie (translatia obiectului si translatia elementului structurant) pot avea mai multe interpret
ari. n primul rnd, invarianta la translatie
asigur
a faptul c
a forma rezultat
a prin dilatarea sau erodarea unei multimi este aceeasi,
indiferent de pozitia multimii prelucrate. n al doilea rnd, relatiile enuntate asigur
a suficienta consider
arii doar a elementelor structurante ce contin originea; un element structurant ce nu contine originea poate fi obtinut prin translatie dintr-un element structurant
ce contine originea; multimea (forma) rezultat
a n urma prelucr
arii va trebui translatat
a
n sens opus elementului structurant.
n acelasi grup de propriet
ati de invarianta a operatiilor morfologice se ncadreaz
a si
invarianta la scalare (omotetie). Dac
a este parametrul nenul de scalare, atunci:
1
1
1
1
(A B) = A B si (A  B) = A  B

(6.13)

ntr-adev
ar,
1
1
1
1
(AB) = (A+B S ) = {x|x = ab, a A, b B} = {x|x = a b, a A, b B} =

1
1
= A + BS = A B

1
1
1
1
1
(A  B) = (AC B)C = ( (AC B))C = (AC B)C = A  B

Relatiile de invarianta la scalare afirm


a c
a rezultatul unei transform
ari morfologice aplicate unei versiuni scalate a formei A este identic cu aceeasi scalare aplicat
a rezultatului
transform
arii morfologice a formei A prin acelasi element structurant scalat invers.
Propriet
atile de monotonie a unei transform
ari nu pot fi neglijate la descrierea acesteia.
Att dilatarea ct si erodarea sunt cresc
atoare fata de multimea ce se prelucreaz
a (forma):
dac
a A1 A2 , atunci
A1 B A2 B si A1  B A2  B

(6.14)

Monotonia fata de elementul structurant folosit este diferit


a: dilatarea este cresc
atoare,
iar erodarea este descresc
atoare: dac
a B1 B2 , atunci:
A B1 A B2 si A  B2 A  B1

(6.15)

Aceste propriet
ati subliniaz
a corectitudinea interpret
arii dilat
arii ca o ad
augare, ca o
ngrosare, iar a erod
arii ca o subtiere; grosimea stratului ad
augat sau ndep
artat este
78

dat
a de elementul structurant. Deci cu ct elementul structurant este mai mare, cu att
corpul se va m
ari mai mult n urma dilat
arii sau se va micsora mai mult n urma erod
arii.
n general, dilatarea este extensiv
a, adic
a:
A A B.

(6.16)

O conditie suficient
a pentru ca aceast
a proprietate s
a fie adev
arat
a este ca elementul
structurant s
a contin
a originea, {0n } B. Atunci
AB =

bB S

Ab = A (

bB S {0n }

Ab ) A

(6.17)

Conditia ca elementul structurant s


a contin
a originea nu este ns
a si o conditie necesar
a
(a se vedea figura 6.7).

Fig. 6.7: Desi elementul structurant nu si contine originea, rezultatul dilat


arii include
forma original
a.
n general erodarea este antiextensiv
a, adic
a:
AB A

(6.18)

O conditie suficient
a pentru ca aceast
a proprietate s
a fie adev
arat
a este ca elementul
structurant s
a contin
a originea, {0n } B. Atunci
AB =
bB S

Ab = A (

bB S {0

n}

Ab ) A

(6.19)

Conditia ca elementul structurant s


a contin
a originea nu este ns
a si o conditie necesar
a
(a se vedea figura 6.8).
79

Fig. 6.8: Desi elementul structurant nu si contine originea, rezultatul erod


arii este inclus
n multimea initial
a.
Dilatarea este pseudocomutativ
a, proprietate care se exprim
a ca
A B = (B A)S

(6.20)

A B = A + B S = (AS + B)S = (B + AS ) = (B A)S

(6.21)

Proprietatea de asociativitate a dilat


arii se scrie ca
A (B C) = (A B) C S

(6.22)

ntr-adev
ar:
A(B C) = A+(B C)S = A+(B +C S )S = A+B S +C = (AB)+C = (AB)C S
(6.23)
Erodarea nu este nici comutativ
a (sau pseudocomutativ
a) si nici asociativ
a. Mai mult,
asociativitatea erod
arii se scrie ca:
(A  B)  C = A  (B C)

(6.24)

ntr-adev
ar:

(AB)C = ((AB)C C)C = ((AC B)C)C = (AC (BC))C = A(BC) (6.25)


Propriet
atile de asociativitate ale dilat
arii si erod
arii pot fi interpretate si ca o descompunere a elementului structurant; dac
a un element structurant poate fi considerat
ca descompus prin dilatare n X = B C, atunci operatia morfologic
a efectuat
a prin
elementul structurant respectiv este echivalent
a cu operatiile morfologice prin p
artile
descompunerii elementului structurant, efectuate succesiv, adic
a:
80

A X = (A B) C S si A  X = (A  B)  C
Dilatarea si erodarea sunt transform
ari (operatii) ce nu p
astreaz
a num
arul de conexit
ati
(num
arul de obiecte). Rezultatul unei erod
ari poate fi o multime vid
a (dac
a elementul
structurant nu poate fi inclus n form
a pentru nici o pozitie) sau mai multe forme (componente conexe). Rezultatul dilat
arii unei multimi formate din mai multe componente
conexe poate fi o singur
a component
a conex
a; g
aurile continute ntr-o form
a pot fi
umplute.
Aceste propriet
ati ale erod
arii si dilat
arii sunt fundamentul folosirii practice a acestora:
prin erodare se pot elimina dintr-o multime componentele conexe ce sunt mai mici dect
elementul structurant folosit (sau sunt mult diferite de acesta din punctul de vedere al
formei) - aplicatiile ce ar putea folosi o asemenea comportare sunt separarea obiectelor
dup
a form
a si dimensiune si eliminarea zgomotului suprapus scenei. Prin dilatare se
pot grupa ntr-o singur
a entitate obiecte apropiate si se pot umple golurile nglobate n
obiecte.
Dilatarea si erodarea nu sunt operatii inversabile (nu admit o transformare invers
a). Cu
att mai mult, dilatarea nu este inversa erod
arii si erodarea nu este inversa dilat
arii;
exemplele prezentate n figurile 6.9 si 6.10 ilustreaz
a aceast
a afirmatie.
(A  B) B = A si (A B)  B = A

(6.26)

O alt
a categorie de propriet
ati se refer
a la distributivitatea operatiilor morfologice fata
de operatiile cu multimi. Pentru dilatare avem:

(A B) C = (A C) (B C)
(A C) (B C) = (

Ac ) (

cC S

Bc ) = (
cC S

cC S

Ac Bc ) =

cC S

(6.27)
(A B)c = (A B) C

A (B C) = (A B) (A C)
(A B) (A C) = (A + B S ) (A + C S ) = (B S + A) (C S + A) = (
=

(BaS CaS ) =

aA

(6.28)

aA

BaS ) (

CaS ) =
aA

(B C)Sa = (B C)S + A = A + (B C)S = A (B C)

aA

81

Fig. 6.9: Dilatarea si erodarea nu sunt transform


ari inverse una alteia; ilustrare pentru
multimi discrete.

Fig. 6.10: Dilatarea si erodarea nu sunt transform


ari inverse una alteia; ilustrare pentru
multimi continue.

82

Aceast
a din urm
a relatie poate fi interpretat
a si ca o descompunere prin reuniune a
elementului structurant X = B C, caz n care operatia morfologic
a efectuat
a prin
elementul structurant respectiv este echivalent
a cu operatiile morfologice prin p
artile
descompunerii elementului structurant, efectuate succesiv, adic
a:

A X = (A B) (A C)

(6.29)

Erodarea are propriet


ati asem
an
atoare dilat
arii fata de intersectia multimilor:

A  (B C) = (A  B) (A  C)
(A  B) (A  C) = (

tB S

At ) (

At ) =
tC S

(6.30)

At =
tB S C S

t(BC)S

At = A  (B C)

(A B)  C = (A  C) (B  C)
(A  C) (B  C) = (

cC S

Ac ) (

Bc ) =
cC S

cC S

(Ac Bc ) =

cC S

(A B)c = (A B)  C

nrudite cu propriet
atile de distributivitate deja enuntate, exist
a o serie de inegalit
ati
(relatii de incluziune) de aceeasi natur
a:
A (B C) (A B) (A C) si (B C) A (B A) (C A)
A  (B C) (A  B) (A  C) si (B C)  A (B  A) (C  A)
Aceast
a tratare [aproape] exhaustiv
a a propriet
atilor operatiilor morfologice de baz
a (dilatare, erodare) se reg
aseste n majoritatea monografiilor de morfologie matematic
a, ca de
exemplu n [14], [7]. Desi, n esenta, propriet
atile tratate sunt aceleasi, se impun cteva
preciz
ari.
Notatiile introduse n acest text sunt diferite pentru operatiile Minkowski (adunare + si
sc
adere ) si pentru operatiile morfologice (dilatare si erodare ). Leg
atura dintre
aceste operatii este dat
a de:
A B = A + B S si A  B = A B S
83

(6.31)

n majoritatea lucr
arilor de morfologie ns
a, nu se face nici o distinctie de notatie ntre
aceste operatii, ceea ce poate genera confuzii. Chiar n conditiile p
astr
arii acelorasi notatii, exist
a abord
ari diferite privind definirea operatiilor morfologice. n [7] dilatarea si
erodarea sunt identice cu adunarea, respectiv sc
aderea Minkowski (deci f
ar
a simetrizarea
elementului structurant). Avantajul unei asemenea formaliz
ari este existenta propriet
atilor de comutativitate si asociativitate a dilat
arii (determinate direct de comutativitatea si asociativitatea adun
arii Minkowski). n plus, rezultatul dilat
arii este o crestere
a formei pe directia si n sensul elementului structurant folosit.
Dezavantajul acestei abord
ari este acela c
a trebuie redefinit conceptul de dualitate 6.8
(dac
a se doreste p
astrarea propriet
atii fundamentale de dualitate a dilat
arii si erod
arii),
dup
a cum urmeaz
a:
Dual(Op(A, B))|B parametru = (Op(AC , B S ))C

(6.32)

n [14] este preferat


a definirea dilat
arii unei multimi ca adunarea Minkowski a multimii
cu elementul structurant simetrizat.

6.1.5

Aspecte de implementare

Din punct de vedere practic (al implement


arii), elementul structurant poate fi interpretat
analog suportului ferestrei de filtrare folosit
a pentru orice operatie bazat
a pe principiul
ferestrei glisante: cu valorile selectate din imagine se face ceva. Va trebui ns
a introdus
un mecanism de specificare a formei ferestrei de filtrare (elementului structurant) care
s
a permit
a modificarea relativ simpl
a a acesteia (puterea morfologiei matematice const
a
n alegerea a diferite tipuri de elemente structurante optime unei anumite prelucr
ari).
Conventia de reprezentare a imaginilor binare este de a avea asociate valori nule punctelor
de fundal si valori pozitive (1 sau 255) punctelor obiect1 . n aceste conditii, putem g
asi
o echivalenta intuitiv
a simpl
a operatiilor morfologice de erodare si dilatare. Rezultatul
operatiei de erodare ntr-un pixel este nenul dac
a si numai dac
a elementul structurant
plasat cu originea n acel punct este inclus n forma de prelucrat, si deci, dac
a si numai
dac
a toate valorile selectate de elementul structurant sunt nenule; aceasta nseamn
a c
a
putem implementa operatia de erodare printr-o operatie de minim. Rezultatul operatiei
de dilatare ntr-un pixel este nul dac
a si numai dac
a elementul structurant plasat cu
originea n acel punct nu are nici un punct comun cu forma de prelucrat, si deci, dac
a si
numai dac
a toate valorile selectate de elementul structurant sunt nule; aceasta nseamn
a
c
a putem implementa operatia de dilatare printr-o operatie de maxim. n cele ce urmeaz
a
prezent
am codul pentru operatia de erodare.
# define SIZE_MAX_ES=16;
1

Reprezentarea grafic
a a acestei imagini, realizat
a cu tabela de nivele de gri normal
a va afisa deci
obiecte albe pe un fundal negru.

84

int min,min_i,max_i,min_j,max_j;
integer es[SIZE_MAX_ES][2];
min_i=0;max_i=0,min_j=0,max_j=0;
for (k=0;k<dim_es;k++) {
if (min_i > es[k][1])
min_i=es[k][1];
if (max_i < es[k][1])
max_i=es[k][1];
if (min_j > es[k][2])
min_j=es[k][2];
if (max_j < es[k][2])
max_j=es[k][2]; }
for (i=-min_i;i<NRLIN-max_i;i++)
for (j=-min_j;j<NRCOL-max_j;j++) {
min=MAXINT;
for (k=0;k<dim_es;k++)
if (min > img[i+es[k][1]][j+es[k][2]]) then
min=img[i+es[k][1]][j+es[k][2]];
img_out[i][j]=min; }
Elementul structurant folosit este reprezentat prin matricea de ntregi es, avnd cel mult
16 linii si 2 coloane. Fiecare linie a matricii corespunde unui punct din elementul structurant, reprezentat prin coordonatele fata de originea elementului structurant: es[k][1]
si es[k][2]. De exemplu, elementul structurant orizontal, centrat, avnd trei puncte este
reprezentat prin es = [0 1; 0 0; 0 1]T . Num
arul de puncte ce compun elementul structurant este dim_es. Prima bucl
a for determin
a dimensiunile dreptunghiului de ncadrare
a elementului structurant, pentru a putea evita efectele de margine la prelucrarea imaginii.

6.2

Transform
ari morfologice derivate

Vom numi operatie (transformare) morfologic


a derivat
a operatia morfologic
a construit
a
ca o combinatie de transform
ari de baz
a: erod
ari, dilat
ari si operatii clasice ansambliste.

6.2.1

Deschiderea si nchiderea

Dup
a cum s-a ar
atat, erodarea si dilatarea nu sunt transform
ari inverse una alteia (deci
alternarea lor va produce un rezultat diferit de multimea original
a ce a fost prelucrat
a).
Aceast
a observatie conduce la ideea utiliz
arii unor iter
ari ale operatiilor morfologice de

85

baz
a, obtinnd astfel operatii mai complexe, ale c
aror propriet
ati le fac mai adecvate
utiliz
arii n scopuri practice.
Deschiderea morfologic
a a multimii A prin elementul structurant B se defineste ca erodarea multimii cu elementul structurant respectiv, urmat
a de dilatarea cu elementul
structurant simetrizat:
B = (A  B) B S

(6.33)

nchiderea morfologic
a a multimii A prin elementul structurant B se defineste ca dilatarea
multimii cu elementul structurant respectiv, urmat
a de erodarea cu elementul structurant
simetrizat:
A B = (A B)  B S

(6.34)

Proprietatea de baz
a a deschiderii si nchiderii morfologice este aceea c
a sunt transform
ari
duale una alteia (proprietate ce deriv
a din dualitatea blocurilor constituente de baz
a,
dilatarea si erodarea). Aceast
a proprietate permite interpretarea rezultatelor unei operatii
si deducerea propriet
atilor acesteia pe baza caracteristicilor dualei sale.
(A

B)C = AC B si (A B)C = AC

(6.35)

Demonstratia acestor propriet


ati este imediat
a:
(AC

B)C = ((AC  B) B S )C = ((A B)C B S )C = (A B)  B S = A B

(AC B)C = ((AC B)  B S )C = ((A  B)C  B S )C = (A  B) B S = A

n mod evident, rezultatul unei deschideri sau al unei nchideri este diferit de multimea
ce a fost prelucrat
a. Relatia dintre rezultatul prelucr
arii si multimea initial
a este dat
a de
propriet
atile de extensivitate ale transform
arilor.
Deschiderea morfologic
a este antiextensiv
a, adic
aA

BA

nchiderea morfologic
a este extensiv
a, adic
a AAB
Deci, pentru a sintetiza, putem afirma c
a:
A

B A AB
86

(6.36)

Relatiile pot fi interpretate ca o modificare sigur


a a multimii: prin deschidere se vor
elimina o parte dintre elementele multimii ce se prelucreaz
a, iar prin nchidere se adaug
a
elemente noi multimii.
Proprietatea de idempotenta a operatiilor introduce o limitare a modific
arilor: multimea
obtinut
a dup
a o deschidere sau nchidere este invariant
a la repetarea operatiei:
(A B) B = A B si (A

B)

B=A

(6.37)

Relatiile se demonstreaz
a folosind propriet
atile deja enuntate ale deschiderii si nchiderii
(extensivitate) si propriet
atile de monotonie ale operatiilor morfologice de baz
a.
nchiderea si deschiderea mostenesc o parte dintre propriet
atile operatiilor morfologice de
baz
a: invarianta la translatie si la scalare, monotonia fata de multimea prelucrat
a si fata
de elementul structurant folosit. Din punctul de vedere al acestor propriet
ati, deschiderea
se comport
a analog erod
arii iar nchiderea are o comportare analoag
a dilat
arii.
At

B = (A

1
(A

B) = A

B)t si At B = (A B)t
1
B

si 1 (A B) = A 1 B

Dac
a A1 A2 : A1

B A2

B si A1 B A2 B.

Dac
a B1 B2 : A

B2 A

B1 si A B1 A B2

n ceea ce priveste propriet


atile legate de comportarea fata de translatie a operatorilor
de deschidere si nchidere, merit
a subliniat faptul c
a proprietatea este identic
a cu cea
a erod
arii si dilat
arii doar la translatia multimii prelucrate (rezultatul unei deschideri
sau nchideri a unei multimi este acelasi, indiferent de pozitia spatial
a a multimii). n
cazul translat
arii elementului structurant, rezultatul operatiei este acelasi, invariant la
translatie (ca rezultat a iter
arii erod
arii si dilat
arii cu elemente structurante simetrice).
Pentru realizarea efectiv
a a operatiilor de deschidere si nchidere este important
a exprimarea acestora ca operatii la nivelul elementelor multimilor ce se prelucreaz
a (si nu ca
o iterare de operatii morfologice de baz
a). Deschiderea mai poate fi exprimat
a si ca
multimea elementelor structurante translatate ce sunt incluse n multimea de prelucrat:
A

B=

Bx

(6.38)

Bx A

nchiderea mai poate fi exprimat


a si ca multimea punctelor pentru care toate elementele
structurante translatate ce le contin au puncte comune cu multimea de prelucrat:
87

AB =

(6.39)

Bx
Bx A=

Pe baza acestor exprim


ari se pot deduce si efectele practice ale deschiderii si nchiderii
asupra formelor (multimilor). Prin deschidere, formele mai mici ca elementul structurant folosit vor fi eliminate, se l
argesc golurile nglobate n obiecte, contururile sunt
netezite prin tesirea convexit
atilor iar obiectele unite prin istmuri sunt separate. Datorit
a propriet
atii de dualitate, nchiderea va avea aceleasi efecte asupra fundalului (complementarei obiectelor) pe care le are deschiderea asupra multimilor. nchiderea umple
golurile nglobate n obiecte (dac
a aceste g
auri sunt mai mici dect elementul structurant
folosit), netezeste contururile formelor prin umplerea concavit
atilor si uneste obiectele
foarte apropiate (umple strmtorile).
Efectele operatiilor de deschidere si nchidere pot fi considerate ca analoage efectelor unei
filtr
ari de netezire a formelor si eliminare a zgomotului (zgomot interpretat ca obiecte si
g
auri de mici dimensiuni). n [14], n cadrul teoriei algebrice a morfologiei matematice, un
filtru este definit ca o operatie cresc
atoare si idempotent
a. Trebuie f
acut
a deci distinctia
ntre filtrul algebric si filtrul obisnuit, n sensul teoriei prelucr
arii semnalelor.

6.2.2

Filtrele alternate secvential

Filtrele morfologice sunt transformari neliniare ale semnalului, care modific


a local caracteristici geometrice (de form
a). Teoria algebric
a general
a a filtrelor [14] defineste o
transformare ca filtru dac
a aceasta este cresc
atoare si idempotent
a, ceea ce nseamn
a
deci c
a deschiderea si nchiderea sunt filtre, n timp ce erodarea si dilatarea nu sunt filtre.
Dac
a o imagine (multime) este filtrat
a prin deschideri dup
a elemente structurante (discuri
de raz
a r) cresc
atoare, aceasta este echivalent cu a aplica deschiderea dup
a elementul
structurant cu raza cea mai mare. Totusi, se pot construi filtre ce actioneaz
a asupra
obiectelor si detaliilor n mod gradat, pe masura iter
arii: aceste sunt filtrele alternate
secvential, ce alterneaz
a deschideri si nchideri dup
a elemente structurante de dimensiune
cresc
atoare:
F AS(A) = (((((A B) B) 2B) 2B) 3B) ...
(6.40)
sau
F AS(A) = (((((A B)

6.2.3

B) 2B)

2B) 3B)

...

(6.41)

Operatori morfologici de contur

O problema curent
a a prelucr
arilor de imagini este extragerea punctelor de contur. Cazul
n care imaginea este binar
a constituie o simplificare a metodelor si calculelor. P
astrnd
88

interpretarea pixelilor ca fiind puncte ale obiectului sau ale fundalului, punctele de contur sunt acele puncte de obiect ce au cel putin un punct de fundal vecin. n general,
vecin
atatea folosit
a este cea de tip disc unitar, a c
arei form
a va depinde puternic de tipul
de metric
a folosit
a.
Exist
a trei extractoare morfologice de contur: conturul interior (6.42), conturul exterior
(6.43) si gradientul morfologic (6.44).
A = A A  B

(6.42)

A = A B A

(6.43)

grad A = A B A  B

6.3

(6.44)

Extinderea morfologiei matematice la nivele de


gri

Pna n acest moment s-au prezentat operatiile morfologice clasice, adic


a aplicate asupra
unor seturi (multimi). Acestea prezint
a limitarea implicit
a n aplicarea numai asupra unei
categorii particulare de imagini, si anume cele a c
aror structur
a poate fi usor si imediat
asociat
a unor multimi, adic
a imaginile binare. Pentru extinderea operatiilor morfologice
la functii se vor construi transform
ari ce permit trecerea de la o reprezentare de tip functie
la o reprezentare de tip multime.
n cele ce urmeaz
a ne vom referi la o submultime A a spatiului discret n-dimensional, adic
a
n
A Z . Elementele multimii A sunt puncte, reprezentate prin vectorul n-dimensional al
coordonatelor, x A, cu x = (x1 , x2 , ..., xn ). Ordinea coordonatelor este arbitrar
a.
Vom numi primele n 1 coordonate ale unui punct x domeniu spatial al multimii si
cea de-a n-a coordonat
a, suprafata multimii. Vom nota aceste p
arti ale multimii A cu
A(1,n1) si respectiv A(n,n) . Putem avea n moduri diferite de a alege aceste partitii ale
coordonatelor (corespunznd modului n care se poate alege o coordonat
a dintr-un total
de n).
Vrful (top) sau suprafata de vrf a unei multimi A este functia T (A) : A(1,n1) A(n,n)
definit
a de:
T (A)(z) = max{y | (z, y) A, z A(1,n1) }
(6.45)
n acest mod se introduce o functie, pornind de la o multime; functia este cu valori
ntregi (functie scalar
a) de argument vectorial n 1-dimensional. Pentru exemplificare
consider
am cazul n care n = 2, deci fiecare punct al multimii A este un vector bidimensional, x = (i, j). Consider
am coordonata i ca fiind domeniul spatial si coordonata j ca
89

vrful lui A

+
+
+
+ +
+
+ +
+ + + +
+ + + +
+ + + +
+ +

+
+
+
+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+
+

+ +

multimea A

+ +

i
functia asociata multimii A

Fig. 6.11: Exemplificare pentru functia vrf a unei multimi.


fiind suprafata multimii. Atunci, prin transformarea vrf, asociem multimii A o functie
definit
a pe domeniul s
au spatial si cu valori n suprafata sa.
Umbra unei functii oarecare f este definit
a ca transformarea f : B Zn1 C Z
dat
a de:
U (f ) = {(z, y) | z B, y Z, y  f (z)}
(6.46)

n acest mod, plecnd de la o functie de variabil


a vectorial
a n 1-dimensional
a, cu valori
scalare, se obtine o multime ale c
arei elemente sunt vectori n-dimensionali. Multimea
obtinut
a este semideschis
a (nemarginit
a).
j

functia f
+
+
+
+
+
+
+
O +
+
+
+
+

+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+

umbra lui f
i
umbra este nemarginita

Fig. 6.12: Determinarea umbrei unei multimi.


n mod evident, vom avea urm
atoarele relatii ntre cele dou
a transform
ari multime-functie
(vrful si umbra):
T (U(F )) = f si A U (T (A))
(6.47)
90

Operatiile morfologice pentru functii se definesc prin intermediul transform


arii acestora
n multimi (reducnd astfel operatiile pe functii la operatii pe multimi, asa cum au fost
prezentate la morfologia binar
a):
f

g = T (U (f)

U (g)) si f g = T (U (f) U (g))

(6.48)

Ca si n cazul morfologiei pe multimi, g se numeste element structurant (functie structurant


a). Se numeste element structurant flat, elementul structurant pentru care g(y) =
0, y Supp(g). Aceste elemente structurante de tip flat sunt echivalente cu cele folosite
n morfologia clasic
a pe multimi.
Forma echivalent
a a definitiilor erod
arii si dilat
arii (folosite n mod efectiv n practic
a)
este, pentru x Supp(f ) :
f

g=

min

ySupp(g)

{f (x y) g(y)} , f g =

max {f (x y) + g(y)}

ySupp(g)

(6.49)

Dac
a se utilizeaz
a elemente structurante plate (deci caracterizate doar de forma suportului, si nu si de valori asociate acestora), cele dou
a relatii de definitie devin identice cu
filtr
arile de ordine de rang minim si respectiv maxim:
f

g=

min

ySupp(g)

{f(x y)} , f g =

91

max {f (x y)}

ySupp(g)

(6.50)

Capitolul 7
METODE DE COMPRESIE A
IMAGINILOR
Termenul de compresie a imaginilor (uneori numit si codare a imaginilor) se refer
a la o
clas
a larg
a de tehnici si metode al c
aror scop este reprezentarea unui imagini date cu
un num
ar ct mai mic de biti (mai mic dect num
arul de biti al reprezent
arii initiale).
Necesitatea reducerii cantit
atii de informatie necesar
a reprezent
arii este evident
a dac
a
consider
am cazul memor
arii imaginilor radiografice (4000 x 2500 pixeli, cu 4096 nivele
de gri, deci 14,3 MB) sau al transmisiei de televizune alb-negru (625 x 625 pixeli cu 256
nivele de gri, de 50 de ori pe secund
a, deci un flux de 18.6 MB/ secund
a) [9]. Procesul de
recompunere a imaginii initiale din reprezentarea restrns
a se numeste decompresie sau
decodare; este evident c
a prin decodare trebuie s
a se obtin
a o imagine ct mai apropiat
a de imaginea orginal
a. Exist
a dou
a categorii fundamentale de tehnici de compresie
(codare): codarea f
ar
a pierderi (n care imaginea decodat
a este identic
a cu imaginea initial
a) si codarea cu pierderi, n care se admit mici diferente fata de original. Calitatea
unui procedeu de compresie (pentru o imagine dat
a) se m
asoar
a prin factorul de calitate
(raportul semnal zgomot (3.4) dintre imaginea original
a f si imaginea decodat
a g) si
factorul (raportul) de compresie. Factorul de compresie C este raportul dintre cantitatea
de informatie necesar
a reprezent
arii imaginii initiale si cantitatea de informatie necesar
a
reprezent
arii imaginii codate; evident compresia are loc dac
a factorul de compresie este
supraunitar (C > 1). Uneori, factorului de compresie i se asociaz
a (sau este nlocuit de)
rata de compresie: cantitatea de informatie necesar
a reprezent
arii comprimate a fiec
arui
pixel al imaginii; rata de compresie se m
asoar
a n biti per pixel (bpp).
O alt
a clasificare posibil
a a tehnicilor de compresie se poate face dup
a tipul imaginii
c
areia i se aplic
a: vom face astfel distinctia ntre compresia imaginilor binare si compresia
imaginilor cu nivele de gri. Se impune totusi o observatie: metodele de codare ce se vor
prezenta n cadrul tehnicilor speifice imaginilor binare pot fi folosite pentru compresia
oric
arei succesiuni de valori binare, indiferent de semnificatia acestora (ceea ce nseamn
a
c
a ar putea fi folosite si pentru compresia imaginilor cu nivele de gri) si sunt metode de
92

compresie f
ar
a pierderi.

7.1

Compresia imaginilor binare

Putem considera c
a singura categorie de imagini binare de interes sunt imaginile n albnegru (sau monocrome); valorile punctelor acestora sunt fie 0 (reprezentnd fundalul de
culoare alb
a), fie 1 (reprezentnd punctele de interes, de culoare neagr
a)1 . Cele dou
a clase
de metode de codare pe care le avem n vedere sunt codarea entropic
a (metoda de codare
Human) si metodele de codare on-line (pe flux de biti); deosebirea dintre aceste metode
(la un nivel al implement
arii) este c
a pentru codarea entropic
a este necesar
a parcurgerea
si stocarea intermediar
a a ntregii imagini.

7.1.1

Codarea entropic
a (Human)

Codarea entropic
a (Human) este metoda optimal
a de codare a unei surse de informatie.
Codarea sursei de informatie S ale c
arei mesaje sunt {s1 , s2 , ..., sN }, de probabilit
ati
{p(s1 ), p(s2 ), ..., p(sN )} prin alfabetul X cu D simboluri nseamn
a a asocia fiec
arui mesaj
si al sursei primare de informatie un sir de simboluri din alfabetul codului. Lungimea
medie a cuvintelor de cod este dat
a de raportul dintre entropia sursei primare si entropia
alfabetului codului:
H(S)
l=
(7.1)
H(X)
Se doreste obtinerea unei lungimi medii minime a cuvintelor de cod, si deci, echivalent, m
arirea entropiei alfabetului codului; la limit
a, lungimea media minim
a posibil
a de
obtinut este:
H(S)
(7.2)
lmin =
log D
Procedeul practic prin care se realizeaz
a alocarea simbolurilor din alfabetul codului astfel
nct entropia acestuia s
a fie maximizat
a (metoda Human) se bazeaz
a pe reducerea
iterativ
a a num
arului de simboluri ale sursei de codat si construirea unei surse restrnse.
La fiecare etap
a cele D simboluri cele mai putin probabile ale sursei de informatie sunt
reunite ntr-un nou simbol; procedeul de restrngere continu
a pn
a cnd se obtine o
surs
a redus
a cu exact D simboluri. Apoi, pentru fiecare reunire de simboluri, fiecare
mesaj individual va primi codul cuvntului reunit ca prefix, urmat de cte un simbol din
alfabetul codului. Vom considera urm
atorul exemplu.
O sursa S genereaza 6 simboluri, de probabilitati descrise de vectorul P = [0.3; 0.25; 0.2; 0.1;
0.1; 0.05]. Sursa este codata optimal, simbol cu simbol, cu cuvinte de cod generate cu
1

Deci conventia de reprezentare prin culori este modificat


a fata de conventia general
a utilizat
a 0 nu
mai este negru, ci alb.

93

simboluri dintr-un alfabet ternar. Sa se calculeze cuvintele de cod, arborele de codare si


eficienta codarii.
Codarea optimal
a a unei surse se realizeaz
a conform algoritmului Human. Se stie c
a
num
arul de simboluri ale sursei ce se codeaz
a trebuie s
a ndeplineasc
a o anume relatie
ND
N ; n acest caz, N = 6, D = 3 si deci
D1
N D
63
3
=
=
/N
D1
31
2
Completarea se face ad
augnd sursei simboluri de probabilitate nul
a; n acest caz, cu un
singur astfel de simbol ad
augat obtinem N = 7 si
73
4
N D
=
= N
D1
31
2
Entropia sursei extinse S este dat
a de:
7

H(S) =

i=1

p(si ) log p(si ) = (0.3 log 0.3 + 0.25 log 0.25 + 0.2 log 0.2 + 2 0.1 log 0.1)
0.05 log 0.05 0 log 0 = 2.366 bit/simbol

Atunci, conform (7.2), lungimea medie minim


a a unui cuvnt de cod este:
lmin =

H(S)
2.366
=
= 1.493 bit
log D
log 3

Codarea Human este realizat


a conform tabelului 7.1.
Surs
a
p(si ) Cod Surs
a
p(rji ) Cod Surs
a
primar
a
restrns
a
restrns
a
r21
s1
0.3
r11
0.3
r22
s2
0.25
r12
0.25
r23
s3
0.2
r13
0.2
00
r14
0.15
01
s4
0.1
r15
0.1
02
s5
0.1
010
s6
0.05 011
s7
0
012
Tabel 7.1: Codare Human

94

p(rji ) Cod
0.45
0.3
0.25

0
1
2

Cuvintele de cod sunt grupate n tabelul 7.2; pe baza lor putem calcula lungimea medie
a cuvintelor de cod:
7

l=
i=1

li p(si ) = 1 0.3 + 1 0.25 + 2 0.2 + 2 0.1 + 3 0.1 + 3 0.05 + 3 0 = 1.6

Surs
a
primar
a
s1
s2
s3
s4
s5
s6
s7

p(si )

Cod Lungime

0.3
0.25
0.2
0.1
0.1
0.05
0

1
2
00
02
010
011
012

1
1
2
2
3
3
3

Tabel 7.2: Coduri asociate simbolurilor sursei si lungimile lor

n cazul imaginilor (sau al sirurilor binare) mesajele sursei primare sunt formate din
grupuri de cte B biti succesivi (astfel, sursa primar
a are 2B mesaje, ale c
aror probabilit
ati
de aparitie sunt specifice imaginii considerate). Cu ct B este mai mare, cu att mai
mare va fi eficienta cod
arii. Tabelul de codare (echivalenta ntre mesajele sursei primare
si sirurile de simboluri de cod) este specific fiec
arei imagini si trebuie s
a nsoteasc
a codul.
Codarea clasic
a este binar
a (D = 2, X = {0, 1}).

7.1.2

Codarea pe flux de biti

Metodele de codare pe flux de biti (on-line) se reg


asesc la primul nivel de codare al
transmisiilor de fax (RLE, WBS) sau ca tehnici generale de compresie a datelor, nglobate
att n formate de fisiere grafice (TIFF) ct si n arhivatoare uzuale (ZIP) metoda ZivLempel. Aplicarea cod
arii la imagini presupune n primul rnd transformarea imaginii
(structurii de matrice a acesteia) ntr-un vector (sir) prin concatenarea liniilor acesteia.

Codarea RLE
Principiul cod
arii RLE (Run Length Encoding) este acela de a memora num
arul de simboluri succesive ale sirului binar ce au aceeasi valoare. Odat
a ce o secventa de simboluri
succesive de aceeasi valoare (run length) se ncheie, simbolul urm
ator nu poate avea dect
95

valoarea complementar
a celei initiale, prin alternanta. S
irul codat trebuie s
a nceap
a cu
valoarea primului simbol.
Conform acestei cod
ari, sirul de valori binare 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1 este
codat RLE ca 0, 4, 3, 1, 1, 3, 1, 3, iar sirul binar 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0 este codat
RLE ca 1, 7, 1, 1, 5. S
irul cuvintelor de cod trebuie deci s
a fie compus din codurile ce corespund lungimilor secventelor de valori identice succesive; aceasta nseamn
a c
a num
arul
de biti al reprezent
arii binare al cuvintelor de cod trebuie s
a permit
a reprezentarea
lungimii celei mai mari secvente. Cum determinarea de fiecare dat
a a acestei lungimi
maximale si varierea lungimii cuvntului de cod nu este o solutie corespunz
atoare, se
prefer
a fixarea unei lungimi maximale admise a secventelor. Orice secventa mai lung
a
dect secventa maxim
a este desp
artit
a prin intercalarea fictiv
a a unor simboluri complementare. S
a consider
am o codare RLE cu lungimea cuvntului de cod de 2 biti; aceasta
nseamn
a c
a lungimea secventei maxime este 3 (codul 0 trebui rezervat pentru secventa
de lungime nul
a). Dac
a sirul binar este 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0 atunci sirul codat
va fi 1, 3, 0, 3, 0, 1, 1, 1, 3, 0, 2 (unde fiecare cifr
a va fi reprezentat
a pe 2 biti).
O codare mai bun
a se obtine dac
a lungimile secventelor de simboluri identice succesive
sunt codate (ntr-o faz
a ulterioar
a) entropic, cu un algoritm de tip Human. Standardul
CCITT de transmisie fax recomand
a folosirea unor cod
ari Human truncheate: astfel,
dac
a o lungime de secventa este mai mic
a dect 64 este codat
a direct, cuvntul de cod
respectiv numindu-se terminator; dac
a o lungime de secventa este cuprins
a n gama
[64;1791] se codeaz
a separat num
arul de pixeli ce formeaz
a un multiplu de 64 (formnd
un cod masc
a, make-up code) si restul mp
artirii lungimii secventei la 64, cu un cod
terminator. n plus, exist
a un cod special de sfrsit de linie (EOL). Tabelele de codare
sunt standardizate (se pot g
asi de exemplu n [9, pp. 544-545]). Pe lng
a transmisia de
fax, codarea RLE mai este utilizat
a n diferite formate de fisiere imagine (BMP, PCX,
TGA).
Portiunea urm
atoare de program C realizeaz
a codarea RLE a sirul de intrare in, de
dimensiune DIM_IN, cu cuvinte de cod ce pot reprezenta cel mult MAX_RUN simboluri identice succesive; cuvintele de cod sunt scrise n sirul out. Pozitiile curente din
sirurile de intrare si iesire sunt determinate de variabilele pos_in si respectiv pos_out.
Implementarea presupune c
a tipul de date al sirului in permite aplicarea operatorului de
negatie (! ).
pos_in=0;
out[0]=in[0];
pos_out=1;
crt_value=in[0];
while (pos_in<DIM_IN) {
if (in[pos_in]==crt_value) then
if (run_length<MAX_RUN) then
run_length++;
96

else {
out[pos_out]=MAX_RUN;
pos_out++;
out[pos_out]=0;
run_length=1; }
else {
out[pos_out]=run_length;
pos_out++;
run_length=1;
crt_value=!crt_value; }
pos_in++; }

Codarea WBS
Prima etap
a a cod
arii WBS (White Block Skipping) presupune mp
artirea sirului binar
n grupe de cte D simboluri succesive. Principiul cod
arii este simplu: un bloc nul
este nlocuit cu un singur simbol de 0, un bloc nenul este prefixat de un simbol de
1 si copiat. Conform acestei cod
ari (cu grupe de D = 3 simboluri), sirul de valori
binare 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 este mp
artit n grupele (0, 0, 0), (0, 1, 0), (0, 0, 1),
(1, 1, 0), (0, 0, 0) si codat ca (0), (1, 0, 1, 0), (1, 0, 0, 1), (1, 1, 1, 0), (0), transformndu-se
n sirul 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0.
Dac
a sirul dat binar de n grupe de simboluri contine n0 grupe nule, n urma compresiei
mai r
amn (n n0 )(D + 1) + n0 simboluri si factorul de compresie este atunci:
C=

nD
(n n0 )(D + 1) + n0

(7.3)

Pentru ca s
a existe compresie trebuie ca C > 1 si deci atunci
n0
1
>
(7.4)
n
D
adic
a proportia de grupe nule din sir trebuie s
a fie mai mare dect inversul num
arului de
simboluri dintr-o grup
a.
n0 D > n

Pentru o larg
a categorie de imagini, lungimea blocului de codare D = 10 poate fi folosit
a
cu rezultate bune [9]. O mbun
at
atire a performantei se poate obtine dac
a se introduce
o adaptare a cod
arii, prin detectia liniilor albe (reprezentate doar cu valori 0) si codarea
unei linii ntregi cu un singur 0 (desigur c
a n acest caz la codurile tuturor blocurilor
se mai adaug
a un prefix de valoare 1). O alt
a variant
a a metodei exploateaz
a structura
bidimensional
a a imaginii, codnd blocuri p
atrate din imagine (deci imaginea nu mai este
vectorizat
a).
Portiunea urm
atoare de program C realizeaz
a o variant
a de codare WBS cu blocuri de
dimensiune D a sirului de intrare in (ale c
arui valori sunt 0 si 1) de dimensiune DIM_IN ;
97

codul WBS este scris n sirul de iesire out. Verificarea dac


a blocul curent este nul se face
prin sumarea valorilor acestuia. Pozitiile curente n sirul de intrare si sirul de iesire sunt
memorate n pos_in si respectiv pos_out.
pos_in=0;
pos_out=0;
while (pos_in<DIM_IN){
s=0;
for (i=0;i<D;i++)
s=s+in[pos_in+i];
if (s>0) then {
out[pos_out]=1;
pos_out++;
for (i=0;i<D;i++)
out[pos_out+i]=in[pos_out+i];
pos_out=pos_out+D; }
else {
out[pos_out]=0;
pos_out++; }
pos_in=pos_in+D; }

Codarea Ziv-Lempel
Codarea Ziv-Lempel nu are ca origine ideea explicit
a de a m
ari entropia alfabetului codului (precum codarea Human), ci se bazeaz
a pe tehnica dictionar LUT (folosit
a si la
reprezentarea imaginilor indexate): cuvintele de cod asociate unor siruri de simboluri
ale sursei de intrare sunt indicii (numerele de ordine) pozitiilor la care se g
asesc respectivele siruri de simboluri n dictionarul codului (tabela de codare). Tabela de codare
(dictionarul) este creat
a pe m
asura parcurgerii sirului de simboluri de intrare, si, pentru
decodare, tabela se creaz
a din cuvintele de cod deja transmise (ceea ce nseamn
a c
a nu
2
este necesar
a memorarea sau transmiterea explicit
a a tabelului de codare ).
Dictionarul initial are dou
a cuvinte: cuvntul 0, avnd indicele 0 si cuvntul 1, avnd
indicele 1. Din sirul de intrare (presupus binar) se extrage cte un bit si se verific
a
dac
a sirul de biti deja extras se reg
aseste sau nu n dictionar. Dac
a sirul se reg
aseste
n dictionar, se mai adaug
a un bit din sirul de intrare. Dac
a sirul nu se reg
aseste n
dictionar, atunci sirul este trecut n dictionar, n sirul codat se scrie codul (indicele)
prefixului sirului nou ad
augat (deci pozitia la care se g
aseste n dictionar cuvntul la care
2

Aceast
a caracteristic
a este probabil unic
a codului Ziv-Lempel; pentru toate celelalte aplic
ari ale
tehnicii LUT, tabela de codare este transmis
a sau memorat
a mpreun
a cu cuvintele de cod sau se presupune existenta unei tabele de codare implicite, cunoscute (ca de exemplu tabela de culoare cu nivele
de gri).

98

ad
augnd ultimul bit al sirului de intrare se obtine un cuvnt nou) si ultimul bit din sir
devine primul bit al urm
atorului sir de intrare. Procedeul continu
a pn
a cnd sirul de
intrare nu mai are simboluri necodate. Dac
a, naintea termin
arii simbolurilor din sirul
de codat, tabela de codare (cu num
ar fixat de intr
ari) se umple, exist
a dou
a variante de
continuare: fie restul sirului de intrare se codeaz
a conform tabelei de codare existente prin
c
autarea celor mai lungi cuvinte de cod, fie tabela de codare este golit
a si se continu
a
cu procedeul initial.
S
a consider
am sirul de intrare 1, 0, 0, 0, 0, 1, 0, 1, 1, 1; dictionarul cuvintelor de cod
contine cuvntul 0 (cu indice 0) si cuvntul 1 cu indice 1. Simbolul curent este 1 (pe
prima pozitie a sirului de intrare) si formeaz
a sirul de biti extras; acest sir se reg
aseste n
dictionar (cu indicele 1) si atunci se mai extrage un bit din sir; sirul de biti extrasi devine
10. Cuvntul 10 nu exist
a n dictionar, si atunci: n sirul de iesire se scrie indicele celui
mai lung cuvnt din dictionar la care ad
augnd un bit obtinem noul cuvnt (noul cuvnt
este 10, cuvntul prefix este 1, iar indicele scris la iesire este 1), n dictionar se adaug
a
cuvntul 10 (care va avea indicele 2), iar noua pozitie curent
a din sirul de intrare este
ultimul bit al sirului deja extras, deci pozitia 2, bitul 0. Simbolul curent este 0; acest sir
se reg
aseste n dictionar (cu indicele 0) si atunci se mai extrage un bit din sir; sirul de biti
extrasi devine 00. Cuvntul 00 nu exist
a n dictionar, si atunci: n sirul de iesire se scrie
indicele prefixului noului cuvnt (deci 0), n dictionar se adaug
a cuvntul 00 (care va avea
indicele 2), iar noua pozitie curent
a din sirul de intrare este ultimul bit al sirului deja
extras, deci pozitia 3, bitul 0. Simbolul curent este 0; acest sir se reg
aseste n dictionar
(cu indicele 0) si atunci se mai extrage un bit din sir; sirul de biti extrasi devine 00. S
irul
00 se reg
aseste n dictionar (indicele 3) si atunci se mai extrage un bit din sir; sirul de
biti extrasi devine 000. Cuvntul 000 nu exist
a n dictionar, si atunci: n sirul de iesire se
scrie indicele prefixului noului cuvnt (deci 3), n dictionar se adaug
a cuvntul 000 (care
va avea indicele 4), iar noua pozitie curent
a din sirul de intrare este ultimul bit al sirului
deja extras, deci pozitia 5, bitul 0. Procedeul continu
a n mod analog.
Pentru decodare, fiecare nou cuvnt de cod implic
a scrierea unei noi intr
ari n tabelul
de codare (dictionar) n care sirul de simboluri este format din prefix (sirul de simboluri
care se g
aseste n dictionar la intrarea precizat
a de cuvntul de cod) si o terminatie de 1
bit, a c
arei valoare rezult
a la primirea cuvntului de cod urm
ator (s
a nu uit
am c
a sirurile
succesive de simboluri ce se codeaz
a au n comun ultimul, respectiv primul bit).
Metoda Ziv-Lempel a pus bazele unei clase mai largi de metode de compresie, incluznd
printre altele si varianta LZW (Lempel-Ziv-Walsh) folosit
a de utilitarul de compresie ZIP.

7.2

Compresia imaginilor cu nivele de gri

Cea mai imediat


a metod
a de codare a unei imagini cu nivele de gri este de a o considera ca un sir de biti si de aplica metodele de codare pentru imagini binare: fie pentru
99

fiecare plan de bit al reprezent


arii binare a nivelor de gri, fie pentru succesiunea de biti
a reprezent
arilor nivelelor de gri. Asemenea abord
ari produc cod
ari f
ar
a pierderi a imaginilor si nu produc ntotdeauna rezultate spectaculoase. O mult mai mare amploare a
c
ap
atat clasa de metode de compresie cu pierderi [controlabile].

7.2.1

Codarea predictiv
a

Codarea predictiv
a se bazeaz
a pe existenta unei importante corelatii spatiale ntre valorile
pixelilor unei imagini (deci valorile pixelilor vecini sunt asem
an
atoare). Aceast
a corelatie
poate implica, de exemplu, c
a valoarea unui pixel poate fi aproximat
a cu o combinatie
a valorilor unora dintre vecinii s
ai. Dac
a se stabileste o ordine de parcurgere a pixelilor
ce formeaz
a imaginea (deci dac
a se stabileste o ordine de baleiere a imaginii) si pentru
aproximarea valorii pixelului curent se folosesc pixeli vecini spatial lui, parcursi anterior,
spunem c
a prezicem valoarea pixelului curent. Predictia se realizeaz
a printr-o functie,
care, cunoscut
a la nivelul ntregii imagini permite determinarea unei variante aproximative a imaginii date cunoscnd doar un num
ar mic de pixeli de start. Pentru a avea o
codare ct mai precis
a, se folosesc si erorile dintre valorile prezise si cele reale; codarea
asociat
a imaginii initiale va contine deci functia de predictie, valorile de start si erorile
de aproximare ale fiec
arui punct. Dac
a predictorul este determinat n mod corect, atunci
eroarea de predictie e(n) este mic
a si reprezentarea ei necesit
a mult mai putini biti dect
reprezentarea valorii originale u(n). Schema de codare cu predictie este reprezentat
a n
figura 7.1.

Fig. 7.1: Schema de codare cu predictie.


Ecuatiile ce descriu procesul sunt ecuatia erorii (7.5) (care exprim
a eroarea de aproximare e(n) ca diferenta ntre valoarea corect
a u(n) si valoarea prezis
a u(n)) si ecuatia de
predictie (7.6) (ce exprim
a modul n care se determin
a valoarea aproximativ
a u(n) din
valorile anterioare u(n k1 ), u(n k2 ), ... pe baza predictorului pred):
e(n) = u(n) u(n)
100

(7.5)

u(n) = pred (u(n k1 ), u(n k2 ), ...)

(7.6)

Procesul de decodare este reprezentat schematic n figura 7.2. Eroarea de predictie eq (n)
(cuantizat
a) este adunat
a la valoarea aproximativ
a u (n), determinat
a cu acelasi predictor
pred din valorile u (n) deja calculate.

Fig. 7.2: Schema de decodare cu predictie.


Predictorii cei mai simpli sunt liniari si sunt invariati la schimbarea punctului curent.
Predictorii pe linii sau coloan
a calculeaz
a aproximarea n punctul curent u(m, n) al imaginii ca valoarea anterioar
a de pe aceeasi linie u(m, n) = u(m, n 1) sau de pe aceeasi
coloan
a u(m, n) = u(m 1, n) (dac
a ordinea de baleiaj este cea uzual
a). Se mai pot folosi
predictori de tip valoare medie:
u(m, n) =
u(m, n) =

1
(u(m 1, n) + u(m, n 1))
2

1
(u(m 1, n) + u(m, n 1) + u(m 1, n 1) + u(m 1, n + 1))
4

(7.7)
(7.8)

Un caz particular de codare cu predictie este modulatia delta, caracterizat


a de cuantizarea
erorii de predictie (aproximare) e(n) cu un singur bit (bit de semn).

7.2.2

Compresia imaginilor cu transformate

Principiul compresiei cu transformate a imaginilor se bazeaz


a pe propriet
atile de compactare a energiei si decorelare a componentelor spectrale pe care le prezint
a majoritatea
transform
arilor integrale unitare (discutate n sectiunea 4.2). Atta vreme ct cea mai
mare parte a energiei este distribuit
a n cteva componente spectrale (de joas
a frecventa),
toate celelalte pot fi ignorate; astfel memoria necesar
a reprezent
arii este mult mai mic
a.
Este evident c
a o asemenea metod
a de compresie este cu pierderi.

101

Aplicarea practic
a a compresiei cu transformate trebuie s
a aib
a n vedere trei aspecte:
alegerea transformatei, stabilirea frecventei limit
a de la care ncepe ignorarea valorilor si,
n fine, cuantizarea componentelor spectrale p
astrate.
Transformarea optimal
a trebuie s
a decoreleze complet componentele spectrale (asigurnd
astfel si compactarea maxim
a a energiei si cea mai bun
a eroare de aproximare prin
truncherea frecventelor nalte). Decorelarea complet
a este dependent
a de propriet
atile
statistice ale imaginii (matrice de covariatie), deci, teoretic, pentru fiecare imagine n
parte, trebuie g
asit
a transformarea optimal
a. Aceast
a transformare este transformata
Karhunen-Loeve: transformare integral
a unitar
a a c
arei matrice de transformare are pe
coloane vectorii proprii normati ai matricii de covariatie a imaginii. Cum aceast
a transformare este evident unic
a pentru o clas
a de imagini, n practic
a se ncearc
a g
asirea unei
aproximatii. n conditiile n care majoritatea imaginilor naturale pot fi aproximate printrun model Markov puternic corelat (exprimnd dependenta puternic
a a valorii pixelilor
de valorile vecinilor lor imediati), transformata cosinus s-a dovedit o foarte bun
a alegere.
Cuantizarea componentelor spectrale poate integra si selectia componentelor cel mai
importante: componentele de frecventa joas
a sunt cuantizate o precizie mai mare, iar
componentele de frecventa nalt
a sunt cuantizate grosier (echivalent chiar cu eliminarea acestora). Num
arul de nivele de cuantizare si distributia acestora (diferentele dintre
nivelele vecine) este adaptate statisticii semnalului (cuantizarea optim
a este cuantizarea
Loyd-Max [9], [16]).
Exemplul cel mai des folosit de compresie cu transformate este standardul de compresie
JPEG (fisiere imagine cu extensia .jpg). Imaginea este divizat
a n blocuri de 8 x 8 pixeli,
care nu se suprapun. Fiec
arui bloc i se aplic
a o transformat
a cosinus bidimensional
a,
iar cei 64 de coeficienti ai transform
arii sunt copiati ntr-un vector prin baleierea pe diagonal
a a blocului de 8 x 8 pixeli. Coeficientii sunt cuantizati n conformitate cu un
num
ar prestabilit de nivele de cuantizare (stabilit prin standard, si proportional cu factorul de calitate dorit pentru imaginea ref
acut
a). Coeficientii corespunznd frecventelor
nule (valorile medii ale blocurilor) sunt codate predictiv printr-o tehnic
a de tip DPCM
(Dierential Pulse Code Modulation). Valorile celorlalti coeficienti sunt codati entropic
(Human). Factorii de compresie ce rezult
a sunt cuprinsi n mod tipic ntre 10 si 100.
Aspectul de compresie cu pierderi (diferentele fata de imaginea original
a) se manifest
a
prin efectul de blocking: sublinierea frontierelor de separatie a blocurilor de baz
a (efect
observabil si n figura 7.3).

7.2.3

Codarea cu arbori cuaternari

Un arbore cuaternar (numit n engleza quadtree) este un arbore n care fiecare nod neterminal are exact patru descendenti.
Orice imagine p
atrat
a, de dimensiune putere a lui 2 (N = 2K ) poate fi reprezentat
a
102

Fig. 7.3: Imagine decodat


a n urma unei compresii JPEG cu raport de compresie 23
(factor de calitate 90)
(ntr-o reprezentare de tip ierarhic) pe o structur
a de arbore cuaternar. Nodurile de pe
fiecare nivel al arborelui corespund unei mp
artiri a unei zone p
atrate din imagine n patru
sferturi. R
ad
acina arborelui este asociat
a ntregii imagini (imaginii initiale), nodurile
de pe primul nivel al arborelui corespund celor patru sferturi ale imaginii, nodurile de
pe nivelul doi corespund sferturilor fiec
arui sfert anterior determinat al imaginii, si asa
mai departe. mp
artirea imaginii poate continua pn
a cnd nodurile nivelului curent al
arborelui corespund unor zone p
atrate a c
aror dimensiune este de un pixel. Adncimea
arborelui astfel obtinut este K, si fiecare pixel al imagini va corespunde unui nod terminal
(frunz
a) de pe ultimul nivel al arborelui. Fiecare nod terminal contine informatia de
valoare a pixelului la care este asociat.
Structura arborelui anterior poate fi simplificat
a prin introducerea n etapa de constructie
a unui test de uniformitate a regiunilor reprezentate de fiecare nod: dac
a regiunea p
atrat
a
considerat
a nu este uniform
a, atunci aceasta va fi descompus
a prin t
aiere n patru p
arti
egale si nodul corespunz
ator va deveni neterminal (va c
ap
ata cei patru descendenti).
Dac
a regiunea p
atrat
a considerat
a este uniform
a (deci este compus
a din pixeli de acelasi
fel), nodul respectiv devine un nod frunz
a (terminal) al arborelui (deci nu mai are descendenti). Fiecare nod terminal contine informatia de valoare a zonei de imagine la care
este asociat (vezi figura 7.4). O zon
a este considerat
a uniform
a dac
a diferenta maxim
a
de nivel de gri a pixelilor ce o formeaz
a nu dep
aseste un anumit prag impus; valoarea
zonei uniforme este media nivelelor de gri a pixelilor ce o compun.
Pentru refacerea imaginii intiale din reprezentarea arborescent
a este suficient
a alegerea
nodurilor terminale a c
aror valoare corespunde pixelilor de obiect. Adncimea la care
este plasat
a n arbore o frunz
a contine informatia de dimensiune a zonei p
atrate corespunz
atoare din imagine (o frunz
a situat
a la adncimea h corespunde unei zone p
atrate
de latur
a 2Kh pixeli). Pozitia frunzei fata de nodurile de pe acelasi nivel ce au acelasi
103

predecesor este direct determinat


a de regula de alocare a sferturilor unei zone la nodurile
descendente ale arborelui (regula de alocare trebuie s
a se p
astreze pentru ntregul arbore)
(vezi figura 7.5).
Codarea imaginii (sau a arborelui cuaternar asociat) se face prin memorarea pozitiei
n arbore a nodurilor terminale si a valorilor acestora. Pozitia n arbore a unui nod se
specific
a prin descrierea c
aii prin care se ajunge la acesta, pornind de la r
ad
acina arborelui;
aceast
a cale va contine codurile de alocare a descendentilor ce corespund avansului n
adncime n arbore.

Fig. 7.4: Exemplu de reprezentare a unei imagini binare pe un arbore cuaternar complet

Fig. 7.5: Regula de alocare a descendentilor

Principalul inconvenient al metodei de etichetare folosind arborele cuaternar este legat


de complexitatea construirii acestuia prin abordarea ierarhic
a top-down (de sus n jos)
prezentat
a; n particular, testul de uniformitate la nivelul fiec
arui bloc presupune testarea
valorilor tuturor pixelilor care compun blocul. Pe ansamblu, aceasta duce la parcurgerea
fiec
arui pixel din imagine de un num
ar de ori egal cu adncimea n arborele cuaternar al
blocului p
atrat din care face parte.
Pentru a nl
atura acest incovenient este suficient ca pixelii imaginii s
a nu mai fie parcursi
n ordinea traditional
a de baleiaj (pe linii, de la stnga la dreapta si de sus n jos), ci
104

ntr-o alt
a ordine, care s
a i prearanjaze pe grupuri ce corespund p
atratelor de diviziune
a imaginii. Un asemenea baleiaj este reprezentat de o curb
a de umplere a spatiului: un
parcurs ce trece o singur
a dat
a prin fiecare pixel al imaginii, nu se autointersecteaz
a si n
care oricare doi pixeli parcursi consecutiv sunt vecini spatial n imagine (ntr-o vecin
atate
de tip V4 sau V8 ). Curbele de umplere a spatiului sunt structuri fractale, definite prin
repetarea la diferite nivele ierarhice a unei aceleiasi structuri. Pentru baleiajul imaginilor
s-au retinut dou
a astfel de curbe: curba Peano-Hilbert (numit
a si curba Peano n U, dup
a
forma celulei sale de baz
a) (vezi figura 7.6) si curba Morton (sau curba Peano n Z) (vezi
figura 7.7).

Fig. 7.6: Ordinea de parcurgere a pixelilor pentru curba Peano n U, la dou


a nivele de
rezolutie
Dispunnd de o astfel de ordine de baleiere, este evident c
a dac
a se parcurge imaginea
n acest
a ordine, zonele p
atrate uniforme (cu pixelii de aceeasi valoare) sunt detectate
ntr-o singur
a trecere si astfel arborele cuaternar poate fi creat direct prin nodurile sale
terminale. Pentru o implementare eficient
a este ns
a necesar
a si deducerea rapid
a a
indicelui pe curba de baleiere a pixelilor, pornind de la coordonatele lor n imagine. Doar
curba Peano n Z are o asemenea relatie rapid
a de calcul, prin ntreteserea bitilor ce
dau coordonatele n imagine a punctului. Cuvntul binar ce exprim
a indicele pe curb
a
a oric
arui punct este format din bitii din coordonata vertical
a, ce vor ocupa pozitiile de
ordin par si din bitii din coordonata orizontal
a ce vor ocupa pozitiile de ordin impar
(p
astrndu-si aceeasi ordine de rang).

7.2.4

Cuantizarea vectorial
a

Cuantizarea vectorial
a este un algoritm de compresie a imaginilor ce se aplic
a asupra
unor date vectoriale si nu scalare, putnd fi interpretat ca o extensie a conceptului de
cuantizare scalar
a. Cuantizarea scalar
a asociaz
a unei multimi mari de valori numere
dintr-o multime mai mic
a (n mod tipic acestea din urm
a fiind numere naturale); asocierea
include (chiar dac
a nu explicit) operatii de tipul rotunjirii la cel mai apropiat ntreg.
Cuantizarea vectorial
a aproximeaz
a (sau rotunjeste) un grup de numere deodat
a, nu
doar unul singur. Asadar, pentru a realiza o cuantizare vectorial
a sunt necesare un set
105

Fig. 7.7: Ordinea de parcurgere a pixelilor pentru curba Peano n Z, la dou


a nivele de
rezolutie
de vectori de aproximare (inclusiv metoda prin care acestea pot fi deduse) si o regul
a de
asociere a vectorilor de intrare cu vectorii de aproximare.
S
a not
am cu xi al i-lea vector de intrare si cu j al j-lea vector de aproximare. Operatia
de cuantizare presupune nlocuirea vectorilor de intrare xi cu vectori de aproximare j ,
introducnd deci erori; pentru ca erorile (m
asurate de eroarea p
atratic
a medie) s
a fie
ct mai mici, este necesar ca pentru fiecare vector de intrare, aproximarea s
a se fac
a cu
vectorul de aproximare cel mai apropiat (n sensul distantei euclidiene). Aceasta este
regula de asociere. Dac
a exist
a n vectori de aproximare ce pot fi folositi, acestia se pot
grupa ntr-un tabel de codare (existent si la codare si la decodare), iar fiecare vector de
aproximare j va fi reprezentat doar prin indicele j (deci o alt
a aplicare a tehnicii LUT).
Dac
a vectorii de intrare au p componente, codate fiecare cu cte b biti, iar num
arul de
vectori de aproximare poate fi reprezentat pe nb biti, atunci factorul de compresie realizat
de cuantizarea vectorial
a este dat de3 :
C=

pb
nb

(7.9)

Pentru cazul imaginilor, vectorii de intrare se aleg ca blocuri p


atrate, nesuprapuse ntre
ele, din imagine. Dimensiuni uzuale ale acestor blocuri sunt 4 x 4 si 8 x 8 (rezultnd deci
vectori de intrare cu 16, respectiv 64 de componente). Dac
a consider
am cazul imaginilor
cu nivele de gri uzuale, reprezentate cu 256 nivele de gri (b = 8) si dimensiuni ale tabelei
de codare n = 256 (256 vectori de aproximare), atunci raportul de compresie este de 16,
respectiv 64.
Construirea tabelei de codare (determinarea vectorilor de aproximare) se realizeaz
a n
mod clasic prin algoritmi de clustering iterativ. n original (adic
a n limba englez
a) termenul de cluster defineste un grup, ciorchine, snop sau o clas
a de unit
ati, asem
an
atoare. Asem
anarea unit
atilor este determinat
a n mod uzual prin asociere, similaritate
sau distanta ntre unit
ati (vectori). Algoritmul de clustering este procesul prin care unei
3

Acest mod de calcul al raportului de compresie nu tine seama de necesitatea transmiterii sau memor
arii si a tabelului de codare, de dimensiune npb biti.

106

multimi de unit
ati (entit
ati) i se asociaz
a, element cu element, o informatie de apartenenta la un anumit grup. Mai general, putem interpreta procesul de clustering ca un
proces de partitionare a unui set de unit
ati ntr-un num
ar de submultimi (numite clase
sau clustere), pe baza unui anumit criteriu. Indiferent de criteriul folosit, se doreste
obtinerea unor clustere distincte, omogene si bine separate. Num
arul de clustere n care
se face mp
artirea setului de unit
ati nu este n mod obligatoriu cunoscut apriori.
Metodele de clustering iterativ distribuie obiectele (vectorii) ntr-un num
ar predefinit
de clase, repetnd testarea unor conditii pentru fiecare obiect al multimii; n functie de
ndeplinirea sau nu a respectivelor conditii, partitia existent
a la un moment dat este
declarat
a corespunz
atoare sau, n urma modific
arii aloc
arii unor unit
ati, procedeul de verificare se reia. Se poate considera c
a algoritmii iterativi fac mai multe treceri prin setul
de obiecte de partitionat, pn
a la obtinerea stabiliz
arii (convergentei) valorii criteriului
ce caracterizeaz
a calitatea partitiei.
Calitatea partitiei (a clasific
arii) este m
asurat
a de suma variantelor clusterelor (adic
a
suma distantelor de la fiecare vector la centrul clasei n care apartine, ceea ce poate fi
interpretat si ca o eroare de aproximare a vectorilor din clase prin centrul respectivei
clase). Deci functia criteriu ce trebuie minimizat
a este
n

J=

j=1

xi j

Jj =
j=1 xi j

=
j=1 i=1

uij xi j

(7.10)

n urma minimiz
arii lui J trebuie determinate valorile j (centrele claselor) si valorile
binare uij , coeficientii de apartenenta ai vectorilor i la clasele j, definiti de:
1, dac
a xi j
0, dac
a xi
/ j

uij =

(7.11)

Determinarea centrelor claselor se poate face simplu, prin anularea derivatei n raport cu
j a functiei criteriu J
J
=2
j

i=1

uij j xi = 0

(7.12)

de unde rezult
a c
a centrele claselor sunt mediile vectorilor ce apartin acestora:
N

uij xi
j =

i=1
N

(7.13)
uij

i=1

Determinarea coeficientilor de apartenenta uij este ns


a o problem
a de optimizare combinatorial
a, care nu poate fi rezolvat
a analitic. Pentru rezolvarea acestei probleme sunt
107

necesare metode iterative. Metoda imediat


a urm
areste s
a determine, pentru fiecare vector al setului, dac
a acesta poate fi mutat dintr-o clas
a n alta, astfel ca suma variantelor
claselor s
a scad
a. Dup
a fiecare asemenea mutare, este necesar
a actualizarea mediilor
claselor ntre care s-a f
acut schimbul. Iteratiile se repet
a pn
a cnd nici un vector nu mai
poate fi mutat. Algoritmul poate fi descris n etapele urm
atoare:
1. se alege o partitie aleatoare a setului de obiecte (vectori)
2. pentru fiecare vector xi din set, dac
a nu este unic n clasa sa j , se calculeaz
a costul
mut
arii n alt
a clas
a, k , k = j; acest cost este
ck =

nk
xi k
nk + 1

nj
xi j
nj 1

(7.14)

3. vectorul xi este mutat n clasa pentru care costul ck este minim; se recalculeaz
a
mediile claselor implicate n schimbare ( j si k )
4. dac
a cel putin un vector a fost mutat ntre dou
a clase, algoritmul se reia de la pasul
2.
Principalul dezavantaj al acestei abord
ari este faptul c
a mediile claselor sunt recalculate
dup
a fiecare schimbare ce implic
a fiecare vector al multimii considerate, ceea ce are ca
efect un volum mare de calcule. O simplificare a metodei provine din observatia intuitiv
a
c
a este normal ca un obiect s
a fie alocat (s
a apartin
a) clasei de care este cel mai apropiat
(n sensul distantei la media acesteia). Folosind acest
a observatie, realocarea se poate
face pentru toate obiectele considerate f
ar
a a fi nevoie de recalcularea mediilor claselor
pentru fiecare obiect; recalcularea mediilor se va face dup
a fiecare parcurgere complet
a
4
a multimii de obiecte de partitionat. Acest algoritm este algoritmul Basic ISODATA
(cunoscut si sub numele de k-means - cele k medii). Algoritmul poate fi descris de
urm
atoarele etape:
1. se alege o partitie aleatoare a setului de obiecte (vectori)
2. pentru fiecare vector xi din set, se caluleaz
a distantele sale la mediile tuturor
claselor,
dk = xi k 2
(7.15)
3. n iteratia urm
atoare, vectorul xi va fi mutat n clasa la care distanta dk este minim
a
4. dup
a parcurgerea complet
a a setului de vectori, se reactualizeaz
a mediile claselor
4

ISODATA este acronimul de la Iterative Self Organizing Data Analysis Technique - tehnic
a iterativ
a cu auto-organizare de analiz
a a datelor, ap
arut prin 1965.

108

5. dac
a (fata de iteratia anterioar
a) nici un vector nu a fost mutat n alt
a clas
a (sau
media nici unei clase nu s-a modificat), algoritmul se ncheie; dac
a nu, se reia
algoritmul de la pasul 2.
Pentru nici unul dintre algoritmii iterativi prezentati nu se poate preciza num
arul de
parcurgeri ale setului de vectori (obiecte) de partitionat. Num
arul de iteratii este puternic
dependent de alegerea partitiei initiale a vectorilor, precum si de organizarea intrinsec
a
a acestora.
Figura 7.8 prezint
a o imagine ref
acut
a dup
a o compresie prin cuantizare vectorial
a, cu
raport mare de compresie (128). Se remarc
a slaba calitate a imaginii ref
acute, cauza fiind
num
arul mic (16) de vectori de cod folositi. n imagine sunt foarte vizibile frontierele
dintre blocurile de 8 x 8 folosite.

Fig. 7.8: Imagine ref


acut
a dup
a codarea prin cuantizare vectorial
a; codarea a fost realizat
a cu blocuri de 8 x 8 pixeli; tabelul vectorilor de cod are 16 intr
ari, deci se obtine o
compresie de 128.

109

Capitolul 8
SEGMENTAREA IMAGINILOR
Segmentarea imaginilor se refer
a la descompunerea unei scene (imagini) n componentele
sale [9]. n urma procesului de segmentare vor fi extrase din imagine obiecte distincte,
regiuni ce satisfac anumite criterii de uniformitate, sau alte elemente.
n [19] se propune o definitie matematizat
a a procesului de segmentare, si anume segmentarea unei imagini f este definit
a ca partitionarea [complet
a] a lui f (8.1) ntr-un
ansamblu de multimi disjuncte nevide si conexe (8.2), ce satisfac fiecare un anumit criteriu  (8.3), criteriu ce nu mai este respectat pentru reuniunea oric
aror dou
a elemente
ale partitiei.
C

fi , fi conexe

(8.1)

a, i
fj = , i = j si fi este conex

(8.2)

f=
i=1

fi

 (fi ) = T RUE, i si  fi

fj = F ALSE, i = j

(8.3)

Alegerea unei tehnici specifice de segmentare (partitionare a imaginii) este legat


a de mai
multe aspecte caracteristice imaginii de analizat si cerintelor utilizatorului. Dup
a natura
si continutul imaginii, tehnicile de segmentare trebuie s
a tin
a cont de prezenta n imagine
a diverse categorii de artefacte:
reflexii, iluminare neomogen
a
zgomot suprapus infomatiei utile
110

zone texturate
Dup
a primitivele de extras, tehnicile de segmentare se mpart n dou
a categorii fundamentale: tehnicile de segmentare orientate pe regiuni si tehnicile de segmentare orientate
pe contur. Primitivele extrase din imagine sunt regiuni (forme) si zone texturate pentru
tehnicile orientate pe regiuni, sau entit
ati de tip discontinuitate (frontiere, segmente de
dreapt
a, unghiuri) pentru tehnicile orientate pe contur. n cadrul segment
arii orientate
pe regiuni se disting cteva categorii principale de tehnici:
etichetarea imaginilor binare
segmentarea pe histogram
a
cresterea si fuziunea regiunilor
segmentarea texturilor
segmentarea prin metode de clustering
Tehnicile principale de segmentare orientat
a pe contururi sunt:
extragerea contururilor prin metode de gradient si derivative
extragerea contururilor prin metode neliniare
extragerea contururilor prin metode liniare optimale
extragerea contururilor prin modelare matematic
a
n cele ce urmeaz
a se prezint
a doar o parte dintre aceste tehnici, pe care le consider
am
cele mai semnificative.

8.1
8.1.1

Segmentarea orientat
a pe regiuni
Segmentarea bazat
a pe histogram
a

n general, operatia de segmentare orientat


a pe regiuni urm
areste extragerea din imagine a
zonelor (regiunilor) ocupate de diferitele obiecte prezente n scen
a. Un obiect se defineste
ca o entitate caracterizat
a de un set de parametri ale c
aror valori nu se modific
a n

111

diferitele puncte ce apartin entit


atii considerate. Mai simplu, putem spune c
a obiectul
are proprietatea de uniformitate a parametrilor de definitie.
Unul dintre cei mai simpli parametri de definitie este nivelul de gri al punctului. Nivelul
de gri corespunde n scen
a unei propriet
ati fizice [9] (reflectanta, transmitivitate, valoare
tristimulus, etc.) ce este preluat de senzorul de imagine si asociat luminantei imaginii. n
acest caz, histograma imaginii (functia de densitate de probabilitate a variabilei aleatoare
discrete ale c
arei realiz
ari sunt nivelele de gri din imagine) reflect
a distributia n scen
a
a propriet
atii fizice nregistrate. Pentru o imagine f de M N pixeli si L nivele de gri,
histograma este definit
a (8.4) ca probabilitatea de aparitie n imagine a diferitelor nivele
de gri posibile.

h(i) =

1
MN

M1 N1
m=0 n=0

(i f(m, n)) , i = 0, 1, ...L 1

(8.4)

Dac
a nivelul de gri (respectiv proprietatea fizic
a pe care acesta o reprezint
a) caracterizeaz
a n mod suficient obiectele din scen
a, histograma imaginii va prezenta o structur
a de
moduri dominante - intervale de nivele de gri ce apar cu probabilitate mai mare. Fiecare
asemenea mod (maxim al histogramei) va reprezenta o anumit
a categorie de obiecte.
Ca exemplu imediat se poate cita cazul imaginilor obtinute prin scanarea documentelor
scrise si a tip
ariturilor sau imaginile n infrarosu (temperatura punctelor este asociat
a
nivelelor de gri astfel nct mai fierbinte nsemn
a mai alb). Pentru toate aceste tipuri de
imagini histograma este de tipul celei prezentate n figura 8.1.
0.015
0.01
0.005
0
0

50

100

150

200

250

300

Fig. 8.1: Histogram


a bimodal
a

Tehnici de pr
aguire (thresholding)
Separarea modurilor histogramei (si deci identificarea obiectelor din imagine, respectiv
caractere scrise / pagini albe si obiecte fierbinti / obiecte reci) se face prin alegerea unui
112

nivel de gri T , numit prag de segmentare. Acest prag de segmentare se alege pe minimul
global al histogramei. Din imaginea initial
a f de nivele de gri se construieste o imagine
de etichete (imagine etichetat
a) g, conform transform
arii descrise de (8.5) (vezi figura
8.2).

g(m, n) =

E0 , 0 f (m, n) < T
E1 , T f(m, n) < L

(8.5)

aror nivel de
Imaginea etichetat
a va fi descris
a de dou
a etichete: E0 pentru punctele al c
gri este mai mic dect pragul T si E1 pentru punctele al c
aror nivel de gri este mai mare
dect pragul T . Etichetele E0 si E1 pot fi valori numerice (0 si 1, sau 0 si 255) sau pot fi
siruri de simboluri sau alti identificatori.

Fig. 8.2: Transform


ari punctuale de binarizare.
Transformarea (8.5) este o transformare punctual
a (noua valoare din punctul (m, n) depinde doar de valoarea anterioar
a din punctul (m, n)) si poart
a numele de binarizare.
Aceast
a denumire provine din faptul c
a rezultatul transform
arii (imaginea etichetat
a)
este o imagine binar
a - deci o imagine caracterizat
a doar de dou
a valori. Se poate remarca
de asemenea faptul c
a binarizarea este un caz particular al transform
arii de modificare
liniar
a a contrastului (2.2), n care limitele domeniilor de contrastare sunt egale (T1 = T2 )
si contrastarea se face la valorile limit
a ale nivelelor de gri ( = 0, = L 1)1 .
Segmentarea pe histogram
a (numit
a si pr
aguire sau thresholding) semnific
a determinarea
unor nivele de gri ce separ
a modurile histogramei. Tuturor punctelor din imagine al c
aror
nivel de gri corespunde unui acelasi mod, li se asociaz
a o aceeasi etichet
a (num
ar, sir de
simboluri), rezultnd o imagine etichetat
a, ce pune n evidenta diferitele obiecte ale scenei
initiale.
1

Exist
a ns
a si o variant
a de binarizare cu dou
a praguri (transformare punctual
a numit
a decupare slicing), (figura 8.2) definit
a de ecuatia urm
atoare:
g(m, n) =

E0 , dac
a f(m, n) < T1 sau f (m, n) > T2
E1 , n rest

113

n cazul general al existentei a mai multe praguri de segmentare Tk , transformarea de


segmentare pe histogram
a este descris
a de (8.6)
g(m, n) = Ek

dac
a Tk f (m, n) < Tk+1

(8.6)

unde T0 = 0 , TC = L , k = 0, 1, ..., C 1.
Pragurile Tk se aleg prin inspectia histogramei, n minimele locale ale acesteia. Acest tip
de segmentare multinivel este mai putin eficient dect binarizarea, din cauza dificult
atii
de stabilire a pragurilor care s
a izoleze eficient intervalele de interes din histogram
a, mai
ales atunci cnd num
arul modurilor este mare. Trebuie de asemenea remarcat faptul c
a
este necesar
a cunoasterea num
arului de tipuri de obiecte din imagine, pentru alegerea
corespunz
atoare a num
arului de praguri de segmentare. n marea majoritate a cazurilor,
segmentarea obtinut
a nu este corect
a (exist
a regiuni prost etichetate); ca o regul
a general
a de mbun
at
atire a performantelor, se recomand
a aplicarea, naintea segment
arii, a
unor operatii de filtrare (eliminare a zgomotului), contrastare, mbun
at
atire, netezire a
histogramei - numite preproces
ari.
n general, se admite clasificarea metodelor de segmentare pe histogram
a [5] dup
a atributele global, local si dinamic. Aceste atribute se refer
a la modul de calcul al pragurilor de
segmentare Tk n functie de nivelul de gri din fiecare punct al imaginii f (m, n), coordonatele punctelor din imagine (m, n) si o anumit
a proprietate local
a p(m, n) a punctului
(m, n), conform (8.7):
Tk = Tk (f(m, n), p(m, n), (m, n))

(8.7)

Segmentarea se numeste global


a dac
a pragurile depind doar de nivelele de gri ale punctelor
imaginii:
Tk = Tk (f (m, n))

(8.8)

Segmentarea multinivel descris


a de (8.6) este n mod evident o metod
a de tip global.
Segmentarea se numeste local
a dac
a pragurile depind de nivelul de gri si de anumite
atribute locale calculate pentru vecin
at
ati ale fiec
arui punct:
Tk = Tk (f (m, n), p(m, n))

(8.9)

Segmentarea se numeste dinamic


a dac
a pragurile depind de pozitionarea punctelor n
imagine (forma cea mai general
a a modului de deducere pragurilor) (8.7).
114

Determinarea automat
a a pragurilor: metoda Bhattacharya
Metoda Bhattacharyya se bazeaz
a pe descompunerea histogramei n moduri individuale
Gaussiene, adic
a se ncearc
a exprimarea histogramei imaginii ca o sum
a ponderat
a de
functii de densitate de probabilitate de tip normal (Gaussian). Modelarea modurilor
histogramei imaginilor prin distributii normale este o presupunere ce se ntlneste n
multe tehnici de prelucrare si analiz
a si pare a fi justificat
a de considerarea imaginii ca
provenind dintr-o imagine ideal
a, n care fiecare tip de obiect este reprezentat de un unic
nivel de gri, peste care s-a suprapus un zgomot alb, aditiv, gaussian. n acest mod, mediile
modurilor din histogram
a corespund nivelelor de gri ce caracterizeaz
a obiectele scenei, iar
variantele acestor moduri sunt determinate de zgomotul suprapus imaginii (care nu este
obligatoriu s
a afecteze n acelasi mod toate nivelele de gri).
Pentru segmentarea dup
a metoda Bhattacharyya nu este necesar
a precizarea unui num
ar
de clase (praguri de segmentare), acesta urmnd a fi determinat n mod automat. Ideea de
plecare a metodei este de a determina parametrii caracteristici ai unei distributii normale.
Pentru o distributie normal
a
2

(xk )

1
2
N(k , k )(x) = e 2k
k 2

derivata logaritmului este:

ln N(k , k )(x)
x
= 2 + k2 = mk x + nk
x
k k

(8.10)

Se observ
a prin examinarea expresiei (8.10) c
a derivata logaritmului distributiei normale
este o dreapt
a de pant
a negativ
a, din ai c
arei parametri se pot deduce media si varianta
distributiei. Parametrii statistici ai distributiei sunt dati de ecuatiile (8.11).

k =

1
nk
, si k =
|mk |
|mk |

(8.11)

Aceast
a observatie poate fi aplicat
a si pentru o mixtur
a de distributii normale. S
a consider
am c
a histograma h a imaginii este compus
a prin superpozitia aditiv
a a C moduri
gaussiene N (k , k ) , adic
a:
C

h(x) =

wk N(k , k )(x)
k=1

Din parametrii dreptei se pot determina deci conform (8.11) parametrii statistici ai distributiei locale.
115

0.01
0.008
0.006
0.004
0.002
0
0

50

100

150

200

250

300

Fig. 8.3: Histogram


a cu trei moduri normale

0.3
0.2
0.1
0
-0.1
0

50

100

150

200

250

300

Fig. 8.4: Aplicarea metodei Bhattacharyya pentru histograma trimodal


a prezentat
a anterior; se pot observa intervalele pe care functia este liniar
a si descresc
atoare, ce corespund
modurilor.

116

Asadar, pentru aplicarea metodei la segmentarea pe histogram


a a imaginilor, se va studia
comportamentul derivatei logaritmului histogramei, adic
a a functiei z(a):

z(a) = ln

h(a)
, a = 1, L 1
h(a 1)

(8.12)

Pentru functia astfel construit


a, se determin
a intervalele pe care acesta este descresc
atoare
(vezi figura 8.4); limitele superioare ale acestor intervale sunt pragurile Tk de segmentare
pe histogram
a. Suplimentar, pe fiecare dintre aceste intervale se poate face o aproximare
liniar
a a punctelor si pe baza parametrilor dedusi pentru dreapta de aproximare se pot
calcula, conform (8.11) parametrii statistici locali.
Principalele inconveniente ale metodei deriv
a din faptul c
a presupunerea alc
atuirii histogramei imaginii numai din moduri gaussiene nu este ntotdeauna adev
arat
a. Ca rezultat, metoda Bhattacharrya va identifica un num
ar mai mare de praguri dect este necesar,
producnd fenomenul de suprasegmentare.

Segmentarea cu prag optim


Metoda de segmentare cu prag optim [5], [3], [19] face apel la teoria deciziilor (criteriul
de decizie Bayes) pentru stabilirea valorii pragurilor de segmentare ce optimizeaz
a un
anumit criteriu de eroare. Informatiile apriori necesare pentru aplicarea unei asemenea
tehnici sunt num
arul de tipuri de obiecte din imagine, C, procentele de ocupare a imaginii
de c
atre fiecare tip de obiecte, Pi si distributia nivelelor de gri ce caracterizeaz
a fiecare tip
de obiect, pi (x). Atunci histograma imaginii va fi determinat
a de mixtura distributiilor
tipurilor de obiecte:
C

Pi pi (x),

h(x) =
i=1

Pi = 1

(8.13)

i=1

Cazul cel mai simplu si mai des folosit este cel al binariz
arii (8.5), n care trebuie determinat un unic prag T ce separ
a distributiile celor dou
a tipuri de obiecte din imagine
(n mod tipic, obiecte utile si fundal). Criteriul ce se urm
areste optimizat este eroarea
de segmentare (clasificare) a punctelor din imagine, adic
a este dat de num
arul de pixeli
ce apartin primului tip de obiect, dar au nivelul de gri mai mare ca pragul T (fiind deci
alocati gresit celui de-al doilea tip de obiect) si num
arul de pixeli ce apartin celui de-al
doilea tip de obiect, dar au nivelul de gri mai mic dect pragul de segmentare T (fiind
deci alocati gresit primului tip de obiect). Asadar, eroarea de segmentare va fi dat
a de
(8.14):

117

E(T ) = P1

p1 (x)dx + P2

(8.14)

p2 (x)dx

Pragul optim va minimiza eroarea de segmentare a pixelilor. Minimizarea erorii (8.14)


conduce la rezolvarea ecuatiei (8.15), n necunoscuta T .
E(T )
=0
T

(8.15)

Derivnd (8.14) se obtine forma echivalent


a a ecuatiei (8.15):
(8.16)

P1 p1 (T ) = P2 p2 (T )

Dup
a cum am mentionat si n sectiunea dedicat
a tehnicilor de segmentare ce nu folosesc
informatii apriori despre imagine (metoda Bhattacharyya), presupunerea c
a distributia
nivelelor de gri a diferitelor tipuri de obiecte este de tip normal (Gaussian) este relativ
des ntlnit
a. n aceste conditii, distributiile p1 (x) si p2 (x) sunt distributii normale,
N1 (1 , 1 )(x) si N2 (2 , 2 )(x), iar ecuatia (8.16) devine:
2

(T 1 )
(T 2 )

1
1
2
2
P1 e 21 = P2 e 22
1 2
2 2

Prin logaritmare, se obtine urmatoarea ecuatie de gradul 2 n necunoscuta T :


T2

1
1
2
2
1 2

2T

1 2

21 22

21 22

21 22

2 ln

P1 2
=0
P2 1

Una dintre simplific


arile uzuale este presupunerea c
a 1 = 2 = ; aceast
a presupunere
implic
a modelarea imaginii n nivele de gri ca o imagine cu doar dou
a nivele de gri 1 si
2 , afectat
a de un zgomot Gaussian aditiv, avnd varianta 2 . n aceste conditii, ecuatia
de gradul 2 devine o ecuatie liniar
a, a carei solutie este:
T =

1 + 2
2
P1

ln
2
1 2 P2

Metoda se poate extinde si pentru imagini ce contin mai mult de dou


a tipuri de obiecte;
n acest caz este ns
a necesar
a presupunerea suplimentar
a de localizare a modurilor, astfel
nct s
a se poat
a considera, ca si n cazul metodei Bhattacharyya, c
a influenta fiec
arui
mod este limitat
a la intervale nesuprapuse de nivele de gri.
118

8.1.2

Cresterea si fuziunea regiunilor

Pentru aplicarea cu succes a tehnicilor de segmentare pe histogram


a prezentate anterior
trebuiesc ndeplinite neap
arat cteva conditii (deja enuntate). Aplicarea tehnicilor de
segmentare pe histogram
a este conditionat
a n primul rnd de reprezentarea diferitelor
clase de obiecte din imagine pe intervale de nivele de gri diferite care nu se suprapun (sau
se suprapun partial pe portiuni foarte mici); apoi este necesar
a cunoasterea num
arului
de tipuri de obiecte diferite. n fine, se presupune c
a valorile prag corespunz
atoare se pot
determina cu o precizie corespunz
atoare.
Chiar n cazurile n care toate aceste conditii enuntate sunt ndeplinite, nu se poate
garanta conditia de conexitate a regiunilor obtinute n urma segment
arii (8.2). Acest lucru
este evident, att timp ct dou
a obiecte de acelasi tip, neconexe, primesc prin segmentarea
pe histogram
a o aceeasi etichet
a, si formeaz
a n imaginea de etichete o regiune neconex
a.
O metod
a care respect
a toate conditiile impuse de definitia metematic
a a segment
arii, si
anume (8.1), (8.2) si (8.3), este cresterea regiunilor.

Cresterea regiunilor
Principiul pe care se bazeaz
a cresterea regiunilor este simplu: se aleg n imagine puncte
reprezentative pentru fiecare obiect individual si categorie de obiecte, pe baza c
arora
are loc un proces de aglomerare a pixelilor vecini acestora, ce au aceleasi propriet
ati
(n particular acelasi nivel de gri). n urma acestui proces de aglomerare (ad
augare de
puncte) se obtin zone (regiuni) de pixeli cu aceleasi caracteristici, deci obiecte individuale.
Procesul se opreste n momentul n care fiecare punct al imaginii a fost alocat unei regiuni.
Evident, metoda astfel descris
a pe scurt, are dou
a etape esentiale: alegerea punctelor de
start (puncte initiale), numite germeni sau seminte, si cresterea propriu-zis
a a regiunilor
[19], [2].
Num
arul final de regiuni rezultate este egal cu num
arul de germeni alesi initial pentru
crestere. n principiu, este de dorit ca fiecare obiect individual aflat n imagine s
a fie
marcat de cte un germene. Dac
a n interiorul unui aceluiasi obiect se g
asesc mai multi
germeni, pentru fiecare dintre ei va fi crescut
a o regiune; acesta face ca obiectul initial
s
a fie mp
artit artificial prin segmentare n mai multe regiuni. Partial, acest neajuns se
poate corecta printr-o etap
a ce urmeaz
a cresterii regiunilor, si anume fuziunea regiunilor
adiacente ce au propriet
ati asem
an
atoare. Dac
a n interiorul unui obiect nu este ales nici
un germene, obiectul respectiv va fi nglobat de regiunile ce cresc pornind de la germeni
din vecin
atatea sa spatial
a; astfel, respectivul obiect nu apare ca o regiune distinct
a si
este pierdut, rezultnd o eroare grav
a de segmentare.
Pentru a preveni efectul unor neuniformit
ati de iluminare pe suprafata imaginii, acesta
este mp
artit
a n ferestre nesuprapuse; n fiecare astfel de fereastr
a se alege un num
ar
de germeni, al c
aror plasament spatial este aleator (germenii se distribuie uniform pe
119

suprafata imaginii). Germenii se aleg astfel nct nivelul lor de gri s


a fie reprezentativ
pentru obiectele prezente local (deci nivelul de gri al germenilor trebuie s
a corespund
a
unor maxime ale histogramei locale). n plus, trebuie verificat ca plasamentul spatial
al germenilor s
a se fac
a n interiorul regiunilor si nu pe frontiera acestora. Verificarea
se poate face simplu pe baza calculului unui operator derivativ local, ca de exemplu
laplacianul (37); dac
a valoarea acestuia nu dep
aseste un anumit procent prestabilit (10%
- 20%) din diferenta maxim
a de nivele de gri a ferestrei, punctul ales este considerat ca
plasat corect.
O verificare suplimentar
a ncearc
a s
a previn
a o eventual
a suprasegmentare2 (mp
artirea
artificial
a a unui acelasi obiect n mai multe regiuni), eliminnd germenii plasati n interiorul aceluiasi obiect. Verificarea se face pe baza calculului variatiei nivelelor de gri de-a
a exist
a o cale ce uneste
lungul drumurilor3 arbitrare ce unesc perechi de germeni. Dac
doi germeni de-a lungul c
areia nivelul de gri nu variaz
a cu mai mult de 20% - 30% din
diferenta maxim
a a nivelelor de gri din ferestr
a, cei doi germeni sunt plasati n interiorul unei zone de nivele de gri uniforme, deci n interiorul unui acelasi obiect. n aceste
conditii unul dintre cei doi germeni ai perechii este eliminat, deoarece este redundant.
Dac
a de-a lungul tuturor c
ailor ce unesc perechea de germeni nivelul de gri variaz
a mai
mult dect pragul ales, atunci se consider
a c
a cei doi germeni sunt plasati n interiorul
unor obiecte diferite (deoarece c
aile ce unesc germenii traverseaz
a regiuni de frontier
a).
n practic
a, examinarea tuturor drumurilor (c
ailor) ce unesc perechi de germeni este extrem de costisitoare din punctul de vedere al timpului de calcul. De aceea se verific
a doar
c
aile formate din segmente verticale si orizontale, si eventual, dreapta ce uneste cele dou
a
puncte (dac
a aceast
a dreapt
a poate fi reprezentat
a de o secventa de puncte conexe) (vezi
figura 8.5).
Valorile procentuale ale pragurilor de comparatie, precum si num
arul de germeni distincti
ce r
amn dup
a procesul de reducere, nu trebuie considerate ca fixe; nu exist
a valori standardizate si alegerea acestora se face pe baza conditiilor particulare (legate de continutul
imaginii) si a experientei utilizatorului.
Pornind de la germenii alesi, regiunile sunt obtinute printr-un proces de crestere aproape
simultan
a, nceput de la acestia, pn
a cnd toti pixelii imaginii sunt repartizati unei
regiuni. Cvasi-simultaneitatea cresterii poate fi realizat
a cu un algoritm serial, prin alocarea pixelilor ce sunt adiacenti (vecini) zonelor deja segmentate. Acest
a alocare trebuie
s
a tin
a seama de criteriul ca regiunile crescute s
a fie uniforme: nivelul de gri al pixelului
ce se adaug
a nu trebuie s
a difere cu mai mult de un prag prestabilit fata de nivelul de gri
al germenului regiunii la care se aloc
a. n acelasi timp, la o singur
a trecere, num
arul de
puncte ce se adaug
a unei regiuni nu poate dep
asi un num
ar prestabilit (conditia ncearc
a
2

n general, prin suprasegmentare se ntelege partitionarea imaginii ntr-un num


ar de regiuni mai
mare dect num
arul de obiecte. Exist
a si notiunea reciproc
a de subsegmentare: mp
artirea imaginii
ntr-un num
ar de regiuni mai mic ca num
arul de obiecte.
3
Un drum ntre dou
a puncte ale imaginii este o secventa ordonat
a de puncte ale imaginii, vecine dou
a
cte dou
a (relativ la un anumit tip de conexitate, V4 sau V8 ), care are drept capete punctele considerate.

120

Fig. 8.5: Reducerea num


arului de germeni: germenii 1 si 2 sunt uniti de o cale cu segmente
paralele cu orizontala si verticala de intensitate constant
a, deci sunt redundanti; germenii
3 si 4 sunt uniti de o cale dreapt
a de aceesi intensitate, deci sunt redundanti; orice cale
ce uneste germenii 1 si 3 are o diferenta mare de intensitate.
s
a asigure cresterea relativ uniform
a si izotrop
a a tuturor regiunilor).
Dac
a ad
augarea de noi pixeli se blocheaz
a (criteriul de uniformitate nu mai este respectat),
diferenta maxim admis
a pentru nivelul de gri poate fi crescut
a n etape, pn
a la epuizarea
pixelilor imaginii.
Avantajele pe care le are o asemenea tehnic
a de crestere a regiunilor sunt acelea c
a nu
mai este necesar
a nici o informatie privind continutul imaginii, regiunile crescute sunt
conexe si nu exist
a puncte neetichetate (nealocate vreunei regiuni) si pozitia frontierelor
dintre diferitele regiuni corespunde pozitiei frontierelor percepute subiectiv n imagine.

Fuziunea regiunilor
O extindere a principiului utilizat n cresterea regiunilor, si anume ad
augarea la o regiune
a unor entit
ati (pixeli n acest caz) a c
aror propriet
ati sunt similare cu cele ale unui obiectului de baz
a (regiunea), se afl
a la baza tehnicilor de fuziune a regiunilor [9]. Fuziunea
regiunilor const
a n reunirea iterativ
a a regiunilor adiacente (ncepnd de la nivelul unor
entit
ati atomice ale imaginii - deci pixelii) pn
a cnd regiunile adiacente devin suficient
de diferite. Procesul de fuziune a regiunilor poate fi aplicat si n urma unei cresteri a
regiunilor, pentru a nl
atura efectele unei eventuale suprasegment
ari. Exist
a mai multe
criterii de fuziune a regiunilor adiacente, a c
aror actiune de verificare a deosebirii ntre
regiuni se face fie prin inspectia frontierei comune, fie prin caracterizarea interiorului
regiunii.
Pentru dou
a regiuni adiacente Ri si Rj , al c
aror perimetru este P erim(Ri ) si P erim(Rj ),
putem determina Pm = min (P erim(Ri ), P erim(Rj )) si P lungimea frontierei comune4 .
4

Lungimea frontierei comune poate fi m


asurat
a fie ca perimetru, fie ca num
ar de puncte ce o compun.

121

Pe aceast
a frontier
a comun
a se disting puncte slabe (n num
ar de ns ) si puncte tari (n
num
ar de nt ). Un punct slab este acel punct pentru care diferenta nivelelor de gri ntre
vecinii din regiunile adiacente este foarte mic
a (mai mic
a dect un anumit prag fixat). Un
punct tare este acel punct pentru care diferenta de nivele de gri ntre vecinii din regiunile
adiacente este foarte mare (mai mare ca un anumit prag fixat). Cu aceste notatii, criteriile
de fuziune a regiunilor Ri si Rj sunt:
dac
a num
arul de puncte slabe raportat la perimetrul minim este important,
dac
a num
arul de puncte slabe de pe frontiera comun
a este mare,
dac
a num
arul de puncte tari de pe frontiera comun
a este mic,

nt
P

ns
P

ns
Pm

> 1

> 2

< 3 .

Parametrul 1 controleaz
a dimensiunea regiunilor ce se unesc si se alege n general cu
valoarea 0.5 (de exemplu o valoare apropiat
a de 1 implic
a unirea a dou
a regiuni numai
dac
a una dintre ele este aproape nconjurat
a de cealalt
a). Valori tipice pentru parametrii
2 si 3 sunt 0.75 si 0.2.
Abordarea fuziunii pe baza caracteriz
arii interiorului regiunilor necesit
a definirea a dou
a
componente: o modalitate de caracterizare a propriet
atilor regiunilor si o modalitate de
a defini apropierea sau similaritatea dintre tr
as
aturi n termeni numerici.
Vectorul de tr
as
aturi ce caracterizeaz
a o regiune se compune din momente statistice ale
variabilei aleatoare ale c
arei realiz
ari particulare sunt nivelele de gri din regiune repectiv
a;
nu pot lipsi din acest vector nivelul de gri mediu al regiunii si varianta acestuia.
n [9] se propun patru functii de m
asur
a a asem
an
arii ntre perechi de vectori; pentru doi
vectori xi si xj , avnd aceeasi dimensiune, acestea se definesc ca:
F1 (xi , xj ) = xi , xj (produsul scalar dintre vectori)
xi , xj
(similaritatea dintre vectori)
xi , xi + xj , xj xi , xj
xi , xj
F3 (xi , xj ) =
(corelatia normalizat
a dintre vectori)
xi , xi xj , xj

F2 (xi , xj ) =

F4 (xi , xj ) = (xi xj ) A (xi xj )T

(distanta generalizat
a dintre vectori, unde A este o matrice pozitiv definit
a)
Pentru primele trei functii, o valoare mai mare corespunde unei asem
an
ari mai mari
ntre vectori (valorile maxime pentru F2 (xi , xj ) si F3 (xi , xj ) sunt 1). Pentru functia de
similaritate bazat
a pe distanta generalizat
a, o valoare mai mic
a corepunde unei asem
an
ari
mai puternice ntre vectori. Prin particularizarea matricii A se pot obtine diferite distante,
ca distanta Euclidian
a obisnuit
a (A fiind matricea unitate, A = I), distante Euclidiene
ponderate (dac
a A este o matrice diagonal
a), sau distanta Mahalanobis (dac
a A este o
matrice de covariatie a componentelor).
122

8.2

Segmentarea orientat
a pe contururi

ntr-o imagine, variatiile de valoare ale pixelilor reprezint


a schimb
ari ale propriet
atilor
fizice sau geometrice ale scenei sau ale obiectului observat. Aceste schimb
ari pot corespunde fizic la variatiile ilumin
arii, schimb
arile de orientare sau de distanta fata de
observator, schimb
ari de reflectanta ale suprafetelor, variatii de absorbtie a radiatiei.
ntr-un num
ar mare de cazuri, aceste variatii de intensitate sunt informatii importante
pentru operatiile ce urmeaz
a segment
arii, informatii ce corespund frontierelor regiunilor
determinate de obiectele scenei.

8.2.1

Metode derivative

Principiul acestei metode const


a n definirea punctelor de contur ca fiind acei pixeli ai
imaginii n care apar schimb
ari importante (abrupte) ale nivelului de gri. Deci, m
asurarea
acestei variatii se va face prin operatori derivativi de tip gradient.
Pentru o imagine cu suport spatial continuu, pe directia unei muchii, derivata va fi
maxim
a. Derivata imaginii pe directia r, ce face unghiul cu orizontala, este dat
a
de combinatia liniar
a a derivatelor partiale pe directiile orizontal
a si vertical
a (8.17):
f
f x f y
f
f
=
+
=
cos +
sin
r
x r
y r
x
y
f
= fx cos + fy sin
(8.17)
r
Valoarea maxim
a a acestei derivate, calculate dup
a unghiul este determinat
a de ecuatia

f
r

= fx sin + fy cos = 0

ce are solutia evident


a:
0 = arctan

fy
fx

(8.18)

Pe aceast
a directie, modulul gradientului este:
f
r

fx2 + fy2

(8.19)

max

Din punct de vedere practic, implementarea acestei metode implic


a atunci calcularea,
pentru fiecare punct al imaginii, a derivatelor partiale fx si fy , calcularea modulului
gradientului maxim (8.19) si a directiei acestuia (8.18). Valoarea gradientului maxim din
fiecare punct al imaginii este apoi comparat
a cu un prag fixat: dac
a pragul este dep
asit
123

(deci gradientul maxim n pixelul respectiv este suficient de important) atunci pixelul
testat este pixel de contur.
Realizarea derivatelor partiale dup
a directiile orizontal
a si vertical
a implic
a translatia n
discret a lui fx si fy :
f (m, n)
f
fx =
=
x
m
f
f (m, n)
fy =
=
y
n
Aceste derivate partiale discrete pot avea mai multe implement
ari:
fx = f (m, n) f(m + 1, n), fy = f (m, n) f (m, n + 1)

(8.20)

fx = f (m 1, n) f(m, n), fy = f (m, n 1) f(m, n)

(8.21)

fx = f (m 1, n) f(m + 1, n), fy = f (m, n 1) f(m, n + 1)

(8.22)

Toate expresiile date de (8.20), (8.21), (8.22) sunt combinatii liniare ale valorilor unor
pixeli din imagine, situati n vecin
atatea pixelului curent din pozitia (m, n). Deci toate
aceste operatii se pot realiza prin filtr
ari liniare cu m
asti potrivite: (8.23) pentru (8.20),
(8.24) pentru (8.21), (8.25) pentru (8.22).
Wx =
Wx =

Wx =

1 1

, Wy =

1 -1

, Wy =

1 0 1

1
1

1
-1

1
, Wy = 0
1

(8.23)

(8.24)

(8.25)

Schema bloc a extragerii de contururi este reprezentat


a n figura 8.6.
Harta de orient
ari este o imagine care contine, pentru fiecare pixel, orientarea gradientului
de modul maxim n punctul respectiv, si este n general folosit
a la prelucrarea suplimentar
a a contururilor (conectare de contururi, extragere directional
a de contururi). Harta
de contururi este o imagine binar
a n care punctele marcate (puncte-obiect) corespund
pozitiei punctelor de contur (puncte cu gradient de modul mare). O simplificare uzual
a
practicat
a este nlocuirea normei L2 din calculul modulului maxim al gradientului (8.19)
cu norma L1, ceea ce conduce la aproximarea:
f
r

max

|fx | + |fy |

124

fx(m,n)
grad(f)max

Wx

fy(m,n)

Comparator

Harta de
contururi

grad(f)max(m,n)
Harta de
orientari

Wy
(m,n)

Fig. 8.6: Schema bloc a extractorului de contururi bazat pe metoda de gradient.


Folosirea m
astilor de derivare pe vertical
a si orizontal
a prezentate are ns
a serioase neajunsuri: dimensiunea lor mic
a face ca rezultatele s
a fie extrem de sensibile n prezenta
zgomotului. n aceste conditii a ap
arut natural
a ideea de a combina filtrarea de derivare
cu o filtrare de netezire, care s
a mai reduc
a efectele zgomotului. Considernd zgomotul
de tip gaussian, aditiv, filtrarea de netezire are ca efect secundar micsorarea contrastului
frontierelor obiectelor din imagine (efectul de ncetosare, sau blur). Pentru ca n aceste
conditii detectia contururilor s
a nu fie afectat
a, trebuie ca operatia de mediere prin care se
realizeaz
a netezirea s
a se fac
a pe o directie perpendicular
a directiei contururilor c
autate
[3]. Atunci derivarea pe vertical
a se combin
a cu o operatie de netezire cu masc
a orizontal
a 1/3 1/3 1/3 si derivarea pe orizontal
a se combin
a cu o operatie de netezire

1/3

1/3 . Dac
a folosim pentru derivare masca Wy din (8.23), masca
cu masc
a vertical
a
1/3
1/3
1/3
1/3
de filtrare rezultant
a va fi
. n cazul general se pot folosi ns
a
1/3 1/3 1/3
pentru netezire medieri ponderate (si nu neap
arat medieri aritmetice), care s
a acorde
1
o mai mare importanta pixelului curent prelucrat, ca de exemplu c+2 1 c 1 si se
prefer
a folosirea operatorilor de derivare simetrici, de tipul (8.25). Ceea ce rezult
a pentru
operatorii de derivare orizontal
a si vertical
a sunt m
astile:

1 0 1
1
c
1
0
0
Wx = c 0 c , Wy = 0
(8.26)
1 0 1
1 c 1
Prin particularizarea valorilor constantei de ponderare c se pot obtine diferite
tipuri
de operatori de extragere de contur clasici: Prewitt (c = 1), Izotrop (c = 2), Sobel
(c = 2) [9]. Se remarc
a faptul c
a constanta de ponderare global
a a m
astii de filtare este
neesential
a, ntruct conditia de normare ce trebuie ndeplinit
a este cea pentru filtre de
contrastare (derivare) (3.9): suma coeficientilor m
astii s
a fie nul
a. Figura 8.7 prezint
a
125

harta de intensitate a tranzitiilor (modulul maxim al gradientului, f


) iar figura 8.8
r max
prezint
a harta binar
a de contururi extras
a prin compararea h
artii de intensit
atii cu un
prag fixat (binarizarea h
artii de intensitate).

Fig. 8.7: Harta de intensitate a contururilor (modulul maxim al gradientului) calculat


cu m
asti Prewitt pentru imaginea lena.

Fig. 8.8: Harta binar


a de contururi extras
a din harta de intensit
ati precedent
a.
Informatia de orientare este n general folosit
a n etape urm
atoare ale prelucr
arii; unghiurile determinate dup
a (8.18) ofer
a un unghi exact al directiei conturului n punctul
curent, calculat cu un efort semnificativ de calcul (mp
artire si calcul de arctangent
a).
n practic
a, aceast
a informatie este prea exact
a: pe grila p
atrat
a de esantionare nu se
pot reprezenta cu usurinta drepte continue dup
a orice directie5 ; cteva directii sunt fa5

Problema tras
arii figurilor geometrice oarecari (inclusiv a dreptelor) este rezolvat
a de grafica pe

126

vorizate si usor de utilizat (vertical, orizontal, cele dou


a diagonale). n acest caz se poate
m
asura n fiecare modulul gradientului dup
a aceste cteva directii importante, si apoi se
poate alege directia dup
a care acest modul este maxim. Acesta este principul operatorilor
compas.
Un operator compas este definit de un num
ar de m
asti de derivare (corespunz
atoare
n continuare unor filtr
ari liniare) pe directiile principale (vertical, orizontal, cele dou
a
diagonale), n cele dou
a sensuri. Compasul clasic are D = 8 m
asti de filtrare (identice
dou
a cte dou
a, mai putin semnul), fiecare dintre ele realiznd o derivare dup
a o directie
multiplu de 45 . Schema bloc a unui operator compas este prezentat
a n figura 8.9; se
remarc
a faptul c
a, odat
a determinat
a valoarea maxim
a a modulului gradientului n pixelul
curent (m, n), obtinerea h
artii de contururi se face ca si la un operator de gradient clasic.
f1(m,n)
W1
f(m,n)

Comparator

f2(m,n)
W2

max(gradk(f))

max(gradk(f))

fD(m,n)
WD

Harta de
contururi

k(m,n)

Harta de
orientari

Fig. 8.9: Schema bloc a unui operator compas de extragere a contururilor.


Un exemplu de m
asti de derivare directional
a sunt m
astile
atoare (indexate
dup
a
urm

1 1 1

0
0
0 , WNV =
directia geografic
a pe care calculeaz
a derivata): WN =
1 1
1

1 1 0
1 0 1
0
1
1
1
1
1
1 0
1 , WV = 1 0 1 , WSV = 1 0
1 , WS = 0
0
0 ,
0
1 1
1 0 1
1 1 0
1 1 1
1 1
0
1 0 1
0 1 1

1 0
1 , WE =
1 0 1 , WNE =
1 0
1 . Dup
a cum
WSE =
0 1 1
1 0 1
1 1
0
calculator, prin algoritmi de rendering.

127

se remarc
a, familia de m
asti se poate genera pornind de la una dintre m
astile Prewitt,
prin translatii circulare cu o pozitie a frontierei m
astii n jurul centrului ei; n mod analog
se pot obtine operatori
compasbazati pe masca Sobel sau pe gradientul izotrop sau pe

5
5
5

3 0
3 . Precizia unghiular
masca Kirsch
a a operatorilor compas este deci
3 3 3
determinat
a de num
arul de orient
ari diferite pe care se calculeaz
a derivatele, si deci de
num
arul de translatii ale frontierei m
astii; pentru o masc
a p
atrat
a de baz
a de dimensiune

N , precizia unghiular
a a operatorului compas este de 90 /(N 1).
Unul dintre principalele dezavantaje ale metodelor de gradient este precizia slab
a de localizare a conturului (a centrului tranzitiei) n conditiile unei pante putin abrupte a acestuia (tranzitii slabe, graduale). Derivata a doua poate fi ns
a folosit
a pentru a determina
capetele tranzitiei (cele dou
a extreme), sau pentru a marca centrul tranzitiei (trecerea sa
prin zero); figura 8.10 ilustreaz
a aceast
a comportare pentru cazul unidimensional.
Operatorul bazat pe trecerea prin zero a derivatei secunde este operatorul zero-crossing
[9]. n cazul imaginilor (semnale cu suport bidimensional) trebuie luat
a n considerare
derivata secund
a dup
a ambele directii, combinate n laplacian:
f =

2f
2f
+
x2 y 2

n cazul discret, m
asti ce implementeaz
a laplacianul sunt m
astile W5 W7 , prezentate
la capitolul de mbun
at
atire a contrastului imaginilor (pag. 37). Precizia sporit
a a
operatorilor laplacieni conduce ns
a la o sensibilitate crescut
a n prezenta zgomotelor (mai
mare dect a operatorilor de gradient). Mai mult, laplacianul nu mai contine informatie
relativ
a la directia tranzitiei.

8.2.2

Alte metode

O clas
a important
a de operatii neliniare de extragere a contururilor sunt cele bazate
pe morfologia matematic
a. n sectiunea 6.2.3 am prezentat operatori morfologici de
extragere a contururilor. Principiul acestora este de a m
asura diferentele dintre valorile
extreme (minim si maxim) ale vecin
at
atii punctului curent; dac
a diferenta dintre aceste
valori este suficient de mare nseamn
a c
a punctul curent este un punct de contur, aflnduse ntr-o zon
a de tranzitie a valorilor pixelilor. Variante ale acestei tehnici de baz
a se
pot obtine prin considerarea a mai multe elemente structurante, avnd diferite forme si
dimensiuni.

128

Fig. 8.10: Profil de tranzitie gradual


a; maximul primei derivate nu poate marca cu
precizie centrul tranzitiei; derivata secund
a trece prin zero la mijlocul conturului.

129

Capitolul 9

PARAMETRI DE FORMA
Prin parametri de form
a ntelegem n general orice scalar sau functie (cu suport unidimensional sau bidimensional) asociate unei forme plane pe care o caracterizeaz
a; forme
asem
an
atoare sunt caracterizate de parametri de form
a de valori apropiate; formele
diferite prezint
a diferente mari ntre parametrii de form
a ce le sunt asociati. Parametrii
de form
a compun un fel de fisa de identitate a formei respective, pe baza c
arei aceast
a
form
a poate fi recunoscut
a n mod unic. n mod ideal, acesti parametri trebuie s
a fie
invarianti la translatie, rotatie si scalare. Tehnicile de recunoastere a formelor sau de
clasificare sunt precedate ntotdeauna de o etap
a de extragere a parametrilor de form
a
(sau a caracteristicilor formei).
Pentru analiza imaginilor, o form
a este o functie de dou
a variabile, cu suport compact
f (x, y) : K R; n general valorile acestei functii sunt binare (0 sau 1), descriind
deci o parte a unei imagini binare (zona din imagine n care se afl
a obiectul de interes).
Atunci functia poate fi v
azut
a ca o functie caracteristic
a a formei, asem
an
atoare functiei
caracteristice a unei multimi.
n cele ce urmeaz
a vom prezenta ctiva parametri de form
a clasici.

9.1

Parametri geometrici

Aceast
a categorie de parametri se bazeaz
a pe m
asura unor atribute geometrice simple:
arie (S), perimetru (P ), num
ar de g
auri, num
arul lui Euler (num
arul de regiuni conexe
num
arul de g
auri). Cum nu toate aceste numere sunt invariante si caracteristice unic
unei anume forme, au ap
arut combinatii de tip raport.
Raportul de compacitate (numit si factor de form
a [19]) este raportul dintre p
atratul

130

perimetrului si suprafata formei:


P2
(9.1)
4S
Pentru o form
a circular
a raportul este unitar; cu ct num
arul este mai apropiat de
aceast
a valoare, cu att mai mult forma seam
an
a cu un disc (p
atratul are un raport de
compacitate = 1.273). Exist
a ns
a forme diferite caracterizate de aceeasi valoarea a
parametrului dat de (9.1).
=

Excentricitatea sau circularitatea formei (m


asura n care forma dat
a se deosebeste de
disc) poate fi definit
a si ca un raport al razelor cercurilor circumscrise (R) si nscrise (r)
formei:
R
c=
(9.2)
r
Acest raport este evident unitar n cazul discului; pentru p
atrat valoarea sa este de
c = 1.412.

9.2

Momente statistice si invarianti

Interpretnd functia caracteristic


a a formei ca pe o functie de densitate de probabilitate
bidimensional
a, putem defini momentele statistice asociate celor dou
a variabile aleatoare
(ce sunt coordonatele punctelor formei) [17]:
f (x, y)xp y q dxdy, p, q = 0, 1, 2, ...

mpq =

(9.3)

Scalarul mpq (momentul de ordin p, q sau p + q) este proiectia functiei f (x, y) pe poliarii cu momente
noamele xp si y q ale bazei complete de polinoame. Teorema reprezent
afirm
a c
a multimea infinit
a de momente mpq determin
a n mod unic f (x, y) si reciproc.
n cazul imaginilor binare, coordonatele sunt discrete si functia este o functie caracteristic
a; formula momentelor (9.3) devine
xp y q

mpq =

(9.4)

f (x,y)=0

Cum caracterizarea unei forme printr-o serie infinit


a de numere (asa cum cere teorema
reprezent
arii cu momente) nu este posibil
a, n practic
a se folosesc serii de momente
truncheate pn
a la un ordin maxim fixat N (p + q  N ). Acestea ns
a caracterizeaz
a
o alt
a functie, g(x, y), o aproximare a lui f (x, y). Aceast
a aproximare este dat
a de o
combinatie liniar
a a polinoamelor bazei, ponderate cu scalarii necunoascuti gpq :
gpq xp y q

g(x, y) =
p+qN

131

(9.5)

G
asirea acestor scalari se face prin egalarea momentelor cunoscute ale lui f (x, y) cu
momentele lui g(x, y) dat
a de expresia (9.5). Rezolvnd sistemul de ecuatii cuplate ce
se formeaz
a (a se vedea [9]), se pot obtine relatiile c
autate; calculul trebuie ns
a ref
acut,
din cauza cupl
arii ecuatiilor, ori de cte ori se doreste trecerea la o aproximare mai bun
a
a formei f , m
arind valoarea lui N. Aceast
a cuplare provine din cauza folosirii unei
baze neortogonale (asa cum este familia de polinoame xp y q ) pentru calculul momentelor;
problema a fost rezolvat
a prin folosirea proiectiilor pe baza de polinoame Legendre [9].
Trebuie ns
a remarcat c
a folosirea momentelor statistice pentru caracterizarea unei forme
nu asigur
a ndeplinirea a nici unuia dintre principiile de invarianta c
autate; de aceea au
fost introduse momente statistice invariante [19], [9].
Momentele statistice invariante la translatie sunt momentele statistice centrate:
pq =
f (x,y)=0

(x x)p (y y)q

(9.6)

Momentele statistice invariante la translatie si scalare sunt definite de:


pq =

pq
p+q
, = 1+
00
2

(9.7)

Invariantii la translatie, scalare si rotatie ai unei forme, obtinuti n conditiile folosirii unor
momente statistice de ordin cel mult 3 (N = 3), sunt n num
ar de 7 si sunt exprimati de:
1 = 20 + 02

(9.8)

2 = ( 20 02 )2 + 4 211

(9.9)

3 = ( 30 3 12 )2 + ( 03 3 21 )2

(9.10)

4 = ( 30 + 12 )2 + ( 03 + 21 )2

(9.11)

5 = ( 30 3 12 )( 30 + 12 ) ( 30 + 12 )2 3( 03 + 21 )2 +

(9.12)

+(03 321 )( 03 + 21 ) ( 03 + 21 )2 3( 30 + 12 )2

6 = ( 20 02 ) ( 30 + 12 )2 ( 03 + 21 )2 + 4 11 ( 30 + 12 )( 03 + 21 )
7 = ( 30 3 21 )(03 + 21 ) (03 + 21 )2 3( 30 + 12 )2

(9.13)
(9.14)

(03 321 )( 30 + 12 ) (30 + 12 )2 3(03 + 21 )2

Initial (mijlocul anilor 60) acesti invarianti au fost folositi pentru recunoasterea caracterelor mari de tipar, cu rezultate modeste. Eficienta lor const
a ns
a n modul rapid de
calcul si posibilitatea de a le utiliza cu succes pentru recunoasterea formelor geometrice
convexe.

132

Folosind momentele invariante, se mai pot deduce alte atribute: excentricitatea suprafetei
(9.15), care m
asoar
a gradul de uniformitate al distributiei punctelor formei n jurul centrului de greutate si orientarea suprafetei, caracterizat
a de unghiul fata de orizontal
a
al axei fata de care momentul inertie al formei este minim (9.16).
2
00

(9.15)

1
211
arctan
2
20 02

(9.16)

=
=

9.3

Semn
atura formei

Semn
atura unei forme este o functie scalar
a de o variabil
a, asociat
a unei forma plane.
Semn
atura este definit
a de distanta de la un punct de referinta fixat x (n general centrul
de greutate al formei) la fiecare punct de pe conturul (frontiera) formei. Aceast
a distanta
este exprimat
a (sau m
asurat
a) n functie de unghiul la centru realizat de punctul curent
de pe contur cu axa orizontal
a de referinta, dx () sau n functie de abscisa curbilinie
(lungimea conturului cuprins ntre punctul curent si punctul n care axa de referinta intersecteaz
a conturul), dx (). Semn
atura formei este o reprezentare reversibil
a (cunoscnd
semn
atura se poate reconstrui conturul obiectului). Figurile 9.1 si 9.2 prezint
a semn
aturile unor forme poligonale.

Fig. 9.1: Semn


atura unui p
atrat ca functie de unghiul la centru; punctul de referinta este
centrul de greutate, axa de referinta este orizontala.
Este posibil ca, pentru formele concave, semn
atura n functie de unghiul la centru s
a nu
poat
a fi calculat
a, deoarce, pentru anumite unghiuri , intersectia dreptei de directie
cu conturul s
a fie format
a din mai multe puncte. Aceast
a problem
a nu apare n cazul
semn
aturii n functie de abscisa curbilinie. Ca o restrictie general
a, n cazul folosirii
semn
aturii bazate pe unghi, trebuie ca punctul de referinta x s
a apartin
a nucleului formei.
Nucleul formei K, Ker(K) este definit prin:
Ker(K) = {x|y K, [xy] K}
133

(9.17)

Fig. 9.2: Semn


atura unei forme poligonale n functie de abscisa curbilinie; punctul de
referinta este centrul de greutate, axa de referinta este orizontala.
unde [xy] semnific
a segmentul de dreapt
a definit de punctele x si y. n cazul formelor
concave, nucleul formei este o multime vid
a.
Folosind semn
atura formei, se pot defini parametri de tip geometric. Raportul de simetrie
este definit ca
dx ()
Y (K) = sup inf
(9.18)
xK [0;] dx ( + )
Se observ
a c
a nu s-a f
acut nici o presupunere privind convexitatea formei K, dar unicitatea
distantelor dx () si dx ( + ) implic
a calcularea raportului de simetrie dup
a punctele ce
apartin nucleului formei.
Raportul de circularitate este definit ca:
C(K) =

sup (dx () + dx ( + ))
inf (dx () + dx ( + ))

(9.19)

Functia hK () = dx () + dx ( + ) se numeste suportul formei, si este diametrul formei


pe directia .
n [5] s-a propus aproximarea formelor prin dezvoltarea n serie Fourier a semn
aturii acestora si truncherea reprezent
arii (tehnic
a utilizat
a si ntr-o aplicatie clasic
a de recunoastere
a conturului unor tipuri de avioane). O alt
a posibil
a aplicatie a semn
aturii pleac
a de la
observatia c
a, pentru o form
a poligonal
a, n semn
atur
a, pozitia vrfurilor este marcat
a
de puncte unghiulare (a se urm
ari figurile 9.1 si 9.2). Atunci aceasta poate fi o metod
a de
aproximare poligonal
a a unei forme oarecari (g
asirea vrfurilor unui poligon ce o aproximeaz
a ct mai bine).

134

9.4

Skeletoane morfologice si generalizate

Skeletonul este o reprezentare bidimensional


a simplificat
a, echivalent
a, a unei forme. Pentru o form
a A oarecare se defineste discul maximal n A, de centru x si raz
a r, Bx (r) ca
fiind discul caracterizat de:
Bx (r) A
(9.20)
Bx (r) Bx (r ) A

r=r
x=x

(9.21)

Deci discul maximal trebuie s


a fie inclus n form
a (9.20) si nici un alt disc inclus n form
a
s
a nu l includ
a, sau, dac
a l include, s
a fie identic cu acesta (9.21). O form
a poate avea
mai multe discuri maximale.
Skeletonul unei forme este multimea centrelor discurilor maximale ale formei. Ca exemple simple, skeletonul unui disc este centrul s
au, skeletonul unui p
atrat este reuniunea
diagonalelor sale (figura 9.3).

Fig. 9.3: Exemple de skeletoane ale unor forme continue simple.

9.4.1

Skeletonul morfologic

Calculul skeletonului unei forme reprezentate n spatiul discret se poate face prin formula
Lantuejoul [15]; skeletonul formei A, SK(A), este format din reuniunea unui num
ar finit
de seturi skeleton:
Nmax

SK(A) =

Sn (A)

(9.22)

n=0

Sn (A) = (A

nB) (A

nB) B

(9.23)

Ordinul Nmax corespunde momentului n care toate seturile skeleton succesive devin nule,
moment marcat de A Nmax B = ; elementul structurant nB este iterarea de n ori a
elementului structurant B, nB = B ... B (de n ori). Elementul structurant folosit
135

este n general o expresie discret


a a discului unitar (deci element structurant V4 sau V8 ).
Figura 9.4 prezint
a skeletonul unei forme discrete oarecare.

Fig. 9.4: Skeleton al unei forme discrete, reprezentat prin reuniunea seturilor skeleton si
informatia de apartenenta a fiec
arui punct la un anumit set skeleton.
Reconstructia formei din skeleton se face dup
a formula
Nmax

A=
n=0

Sn (A) nB

(9.24)

Se pot realiza si reconstructii partiale (aproxim


ari ale multimii A) prin neglijarea seturilor
skeleton ce reprezint
a detaliile (acestea sunt seturile skeleton de ordin mic); aproximarea
de ordin k a formei nseamn
a deci ignorarea primelor k seturi skeleton din reconstructie:
Nmax

Ak =
n=k

Sn (A) nB

(9.25)

Skeletonul este invariant la translatie, nu este conex (chiar dac


a forma A este conex
a; a se
vedea figura 9.5), nu este comutativ cu operatia de reuniune a formelor (a se vedea figura
9.6). Transformarea skeleton este idempotent
a (SK(SK(A)) = SK(A)) si antiextensiv
a
(SK(A) A). Seturile skeleton sunt disjuncte dou
a cte dou
a (Si (A) Sj (A) = , i =
j).
Folosirea skeletonului morfologic pentru recunoasterea fomelor este restrictionat
a de puternica sa sensibilitate la zgomote (o mic
a schimbare a formei duce la o modificare semniari
ficativ
a a skeletonului1 ), si de variatia la rotatia si scalarea obiectelor (pentru reprezent
n spatiul discret). n acelasi timp, folosirea elementului structurant de tip disc unitar
aduce o puternic
a dependenta de metrica folosit
a n definirea sa (s
a nu uit
am c
a ntr-un
1

Exemplul clasic este de a considera un disc f


ar
a centru; n acest caz skeletonul este o coroan
a circular
a
situat
a la jum
atatea razei.

136

Fig. 9.5: Skeletonul nu este conex.

Fig. 9.6: Transformata skeleton nu este comutativ


a cu reuniunea.
spatiu discret, metrica Euclidian
a nu este cea mai favorabil
a) si produce elemente structurante p
atrate (V8 ) sau n cruce (V4 ), ce pot fi cu greu interpretate ca discuri. Aceasta
a dus la folosirea unei clase de elemente structurante care s
a nu provin
a din notiunea de
metric
a - elementele structurante generalizate.

9.4.2

Skeletonul generalizat

Fie {Gi } un set de multimi, numit set generator. Elementele structurante generalizate
sunt definite recurent prin:
Bi = Bi1 Gi , i = 1, 2, ...

(9.26)

B0 = 0n
n general se folosesc seturi generatoare avnd o anumit
a periodicitate T (Gi+kT =
a constructia setului de elemente strucGi , i, k Z). De exemplu, figura 9.7 prezint
turante generalizate rezultat dintr-un set generator cu perioad
a 1 (deci compus dintr-o
singur
a multime), E1 = {(1, 1), (1, 0), (0, 1), (0, 0)}.
Fiec
arui punct al formei A i se va asocia ordinul (indicele) elementului structurant generalizat maximal centrat cu originea n punctul respectiv, construind astfel o hart
a de

137

Fig. 9.7: Constructia unui set de elemente structurante generalizate.


distante (a se vedea si figura 9.8):
D(x) =

0, dac
ax
/A
n, dac
a (Bn1 )x A si (Bn )x

(9.27)

Fig. 9.8: Harta de distante a unui obiect construit


a pe baza setului de elemente structurante generalizate prezentat anterior si skeletonul generalizat corespunz
ator.

Skeletonul generalizat al unei forme este multimea originilor elementelor structurante


generalizate maximale n form
a2 :
GSK(A) = x A| BD(x)1

BD(y)1

, x = y

(9.28)

Folosind harta de distanta anterioar


a, skeletonul generalizat obtinut este prezentat n
figura 9.8.
2

Se poate remarca similitudinea cu definitia skeletonului, n care s-au nlocuit notiunile: centru al
discului cu origine a elementului structurant, disc cu element structurant generalizat, raz
a a discului cu
indice (ordin) al elementului structurant generalizat.

138

Capitolul 10
PRINCIPII DE IMPLEMENTARE
SOFTWARE S
I HARDWARE
Principiile esentiale legate de implement
arile practice ale sistemelor de prelucrarea si analiza imaginilor urm
aresc dou
a directii, cu dezvoltare corelat
a: implement
arile software si
dispozitivele hardware (de accelerare). Dup
a cum am ar
atat n capitolul introductiv,
la descrierea structurii tipice a unui sistem de prelucrarea si analiza imaginilor, marea
majoritate a implement
arilor folosesc ca suport fizic pentru unitatea central
a de prelucrare un calculator obisnuit (compatibil PC); ceea ce l particularizeaz
a este pachetul
de programe rulate. Putem distinge dou
a categorii fundamentale de astfel de programe:
programe strict dependente de aplicatie si programe de uz general.
Un program dependent de aplicatie realizeaz
a doar algoritmii specifici operatiei pe care o
execut
a sau supravegheaz
a. Interactiunea cu operatorul uman este minim
a si calificarea
acestuia nu este necesar s
a o dep
aseasc
a pe cea a unui tehnician [11]. Adeseori programul
trebuie s
a fie de timp real. Aceste variante de implementare sunt potrivite pentru procese
caracterizate de parametri stabili si care se desf
asoar
a n conditii ambiante (iluminare,
poluare vizibil
a particule, fum) relativ constante si nu sunt portabile (fiind n general
optimizate pentru o anumit
a structur
a hardware).
Programele de uz general permit efectuarea unui mare num
ar de operatii de prelucrarea
si analiza imaginilor, cu numerosi parametri reglabili. Interactiunea cu operatorul uman
este mare si acesta trebuie s
a aib
a o calificare superioar
a. Programele de acest tip nu
sunt de timp real si n general sunt cuplate o-line cu instalatiile tehnologice propriuzise, f
acnd parte mai ales din dotarea laboratoarelor de cercetare si de analiza calit
atii
si conformit
atii. Interfata utilizator este cea care creaz
a diferenta ntre dou
a categorii
de programe, n ceea ce priveste modalitatea n care operatorul specific
a succesiunea de
operatii de executat. Din acest punct de vedere vom face distinctia ntre menu-driven si
flow-chart driven (deci programe controlate prin meniu sau prin graf de flux).

139

Implement
arile de tip menu-driven aplic
a cte un unic pas de prelucrare asupra imaginii
din fereastra activ
a; rezultatul va fi prezentat ntr-o nou
a fereastr
a de afisare. Tipurile
de operatii se aleg din meniuri sau bara de butoane. Asemenea solutii corespund majorit
atii sistemelor software comerciale de grafic
a si imaging (de tipul Adobe Photoshop,
Corel Draw, Paint Shop Pro). Operatiile realizate sunt orientate mai ales c
atre aspectul
grafic (publicistic) al imaginilor, referindu-se n special la operatii de filtrare, modificare a
contrastului, pseudocolorare, decupare de regiuni. Programele cu comand
a menu-driven,
cu rezultatele intermediare parcurgnd etapele operatiilor din fereastr
a n fereastr
a, sunt
direct derivate din proiectarea obiectelor de interfata n sistemele de tip Windows.
Implement
arile de tip flow-chart permit construirea grafic
a interactiv
a a unui lant de
operatii aplicate unei imagini initiale. Fiecare operatie este un bloc functional caracterizat de intr
ari, iesiri si parametri de control; blocurile functionale sunt interconectate,
implementnd fluxul de operatii pe care l va parcurge imaginea. Procesul de comand
a
nseamn
a selectarea imaginii initiale si actionarea unui buton de start. Asemenea programe sunt tipice sistemelor de calcul mari (statii de lucru), pentru care produsul Khoros
este un standard de fapt; un produs similar pentru PC este programul AdOculos (figura
10.1).

Fig. 10.1: Specificarea fluxului de operatii n fereastra de comand


a a programului AdOculos.
Ca o categorie intermediar
a ntre comenzile meniu si diagrama de flux, putem considera
programele cu comand
a de tip macro (sau batch); programul (sau limbajul) Matlab poate
fi ncadrat ntr-o asemenea categorie.
Multe dintre opertiile initial realizate prin software-ul de aplicatie au migrat c
atre nivelul
hardware. Exemplul cel mai tipic de asemenea comportament este dat de rezolvare
problemei de dithering (aproximarea culorilor reale dintr-o imagine. folosind un num
ar
mic de culori disponibile la dispozitivul de afisaj). Dup
a ce, initial, problema era rezolvat
a
140

de programele aplicatie, gestiunea culorilor a trecut n grija sistemului de operare, pentru


ca, recent, s
a apar
a pl
acile grafice inteligente. Aceasta este de altfel una dintre tendintele
actuale: evolutia accesoriilor (pl
aci specializate, dispozitive de achizitie) inteligente, deci
cu facilit
ati de prelucrare integrate. Senzorii de imagine CCD sunt una dintre tintele
predilecte ale acestei dezvolt
ari, nglobnd cipuri de compresie si transmisie a imaginilor,
comand
a de urm
arire automat
a a tintei, operatii de recunoastere.
Desi programarea orientat
a pe obiecte este un concept destul de nou, evolutia sa a fost
deosebit de spectaculoas
a. Probabil c
a principalul atu al acestei evolutii a fost aparitia
sistemului de operare Windows (cu toate derivatele sale 3.1, 3.11, 95, 98, etc.) a c
arui
structur
a este n ntregime bazat
a pe conceptul de obiecte. Programarea unei aplicatii
Windows va face n mod clar apel la structuri predefinite - clasele de baz
a aplicatie,
fereastr
a, buton, s.a.m.d. Atunci devine destul de normal s
a fie proiectate si datele
specifice ale aplicatiei particulare tot ca structuri de tip obiecte.
Alegerea unui limbaj specific de programare nu mai este totusi o problem
a esential
a;
majoritatea limbajelor de uz general ingineresc (tehnic) provin din trunchiul comun C /
Pascal. Desigur c
a exist
a nenum
arate variante ale acestor limbaje de baz
a (C++ Builder,
Visual C++, Delphi, Borland C++ si Borland Pascal cu obiecte) si chiar apar limbaje noi
(Java, care, desi se revendic
a ca o aplicatie pur distribuit
a pentru folosirea retelelor si n
special a Internetului, nu este cu mult diferit
a ca structur
a de un C cu clase). Principala
evolutie a mediilor de programare nu a fost ns
a legat
a de modificarea limbajului n sine
(si deci a caracteristicilor de compilare a codului) ci modificarea stilului n care se creaz
a
aplicatia specific
a, si mai precis, aspectul de interfata.
Proiectarea unei interfete pentru Windows nseamn
a definirea unor actiuni asociate evenimentelor produse n sistem (clicuri de mouse, ap
as
ari de taste) si construirea elementelor
grafice specifice (ferestre de afisare si de dialog, meniuri, introducere date, etc.). Acest
a
activitate a fost simplificat
a la maximum prin aparitia constructoarelor vizuale de aplicatii, n care interfata grafic
a este construit
a prin alipirea unor elemente de baz
a (butoane,
ferestre, zone de text) pe cadre fixe (fereastr
a), numai cu mouse-ul (prin tehnic
a drag and
drop). Compilatorul genereaz
a automat codul surs
a aferent constructiei; tot ceea ce trebuie s
a fac
a programatorul este s
a lege sursa ce descrie aplicatia si actiunea specific
a la
codul care interpreteaz
a evenimentul de apel.
Ceea ce trebuie subliniat (spre a evita anumite interpret
ari uzuale, dar eronate) este c
a
aceste medii de programare avansate (gen Builder, Visual, etc..) nu preiau si atributia de
a scrie algoritmii specifici; usurinta constructiei vizuale este legat
a strict de constructia
interfetei aplicatiei, deci aspect grafic si eventual partea de preluare a datelor. Programatorul va dezvolta restul aplicatiei ca pentru un compilator clasic.
Concluzia ce rezult
a din aceast
a scurt
a discutie este aceea c
a, pentru orice aplicatie,
trebuie separata partea de interfata de partea de calcul specific. n cazul unui program de
prelucrarea si analiza imaginilor acesta nsemn
a c
a trebuie f
acut
a o proiectare la nivelul
structurii de date (matricea ce contine valorile pixelilor din imagine si prelucr
arile specifice
141

asupra acestora) si o proiectare la nivelul interfetei (care s


a specifice cum se va face afisarea
imaginilor pe ecran, cum vor fi scrise pe disc, cum se va face un eventual transfer dinamic
al datelor de la sau c
atre alte aplicatii). Majoritatea covrsitoare a sarcinilor legate
de interfata pot fi rezolvate f
ar
a a cunoaste nimic despre operatiile specifice prelucr
arii
imaginilor si despre modul n care o imagine este reprezentat
a n memoria de lucru a
calculatorului. S
a consider
am de exemplu problema afisarii unei imagini ntr-o fereastr
a.
F
ar
a ndoial
a c
a cel mai simplu mod de afisare este folosirea imaginii ca un canvas,
nglobat n obiectul de tip fereastr
a, si de a c
arui afisare se ocup
a sistemul Windows.
Aceast
a abordare exclude ns
a accesul la continutul imaginii; aceasta trebuie deci separat
a
de fereastra de afisare. Este poate deci preferabil
a memorarea imaginii ca o matrice
si transformarea acesteia ntr-o structur
a bitmap atasat
a ferestrei, la fiecare cerere de
reafisare a acesteia.
Cuvntul de ordine actual n implement
arile software este orientarea-obiect (limbajele
C++, Delphi, Java), insistnd mai ales pe aspectele de polimorfism si mostenire pe care le
aduce acest stil de programare. Mostenirea corespunde cazului unor imagini cu structur
a
din ce n ce mai elaborat
a, pentru care se pot face tot mai multe operatii (de tip analiz
a
de form
a si clasificare, de exemplu). Polimorfismul corespunde realiz
arii unor operatii cu
nume (sau metode de implementare) identice care s
a aib
a comport
ari diferite, n functie
de tipul datelor c
arora li se aplic
a (functia de histogram
a poate produce, de exemplu,
functia de densitate de probabilitate a cmpului aleator imagine, n cazul imaginilor cu
nivele de gri, aria obiectelor, n cazul imaginilor binare si num
arul de componente conexe,
n cazul imaginilor binare etichetate). De asemenea, aspectul legat de refolosirea codului
nu este neglijabil (s
a nu uit
am, c
a, de exemplu, pentru filtrarea n domeniul spatial, un
numitor comun al diverselor tipuri de filtre este tehnica de tip fereastr
a glisant
a).
Tehnologia Java, aduce, pa lng
a orientarea obiect, ideea de folosire a resurselor distribuite (fie pe Internet, fie ca resurse de multiprocesare). Astfel a devenit posibil
a crearea
de depozite de software specializat, universal executabil (prin mecanismul de applet) pe
orice masin
a pe care este disponibil un browser Internet. Marile avantaje anuntate pentru Java (cod portabil, executie paralel
a, protectie la manipularea defectuoas
a a zonelor
de memorie, protectia datelor) sunt contrabalansate de codul executabil relativ lent si de
dimensiunile mari ale codului surs
a.
Java este ns
a interesant
a pentru prelucrarea si analiza imaginilor prin perspectiva deschis
a de multi-threding existenta si gestionarea de c
atre o aplicatie oarecare a mai
multe fire de executie ce ruleaz
a concomitent din punct de vedere logic (sau aproape
concomitent din punctul de vedere fizic al calculatorului cu unic procesor); astfel devine
posibil
a rularea paralel
a de aplicatii pe sisteme cu unic procesor, f
ar
a sisteme de operare
multi-tasking. De altfel, putine sisteme fizice multiprocesor au fost realizate pentru prelucrarea de imagini; sistemele de prelucrarea si analiza imaginilor au utilizat n general
masini cu paralelism masiv (SIMD/ SPMD, transputer farm) sau grupuri de calculatoare
(cluster processing).

142

Exploatarea paralelismului este un merit pe care prelucrarea imaginilor si l-a arogat nc


a
de la nceputuri; operatiile tipice de prelucrarea imaginilor sunt operatii relativ simple,
cu un num
ar mare de instante (pentru fiecare pixel al imaginii se face ceva), folosind
date putin redundante (suprapunerea ntre pozitiile al
aturate ale ferestrelor de filtrare
este n general mic
a) si, uneori, informatie global
a (cazul histogramei sau a filtr
arilor n
domeniul de frecventa). Se pot distinge astfel dou
a nivele de paralelism: un paralelism
masiv, intrinsec structurii imaginii, legat de nivelul pixel, si un paralelism ascuns, specific
operatiilor de prelucrare (ca de exemplu realizarea operatiilor morfologice prin (6.3) si
(6.6) sau implementarea paralel
a a FFT).
n concluzie, putem afirma c
a prelucrarea si analiza imaginilor a reusit s
a cstige teren ca
urmare a realiz
arilor spectaculoase ale tehnologiei electronice si informaticii. Cresterea
continu
a a puterii de calcul disponibile n unit
atile de prelucrare ale calculatoarelor va
transforma probabil n viiitorul apropiat prelucrarea si analiza imaginilor dintr-o anex
a
nebuloas
a si exotic
a a aplicatiilor speciale ntr-o solutie fiabil
a de larg consum industrial.

143

Bibliografie
[1] Buzuloiu, V.: Prelucrarea imaginilor: note de curs, Universitatea Politehnica Bucuresti, 1998
[2] Castleman, K. R.: Digital Image Processing, Prentice Hall, Englewood Clis, NJ,
1996
[3] Cocquerez, J. P., Philipp, S. (coord.): Analyse dimages: filtrage et segmentation,
Masson, Paris, 1995
[4] Dougherty E. R., Giardina, C. R.: Image Processing - Continous to Discrete, vol. 1,
Geometric, Transform and Statistical Methods, Prentice Hall Inc., Englewood Clis,
1987
[5] Gonzales, R. C., Woods, R. E.: Digital Image Processing, Addison Wesley, Reading
MA, 1992
[6] Haralick, R. M., Shapiro, L. G.: Glossary of Computer Vision Terms, n Pattern
Recognition, vol. 24, no. 1, pag. 69-93, 1991
[7] Haralick, R. M., Sternberg, S. R., Zhuang, X.: Image Analysis using Mathematical
Morphology, n IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 9,
no. 4, Iulie 1987, pag. 532-549
[8] Jhne, B.: Practical Handbook on Image Processing for Scientific Applications, CRC
Press, 1997
[9] Jain, A. K.: Fundamentals of Digital Image Processing, Prentice Hall, Englewood
Clis NJ, 1989
[10] Ministerium fr Wirtschaft, Mittelstand und Technologie des Landes NordrheinWestfalen: Stand und Trends der Bidverarbeitung in NRW, Dsseldorf, 1995
[11] Ministerium fr Wirtschaft, Mittelstand und Technologie des Landes NordrheinWestfalen: Produkte und Dienstleitungen fr die Bildverarbeitung. Stand und Trends,
Dsseldorf, 1996

144

[12] Pitas, I., Venetsanopoulos, A. N.: Nonlinear Digital Filters Principles and Applications, Kluwer Academic Publ., Norwell MA, 1990
[13] Press, W. H., Flannery, B. P., Teukolsky, W. T., Vetterling, W. T.: Numerical
Recipes in C. The art of scientific computing, Cambridge University Press, 1988
[14] Serra, J.: Image Analysis and Mathematical Morphology, Academic Press, London,
1982
[15] Schmitt, M., Mattioli, J.: Reconnaissance de formes planaires par morphologie
mathematique et reseaux de neurones, n Revue Technique Thomson CSF, vol. 22,
no. 4, Decembrie 1990, pag. 573-609, Ed. Gauthiers-Villars: Paris
[16] Sp
ataru, A.: Teoria Transmisiunii Informatiei, Ed. Didactic
a si Pedagogic
a, Bucuresti, 1984
[17] Vertan, C., Gav
at, I., Stoian, R.: Variabile aleatoare: principii si aplicatii, Editura
Printech, Bucuresti, 1999
[18] Zamperoni, P.: Image Enhancement, Advances in Imaging and Electron Physics,
vol. 92, pp. 1-77, Academic Press, 1995
[19] Wahl, F. M.: Digital Image Signal Processing, Artech House, Boston, 1987

145

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