Sunteți pe pagina 1din 160

Mircea Virgil Popa Romana Oancea

Mircea Virgil Popa Romana Oancea Ş tefan Demeter Alina Hangan Prelucrarea numerică a imaginilor Aplicatii ale

Ştefan Demeter Alina Hangan

Virgil Popa Romana Oancea Ş tefan Demeter Alina Hangan Prelucrarea numerică a imaginilor Aplicatii ale
Prelucrarea numerică a imaginilor Aplicatii ale reţelelor neuronale în prelucrarea imaginilor
Prelucrarea numerică a
imaginilor
Aplicatii ale reţelelor neuronale în
prelucrarea imaginilor

Cuprins

I. PRELUCRAREA NUMERICĂ A IMAGINILOR

5

1. Imagini digitale

6

1.1 Reprezentarea imaginilor digitale

6

1.2 Imaginea digitală – semnal bidimensional

8

2. Achiziţia şi conversia analog – numerică a imaginilor

11

2.1 Achiziţia imaginilor

11

2.2 Conversia analog – numerică a imaginilor

12

3. Memorarea şi compresia imaginilor

14

3.1

Stocarea imaginilor

14

3.1.1 Stocarea imaginilor în memorie

14

3.1.2 Stocarea imaginilor în fişiere

15

3.2

Compresia imaginilor

17

4. Restaurarea imaginilor

18

4.1

Modele ale imaginii observate

19

4.2.Estimarea degradării

20

4.3. Restaurarea adaptivă a imaginilor

21

4.4. Restaurarea imaginilor pe baza funcţiei de vizibilitate a zgomotului

22

4.5. Metode de reducere a zgomotului

23

4.5.1. Modele de zgomot

23

4.5.2. Tipuri de filtre utilizate pentru reducerea zgomotului

25

1.

Filtre de mediere aritmetică

25

2.Filtre de ordine

26

3.Filtrul binar

29

4.

Alte tipuri de filtre

29

4.5.3

Concluzii privind utilizarea diferitelor tipuri de filtre

31

5. Operaţii de îmbunătăţire a imaginilor în domeniul spaţial

31

5.1.Operaţii punctuale

33

5.1.1. Modificarea de contrast

33

5.1.2. Limitarea şi binarizarea imaginilor

34

5.1.3. Inversarea (negativarea ) imaginilor

35

5.2.

Operaţii de tip fereastră

35

5.2.1.

Extragerea unui bit

36

5.2.2.

Compresia de contrast

36

5.2.3.

Scăderea imaginilor

36

5.2.4

Modelarea imaginilor prin histograme

36

5.3.

Operaţii spaţiale

39

5.3.1. Filtrarea spaţială

39

5.3.2. Inversarea de contrast şi scalare statistică

45

5.3.3. Mărimea şi interpolarea imaginilor (zooming)

45

5.4 Pseudocolorarea imaginilor

46

5.5 Îmbunătăţirea imaginilor color

48

6. Operaţii de îmbunătăţire a imaginilor în domeniul transformat

50

6.1.

Principalele transformări folosite în prelucrarea de imagini

50

6.1.1. Transformarea Fourier

51

6.1.2. Transformarea Cosinus

52

6.1.3. Transformarea Sinus

53

6.1.4. Transformarea Hartley

53

6.1.5. Transformarea Hadamard

53

6.1.6. Transformarea Walsh

54

6.1.7.

Transformarea Slant

54

6.1.8. Transformarea Haar

55

6.1.9. Transformarea Karhunen-Love

55

 

6.1.10.

Transformarea wavelet

56

6.2.

Filtrare în domeniul frecvenţă

57

6.2.1.Filtrul trece jos

57

6.2.2. Filtrul trece sus

60

6.2.3. Filtrul

homomorfic

61

6.2.4. Operaţii de transformare

63

7.

Segmentarea imaginilor

65

7.1.

Segmentarea orientată pe regiuni

65

7.1.1. Segmentarea bazată pe histogramă

65

7.1.2. Tehnici de fixare a pragului (thresholding)

66

7.1.3. Determinarea automată a pragurilor: metoda Bhattacharya

67

7.1.4. Segmentarea cu prag optim

68

7.1.5. Creşterea şi fuziunea regiunilor

69

7.2.

Segmentarea orientată pe contururi

71

7.2.1. Metode

derivative

71

7.2.2. Metoda filtrelor trece-sus

74

7.2.3. Extragerea conturului din imagini binarizate

74

8.

Analiza de imagine

75

8.1

Măsurarea imaginilor

75

8.1.1 Măsurarea strălucirii

75

8.1.2 Determinarea locaţiei

76

8.1.3 Orientarea

78

8.2

Extragerea caracteristicilor imaginilor

80

8.2.1 Caracteristici de formă

80

8.2.2 Caracteristici de tip transformare

88

8.2.2.1 Transformata Fourier – procesarea în domeniul frecvenţelor

89

8.2.2.2 Descriptorii Fourier (DF)

90

8.3 Identificarea trăsăturilor

92

8.4 Extragerea trăsăturilor

94

8.4.1 Organizarea şi vizualizarea trăsăturilor

94

8.4.2 Selecţia trăsăturilor

94

8.4.3 Clasificarea

94

8.5

Recunoaşterea formelor

95

8.5.1 Metode de recunoaştere cu decizie teoretică

95

8.5.2 Recunoaşterea obiectelor folosind „shape-from-shading”

97

8.5.3 Aplicaţii ale folosirii culorilor în recunoaşterea formelor

98

2.5.3.1 Potrivirea culorilor

98

8.5.3.2 Localizarea culorilor

99

8.5.3.3 Potrivirea culorilor după şablon

100

9.

Concluzii

101

10.

Bibliografie

102

II.

UTILIZAREA REŢELELOR NEURONALE ÎN PRELUCRAREA IMAGINILOR

104

1.

Introducere

105

1.1 Inteligenţa artificială

105

1.2 Specificul calculului neuronal

105

1.3 Structura unei reţele neuronale

106

2.

Reţele neuronale supervizate utilizate pentru refacerea imaginilor degradate

109

2.1 Distorsiunile imaginilor

109

2.2 Perceptronul multistrat

109

2.3

Algoritmul backpropagation

110

2.4

Metode de accelerare a vitezei de convergenţă

112

2. 4.1. Metoda momentului

112

2.4.2. Rata de învăţare variabilă

113

2.4.3. Evitarea minimelor locale

113

2.4.4. Ruperea simetriei şi iniţializarea ponderilor

114

2.5 Reţele neuronale artificiale recurente. Reţele Hopfield

115

2.6 Reţele cu funcţii de transfer radiale

116

2.6.1. Funcţii radiale şi problema interpolării

116

2.6.2. Arhitectura reţelelor RBF

116

2.6.3. Instruirea reţelelor neuronale radiale

117

2.6.4. Determinarea separată a parametrilor

118

3. Reţele neuronale nesupervizate utilizate pentru refacerea imaginilor degradate

121

4. Aplicaţii ale reţelelor neuronale

127

4.1 Aplicaţii ale reţelelor feedforward pentru eliminarea zgomotelor

127

4.2 Aplicaţii ale reţelelor neuronale Elman pentru eliminarea zgomotelor

143

4.3 Aplicaţii ale reţelelor neuronale Hopfield pentru eliminarea zgomotelor

156

4.4 Aplicaţii ale reţelelor RBF pentru eliminarea zgomotelor

157

5. Concluzii

159

6. Bibliografie

160

I. PRELUCRAREA NUMERICĂ A IMAGINILOR

1. Imagini digitale

De obicei, cuvântul „imagine” se referă la reproducerea sau reprezentarea realităţii înconjurătoare. O importanţă deosebită o are mecanismul fizic prin intermediul căruia se realizează reproducerea sau reprezentarea. Prin „imagine” se poate înţelege şi reprezentarea plastică (desen, schiţă, schemă, fotografie) a lumii înconjurătoare, dar din punctul de vedere al televiziunii, imaginea reprezintă distribuţia valorilor unei anumite mărimi, care să redea cu o anumită fidelitate caracteristicile spaţiale şi de radiaţie ale obiectelor.

1.1 Reprezentarea imaginilor digitale

La început, imaginile sunt semnale, dar nu funcţii temporale, ci funcţii definite pe un domeniu spaţial. Orice imagine este o structură bidimensională (tablou, matrice) de date. Un element al imagini se numeşte pixel (cuvânt preluat din engleza, unde provine de la picture element). Aceste

După

tipul datelor din acesta structură bidimensională, imaginile prelucrate pot fi împărţite în mai multe

categorii:

imagini scalare, în care fiecare componentă este un scalar (un unic număr); ca exemple de astfel de imagini se pot da imaginile monocrome (în care punctele au doar două valori posibile, ce corespund unui conţinut binar al imaginii, în general alb-negru) şi imaginile cu nivele de gri (de tipul imaginii de luminanţă de pe ecranele televizoarelor alb-negru).

imagini vectoriale, în care fiecare componentă 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ă ale oricărei culori); în general, pentru imaginile multicomponentă, vectorul asociat fiecărui punct din imagine are mai multe elemente (caz ce corespunde imaginilor preluate în mai multe benzi de frecvenţă, aşa cum sunt imaginile de teledetecţie ale sateliţilor, imaginile de

termodetecţie în benzile de infraroşu,

imaginile stereo (o pereche de imagini ale aceleiaşi scene, luate din unghiuri diferite) şi secvenţele

de imagini.

După natura lor, imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile şi imagini vizibile. Imaginile abstracte sau modelele sunt de fapt funcţii matematice, continue sau discrete, de doua variabile. Imaginile non-vizibile, care, evident, nu pot fi percepute în mod direct de ochiul uman, sunt de fapt achiziţii ale unor câmpuri bidimensionale de parametri fizici (presiune,

În fine, imaginile ce pot fi percepute în mod direct de către ochiul uman

(deci imaginile vizibile) sunt la rândul lor imagini optice, generate ca distribuţii de intensitate luminoasă (aşa ca hologramele, imaginile de interferenţă şi difracţie) sau imagini propriu-zise (de luminanţă - în sensul curent al termenului, ce se referă la fotografii, desene, picturi, schiţe, scheme

şi altele din aceeaşi categorie).

O altă împărţire a imaginilor scalare se poate face după semnificaţia ce se dă valorii numerice a pixelilor. Vom distinge astfel imagini de intensitate şi imagini indexate. O imagine de intensitate este o imagine în care valoarea fiecărui pixel este o măsură directă a intensităţii luminoase sau a mărimii 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 (depinzând dacă imaginea este sau nu cuantizată).

temperatură, densitate,

Tot în categoria imaginilor vectoriale intră însă şi

date pot fi numere naturale, reale sau complexe, reprezentate însă pe un număr finit de

).

).

O imagine indexată este acea imagine în care valoarea fiecărui pixel este un indice prin care se regăseşte informaţia de culoare asociată pixelului respectiv. Deci, pentru afişarea sau reprezentarea unei imagini indexate este necesară o informaţie suplimentară, de asociere între indici şi culori. Această asociere se face prin intermediul tabelei de culoare. Tabela de culoare este o matrice în care fiecare linie conţine descrierea unei culori (deci cele trei componente ce definesc

culoarea - în mod tipic intensităţile relative de roşu, verde şi albastru ce compun culoarea dată printr-un amestec aditiv). Deci tabela de culoare are trei coloane; numărul de linii al tabelei de

culoare este egal cu numărul de culori din imaginea reprezentată şi este în mod tipic o putere a lui

Indicele (valoarea pixelului) va fi numărul de ordine al liniei din tabela de culoare

pe care se găseşte descrierea culorii. Este evident că valorile pixelilor unei imagini indexate nu pot

fi decât numere naturale (deoarece sunt indici într-o matrice).

Fiecare pixel ce aparţine unei imagini, care este reţinută într-un calculator, are o anumită valoare ce descrie strălucirea pixelului şi/sau ce culoare ar trebui să aibă. În funcţie de valorile pe care le au pixelii putem diferenţia mai multe tipuri de imagini, dintre acestea amintim imaginile binare, imaginile gri şi imaginile color.

doi (16, 256,

).

Imagini binare Imaginile binare sunt imaginile ale căror pixeli au doar două valori de intensitate posibile. Sunt de obicei reprezentate în alb şi negru. Numeric, cele două valori sunt 0 pentru negru şi 1 sau 255 pentru alb. Acestea se obţin cel mai des prin prăguirea imaginilor color sau a imaginilor în gri, şi se folosesc pentru a separa un obiect de fundal.

Imagini gri

O imagine pe o scară gri (cu nivele de gri) este o simplă imagine în care singurele culori

folosite sunt umbre de gri. Motivul pentru care s-a realizat diferenţierea acestor imagini de alte categorii de imagini color este acela că, trebuie să fie reţinută mai puţină informaţie pentru fiecare pixel din imaginea originală. De fapt, o culoare gri este acea culoare în care componentele de culoare roşie, verde şi albastră au aceeaşi intensitate în spaţiul RGB aşa că, este nevoie să se specifice o singură valoare a intensităţii pentru fiecare pixel, în opoziţie cu cele trei intensităţi necesare a fi specificate pentru fiecare pixel dintr-o imagine color. Adesea, scala de gri este reprezentată ca fiind un întreg pe 8 biţi, dând 256 de umbre posibile ale griului, de la negru la alb. Dacă nivelele sunt uniform despărţite, atunci diferenţa dintre două nivele de gri succesive este semnificativ mai bună decât cea realizată de ochiul uman. Imaginile gri sunt foarte comune, în mare parte poate pentru că instrumentele de reprezentare şi captură hardware a imaginii pot suporta, în cele mai multe cazuri, numai imagini pe 8 biţi. Oricum imaginile gri sunt mai mult decât suficiente pentru multe aplicaţii, aşa că, nu este nevoie să se folosească imagini mult mai grele şi complicate pentru procesare, cum sunt imaginile color.

Imagini color Este posibil să se creeze (aproape) toate culorile vizibile prin combinarea a trei culori primare roşu, verde şi albastru. Aceasta se întâmplă datorită faptului că ochiul uman are doar trei receptori de culoare diferiţi, fiecare dintre ei fiind sensibil la una dintre aceste culori. Diferitele combinaţii realizate pentru stimularea acestor receptori au arătat că ochiul uman distinge aproximativ 350000 de culori. O imagine color RGB este o imagine multi-spectrală cu câte o bandă pentru fiecare culoare primară, aceasta determinând producerea unei infinităţi de combinaţii a celor trei culori, pentru fiecare pixel.

O imagine RGB cere ca pentru fiecare pixel să fie specificată intensitatea a trei componente

de culoare (roşie, verde şi albastră). De obicei fiecare componentă de intensitate este stocată pe 8 biţi întregi, aşa că fiecare pixel necesită 24 de biţi pentru a se putea specifica complet şi exact culoarea. Aceste imagini sunt cunoscute ca fiind imagini color pe 24 de biţi (24-bit color images). Folosirea a 24 de biţi pentru a reţine informaţia color permite reprezentarea a 2 24 =16777216 de culori, şi acest lucru este suficient pentru a acoperi foarte bine întregul spectru de percepţie a culorilor de către om. Sunt însă multe dezavantaje în folosirea imaginilor color pe 24 de biţi. Poate cel mai important este faptul că aceste imagini cer de trei ori mai multă memorie, mai mult spaţiu pe disc şi timpul de procesare este mult mai mare. De exemplu, o imagine pe 24 biţi de 512X512 necesită pentru memorare 750 Kb în formă necomprimată.

Din cauza acestor dezavantaje, multe imagini folosesc o hartă de colorare pe 8 biţi pentru a restricţiona numărul de culori la 256. Folosind această metodă este necesar să stochezi un singur index pe 8 biţi pentru fiecare pixel, nu pe 24 biţi. Formatul imaginilor pe 8 biţi conţine 2 părţi: o hartă de colorare care descrie ce culori sunt prezente în imagine şi un şir cu valorile indecşilor pentru fiecare pixel din imagine. Când o imagine pe 24 biţi este transformată într-o imagine pe 8 biţi este necesar să se elimine unele culori, având loc un proces numit cuantizare. Acest lucru duce la unele degradări calitative ale imaginii, dar, în practică, efectele observate pot fi foarte mici şi, oricum, aceste degradări sunt inevitabile dacă perifericul folosit (ecran sau imprimantă) este capabil să folosească numai 256 de culori.

Imagini multi-spectrale Imaginile multi-spectrale pot conţine chiar şi mai mult de trei componente pentru fiecare pixel şi, prin extindere, acestea sunt reţinute într-un vector pentru fiecare valoare a unui pixel, sau în planuri separate de culori. O imagine multi-spectrală este o colecţie de mai multe imagini monocrome a aceleiaşi scheme, fiecare dintre ele fiind luată cu un diferit senzor. Fiecare imagine este considerată a fi o bandă. O binecunoscută imagine multi-spectrală (sau imagine bandă) este imaginea color RGB, care conţine o imagine roşie, una verde şi una albastră. Fiecare dintre aceste imagini este luată cu ajutorul unui senzor sensibil la o anumită lungime de undă. În procesarea imaginilor, imaginile multi-spectrale sunt cel mai des folosite pentru aplicaţiile de teledetecţie. Sateliţii de obicei iau câteva imagini din banda de frecvenţă în spectru vizual şi non-vizual. De exemplu, Landsat 5 produce 7 imagini bandă cu lungimea de undă cuprinsă între 450 şi 1250 nm.

1.2 Imaginea digitală – semnal bidimensional

Imaginea formată în planul focal al unui sistem optic cu lentile poate fi descrisă prin funcţii depinzând de coordonatele în plan (carteziene, polare) şi de timp. În cele ce urmează se presupune că imaginile sunt staţionare pe durata achiziţiei. Cu această ipoteză se defineşte funcţia nivel de gri G ca fiind legea ce asociază unui punct (x,y) din domeniul de definiţie D (de regulă interiorul unui dreptunghi D din planul 2 ) un număr corespunzător strălucirii (luminanţei) din acel punct:

G:D→ℜ.

(1.1)

Valoarea G(x,y) se numeşte nivel de gri în punctul (x,y). Dacă se dispune de un senzor vizual, atunci se poate considera că G asociază punctului un număr care corespunde tensiunii la ieşirea senzorului, când el detectează strălucirea din punctul respectiv. Semnalul provenit de la senzorul vizual poate fi eşantionat spaţial (în plan) şi cuantizat (în nivel). În acest fel se obţine imaginea numerică caracterizată prin funcţia G (având semnificaţia de

mai sus): G : M 1 M 2 sau G : M 1 →ℜ.Unde s-a notat: M 1 N, M 2 N, în care N reprezintă

2 -1}. Perechea de numere

mulţimea numerelor naturale, iar M 1 ={0,1,

(n 1 ,n 2 )= n 1 xn 2 se numeşte dimensiunea imaginii. Datorită dezvoltării puternice a tehnicilor numerice de calcul un interes deosebit îl prezintă imaginile numerice. Dacă se notează cu x şi y paşii de eşantionare spaţială (pe orizontală respectiv pe verticală), atunci n 1 x=a şi n 2 y=b, unde constantele a şi b reprezintă laturile dreptunghiului D din relaţia (1.1). Un element de imagine (pixel) este un triplet:

,n

1 -1} şi M 2 ={0,1,

,n

E i,j,G ={i,j,G(i,j)}, iM 1 , jM 2 .

(1.2)

O imagine numerică este o mulţime finită de elemente de imagine iM 1 , jM 2 , mulţimile M 1 şi M 2 fiind definite mai sus. Imaginea numerică se poate caracteriza prin matricea de dimensiune n 1 xn 2 :

[

G ] =

G

G ( n

G

(0,0)

(1,0)

1,0)

1

G

G

(0,1)

(1,1)

G

G

(0,

(1,

G ( n

1

n

2

n

2

1,

n

2

1)

1)

1)

.

(1.3)

Originea imaginii se ia colţul din stânga sus. Atunci când se doreşte aplicarea unor tehnici monodimensionale de prelucrare sau de transmitere a semnalelor, matricea G poate fi transformată în vector prin aranjarea în stivă a coloanelor sale (analog se poate proceda pentru aranjare în stivă a liniilor) prin aşezare în ordine una după alta. În general, pentru prelucrarea imaginilor în vederea analizei şi interpretării se utilizează tehnici specifice bidimensionale, iar pentru transmiterea imaginilor se utilizează tehnici monodimensionale. La o privire generală există multe similitudini între procesarea semnalelor bidimensionale (2D) şi a celor unidimensionale. În cazul semnalelor 1D vorbim despre filtrare, transformare Fourier, transformare Fourier Discretă, transformare Fourier rapidă. Când vorbim despre procesarea semnalelor 2D ne gândim la aceleaşi operaţiuni, doar că se realizează pe două direcţii. Deci, conceptele generale folosite în 2D pot fi văzute în multe cazuri ca extensii directe ale rezultatelor din procesarea semnalelor 1D. La o privire mai atentă apar unele deosebiri astfel:

- cantitatea datelor manipulate în cazul semnalelor 2D este mult mai mare decât în cazul semnalelor 1D. De aceea în acest caz contează foarte mult eficienţa de calcul a algoritmilor de procesare ca şi noile realizări în tehnica hard. -o a doua diferenţă rezidă din faptul că procedeele matematice de calcul sunt mai puţin dezvoltate pentru procesarea semnalelor 2D decât pentru cele 1D. De exemplu, multe sisteme 1D sunt descrise cu ajutorul ecuaţiilor diferenţiale, în timp ce multe sisteme 2D pot fi descrise prin ecuaţii diferenţiale parţiale despre care se cunoaşte mai puţin. Pentru ca funcţia imagine f(x,y) să poată fi prelucrată cu ajutorul calculatorului, trebuie să fie digitizată atât în spaţiu cât şi în amplitudine. Digitizarea în domeniul coordonatelor spaţiale (x,y) este numită eşantionarea imaginii, iar digitizarea amplitudinii se numeşte cuantizarea nivelului de gri.

Să presupunem că o imagine continuă f(x,y) este aproximată printr-o reţea rectangulară de dimensiune NXN, eşantioane dispuse la distanţe egale unele de altele aşa cum se arată în ecuaţia de mai jos, în care fiecare element din tabloul 2D este o mărime discretă:

f

(,) xy =

f

f

.

(

(

,

,

10

00

)

)

f

f

(

01

,

)

(

,

11

)

,

fN ( 0

fN ( 1

,

1

1

)

)

(1.4)

 

.

fN

(

10 ,

)

(

fN

11 ,

)

(

fN

−− 1 , N

1

)

Membrul drept al ecuaţiei de mai sus reprezintă o imagine digitală în care fiecare element al tabloului este denumit element de imagine sau pixel. Procesul de digitizare de mai sus necesită luarea unei decizii privind mărimea lui N, ca şi asupra numărului de nivele discrete de gri alocate fiecărui pixel. De obicei, se iau aceste cantităţi ca puteri întregi ale lui doi, lucru care aduce unele simplificări în operaţiunea de procesare digitală a imaginii: N=2 n , iar G=2 m , unde cu G am notat nivelul de gri. Dacă se dispune de un senzor vizual, atunci se poate considera că G asociază punctului un număr care corespunde tensiunii obţinute la ieşirea senzorului, când el măsoară strălucirea din punctul respectiv. Dacă notăm cu b numărul biţilor necesari pentru a memora o imagine digitală, în funcţie de mărimea imaginii (N) şi numărul nivelelor de gri (G) rezultă: b=N*N*m (biţi).

Apare în acest moment ca firească întrebarea referitoare la cât de mulţi pixeli şi cât de multe nivele de gri trebuie să se folosească în procesul de digitizare a unei imagini. Rezoluţia unei imagini, adică gradul de sesizare a detaliilor acesteia depinde puternic de N şi m. Cu cât N şi m sunt mai mari, cu atât imaginea digitală va aproxima mai bine originalul. Dar, din păcate, se observă că necesarul de memorie şi în consecinţă şi timpul de procesare cresc rapid cu creşterea lui N şi m. Este interesant de analizat efectul pe care îl au asupra calităţii imaginii modificările lui N şi m. Este însă greu să definim o imagine “bună” deoarece cerinţele de calitate diferă în funcţie de aplicaţia avută în vedere. În funcţie de N imaginile se pot clasifica în 3 categorii:

a) Imagini cu rezoluţie scăzută

Acestea sunt imagini de 256x256. Este rezoluţia spaţială minimă care furnizează imagini de

o calitate acceptabilă. Se folosesc pentru prelucrarea imaginilor preluate în infraroşu, tomografii, radiografii, imagini pentru testarea unor algoritmi.

b) Imagini cu rezoluţie medie

Acestea sunt imagini de 512x512 pixeli, comparabile cu calitatea imaginilor de televiziune.

Se folosesc în activităţi de supraveghere, recunoaştere a ţintelor, etc.

c) Imagini de mare rezoluţie

În această categorie putem aminti imaginile furnizate de sateliţi pentru cercetarea resurselor sau alte scopuri, eşantionate la 3000x4000 pixeli, imaginile sintetizate pe calculator pentru film

cinematografic de 35mm sau 70 mm eşantionate la 8000x8000 pixeli. Dacă numărul punctelor de eşantionare se micşorează, atunci la refacerea imaginii analogice

din imaginea digitală, pentru a fi afişată pe ecran, apare un efect perturbator de tip “tablă de şah”. Numărul de eşantioane şi de nivele de gri necesar pentru a realiza o reproducere corespunzătoare a unei imagini depinde de tipul imaginii, adică de conţinutul acesteia în detalii. De exemplu, un portret este mai sărac în detalii decât o imagine care reprezintă tribunele unui stadion. Dacă numărul nivelelor de gri scade sub 64, apare un fenomen supărător de “contururi false”, fenomen mult mai accentuat pe măsură ce numărul nivelelor de gri scade. Fie două imagini cu acelaşi număr de pixeli, una cu detalii multe, iar alta cu detalii puţine. Pentru aceiaşi calitate a imaginilor numărul nivelelor de gri în imaginea cu detalii mai multe poate

fi mai mic decât în imaginea cu detalii mai puţine. Acest lucru se datorează faptului că ochiul este

mai puţin sensibil în aprecierea nuanţelor de gri în zonele cu modificări abrupte ale nivelului de gri. Din această cauză efectul de “contur fals” este întâlnit mai frecvent în imaginile cu detalii puţine. În unele cazuri, mai ales în prelucrarea optică a imaginilor, este convenabil ca imaginea să

fie reprezentată în alt domeniu decât cel iniţial (spaţial) şi anume într-un domeniu obţinut prin transformare ortogonală bidimensională de tip sinusoidal (Fourier). Fie D=R 2 si G:R 2 ->R funcţia nivel de gri. Presupunând că sunt îndeplinite condiţiile:

∞ ∞

1. ∫∫ G (,) x y −∞ −∞
1. ∫∫
G
(,)
x
y
−∞ −∞

dxdy <∞

;

(1.5)

2. G are un număr finit de discontinuităţi şi un număr finit de maxime şi minime în orice dreptunghi finit, se defineşte Transformata Fourier,

=

1

4

π

∞ ∞

∫∫

−∞ −∞

( u , v

)

= ℑ { G

∞ ∞

∫∫

−∞ −∞

(

x

,

y

)}

G(x, y) exp[j2

G(x, y) =

(u, v) exp[ j2π (ux + vy)]dudv

π

(ux + vy)]dxdy

(1.6)

(1.7)

Coordonatele x şi y se numesc coordonate spaţiale. Pentru u şi v constante, considerând funcţiile cos 2π(ux+vy), sin2π(ux+vy), în planul (x,y) se obţin drepte echidistante, paralele, pe care funcţiile respective iau valori constante. Pentru calculul Transformatei Fourier discrete bidimensionale se procedează în modul următor:

a) Liniile matricei iniţiale se înlocuiesc cu transformatele Fourier discrete ale lor (monodimensionale).

b) În noua matrice se înlocuiesc coloanele cu transformatele Fourier discrete ale lor. Matricea rezultată este Transformata Fourier Discretă a matricei iniţiale. În reprezentarea Fourier a imaginilor, matricea [G] este înlocuită cu matricea [], de aceeaşi dimensiune, care, în anumite condiţii, poate oferi facilităţi de calcul sau de transmisie.

2. Achiziţia şi conversia analog – numerică a imaginilor

2.1 Achiziţia imaginilor

Indiferent de domeniul de aplicaţie, utilizarea calculatoarelor impune un format numeric pentru informaţia prelucrată. Vederea artificială respectă această regulă şi lucrează cu imagini numerice. Pentru a obţine imaginea numerică (digital image) este nevoie de două elemente:

senzorul şi convertorul (digitizer). Senzorul este un element fizic care percepe o radiaţie electromagnetică într-o anumită bandă de frecvenţă (ultraviolete, infraroşu, vizibilă, raze X). Ieşirea senzorului este o mărime electrică, în general o tensiune, proporţională cu energia radiaţiei electromagnetice primită de senzor. În funcţie de aplicaţie, banda de frecvenţă şi senzorul aferent sunt diferite. Convertorul este un dispozitiv electronic care primeşte mărimea electrică furnizată de senzor şi o transformă într-un format numeric. Pentru aplicaţiile de vedere artificială, cel mai frecvent, senzorii sunt identificaţi cu numele generic de camere de luat vederi. Datorită acestui lucru prima etapă în procesul de prelucrare a imaginilor îl constituie achiziţia.

Cele mai cunoscute camere de luat vederi au fost, în ordinea apariţiei şi utilizării istorice, camerele vidicon şi camerele matriceale (solid state). Lumina este focalizată pe suprafaţa senzorului prin intermediul unui sistem de lentile la nivelul căruia are loc o transformare optică care depinde de natura şi caracteristicile lentilei, respectiv ale luminii şi sursei de lumină. O condiţie pentru obţinerea unei imagini ideale este ca planul de focalizare să coincidă cu planul senzorului. Funcţionarea camerelor video cu vidicon se bazează pe principiul fotoconductibilităţii: o imagine focalizată pe suprafaţa tubului produce un relief de conductibilităţi proporţional cu distribuţia de străluciri din imaginea optică. Un fascicul de electroni focalizat pe suprafaţa posterioară a ţintei fotosensibile a tubului explorează punct cu punct această suprafaţă şi prin neutralizarea sarcinilor electrice, creează o diferenţă de potenţial care produce pe un electrod colector un curent proporţional cu relieful de străluciri de pe faţa anterioară a ţintei. Imaginea digitală este obţinută prin eşantionarea şi cuantizarea acestui semnal.

Camerele matriceale sunt formate din elemente fotosensibile, senzori individuali. Fiecare element fotosensibil poate fi privit ca o capacitate individuală care acumulează o sarcină mai mare sau mai mică în funcţie de intensitatea luminoasă primită. Citirea sarcinilor nu se poate face în acelaşi timp pentru toate elementele (este evident că nu putem avea practic, din punct de vedere tehnologic, un circuit electronic cu sute de mii sau milioane de pini) şi ca urmare un proces de baleiere rămâne necesar. Aici, baleierea este de fapt un transfer al sarcinilor către dispozitivul care face efectiv citirea. Rezultatul va fi tot o mărime electrică variabilă în timp u(t).

Dispozitivele videocaptoare integrate sunt compuse din elemente semiconductoare discrete, numite fotocapacităţi MOS, care dau la ieşire un potenţial proporţional cu intensitatea luminii incidente. Există două tipuri de asemenea dispozitive: liniare şi matriciale. Un senzor liniar constă dintr-un şir de asemenea fotocapacităţi semiconductoare şi poate produce o imagine bidimensională prin mişcarea relativă între scenă şi detector. Un senzor matricial este compus dintr-o matrice de fotocapacităţi MOS şi poate capta o imagine într-un mod similar unui tub videocaptor. Tehnologia utilizată în dispozitivele

videocaptoare integrate se bazează pe circuitele cu transfer de sarcină (CCD –„charge coupled devices”). Senzorii CCD captează lumina în mici fotocelule şi şi-au primit numele de la modul în care sarcinile sunt citite după expunere. Pentru aceasta, mai întâi sarcinile din prima linie sunt transferate într-un registru de citire. De acolo, semnalele sunt preluate de un amplificator şi ulterior de un convertor analog – numeric. După ce o linie a fost citită, sarcinile ei din registrul de citire sunt şterse. Următoarea linie va fi transferată în registrul de citire, iar toate liniile sunt transferate cu o linie mai jos. Sarcinile din fiecare linie sunt cuplate astfel încât la fiecare transfer din linia curentă în linia următoarea are loc şi un transfer din linia precedentă în linia curentă. În acest mod se poate citi o linie întreagă la un moment dat.

2.2 Conversia analog – numerică a imaginilor

Pentru a putea fi utilizată de către dispozitivele de calcul, informaţia analogică despre imagine, obţinută la ieşirea senzorului vizual, trebuie convertită într-o reprezentare numerică. Presupunând imaginea staţionară pe durata achiziţiei, ea comportă două aspecte principale:

a) Suprafaţa imaginii să fie eşantionată (spaţial) în n 1 ,n 2 puncte (n 1 linii si n 2 coloane); aceasta este automat realizată, prin construcţie, în cazul senzorilor vizuali CCD; b) Semnalul electric ce reprezintă iluminarea în punctul imaginii(i,j), să fie cuantificat cu un număr de biţi reprezentând 2 k nivele de gri. Pentru digitizare, imaginea se eşantionează cu ajutorul unei reţele discrete, iar fiecare eşantion (sau pixel) este cuantizat folosind un număr finit de biţi. Pentru afişare, imaginea digitală se converteşte din nou în forma analogică. O metodă simplă de eşantionare este explorarea (scanarea) imaginii, linie după linie, şi eşantionarea fiecărei linii. De exemplu, camera video cu tub vidicon sau având un dispozitiv videocaptor de tip CCD, face o asemenea scanare a imaginii chiar în procesul de captare. Alte tipuri de imagini, cum ar fi filmele sau paginile tipărite, se scanează în mod analog, cu ajutorul unor echipamente numite scanere. Eşantionarea poate fi uşor înţeleasă dacă se ştie că transformata Fourier a unei funcţii eşantionate este duplicatul scalat, respectiv periodic, al transformatei Fourier a funcţiei originale. Pentru a demonstra aceasta, se va considera o imagine eşantionată ideal, care se reprezintă ca un tablou bidimensional de funcţii Dirac delta, situate pe o reţea dreptunghiulară cu pasul x,y definită de:

g

p

(,;∆∆,

xy

x

y

) =

∞ ∞

∑∑ δ

m

=−∞

n =−∞

( −−∆ ,

x

m

xy

n

y

)

(2.1)

Imaginea eşantionată este definită prin următoarea ecuaţie:

f

s

=

f

(,)

xyg

p

xy

(,;

∆∆

x

,

y

)

=

∑∑

f

m , n = −∞

(

m

xn

,

δ

y

)(

x

−−

m

xy

,

n

y

)

(2.2)

Din proprietatea de unicitate a transformatei Fourier se ştie că, dacă spectrul imaginii originale se poate reface folosind spectrul imaginii eşantionate, atunci vom putea obţine şi imaginea interpolată pe baza imaginii eşantionate. Dacă frecvenţele de eşantionare pe cele două axe, x şi y, sunt de două ori mai mari decât lărgimea de bandă, respectiv dacă: ξ xs >2ξ x0 , ξ ys >2ξ y0 ,sau dacă intervalele de eşantionare sunt mai mici decât jumătate din 1/l (1/lărgimea de bandă) corespunzătoare, x<1/2ξ x0 , y<1/2ξ y0 atunci F(ξ 1 ,ξ 2 ) poate fi refăcută printr-o filtrare trece jos cu caracteristica de frecvenţă:

H (,

1

ξ ξ

2

) =

1

ξξ

(

xs

ys

0 ,

)

,

pentru (ξ 1 ξ 2 )∈ℜ, unde este orice regiune.

(2.3)

Sunt trei factori care limitează rezoluţia efectivă a imaginii şi fidelitate imaginilor numerice:

- Frecvenţa de eşantionare a senzorului.

- Lăţimea de bandă a semnalului video.

- Frecvenţa de eşantionare a convertorului analog-numeric.

Pentru a se afla cât de mică trebuie sa fie zona de eşantionare pentru a se putea lucra cu

varianta discretizată a imaginii, cu imaginea numerică în loc de imaginea continuă, analogică se apelează la teorema lui Shannon. Teorema de eşantionare a lui Shannon stipulează, în esenţă, că dacă un semnal de bandă limitată B [Hz] trebuie eşantionat, atunci frecvenţa utilizată în acest proces trebuie să fie mai mare sau egală cu dublul frecvenţei de tăiere. Pasul ulterior eşantionării, în digitizarea imaginilor, este cuantizarea, codificarea numerică a valorii funcţiei de gri, pentru fiecare pixel . Un cuantizor face corespondenţa dintre o variabilă

continuă u şi o variabilă discretă u’ care ia valori dintr-un set finit de numere {r 1 ,

alocare se face în general cu o funcţie scară şi regula este următoarea: se defineşte {t k ; k=1, ,L+1} un set de tranziţii crescătoare sau nivele de decizie, unde t 1 si t L+1 sunt valoarea minimă şi, respectiv, maximă a lui u. Dacă u este în intervalul [t k , t k+1 ), atunci i se alocă nivelul r k , al k-lea nivel de reconstrucţie. Cel mai simplu şi mai uzual cuantizor este cel uniform. Considerăm ieşirea unui senzor de imagine cu valori între 0.0 si 10.0. Dacă eşantioanele sunt cuantizate uniform cu 256 de nivele, atunci nivelele de tranziţie şi de reconstrucţie sunt:

,r L }. Această

t

k =

10

(

k

1

)

256

,

k=1,

,257

(2.4)

r

k

=

t

k

+

5

256

, k=1,

,256

(2.5)

Intervalul q=t k -t k-1 =r k -r k-1 este constant pentru diferite valori ale lui k şi este numit interval de

cuantizare. Trebuie reţinut faptul că operaţia de cuantizare este ireversibilă deoarece, pentru o valoare dată de ieşire, nu se poate determina în mod unic valoarea de la intrare. Datorită acestui lucru, un cuantizor introduce distorsiuni, pe care orice metodă de proiectare trebuie să încerce să le minimizeze. Modalitatea generală de realizare a cuantizării este prezentată în continuare.Se consideră (i, j) = (ix, jy) un punct din imaginea eşantionată, g=G(i,j) şi g C =G(i,j) valoarea cuantizată a lui G(i,j). Considerând că t 1 gt Lm unde t 1 şi t m sunt limitele inferioară respectiv superioară ale domeniului de variaţie a valorii G(i,j), atunci problema cuantizării are drept scop determinarea unor niveluri de decizie d j şi a unor niveluri de reconstrucţie rj, astfel încât dacă d j gd j+1 , atunci eşantionul cuantizat să ia valoarea r j . Nivelurile de decizie şi de reconstrucţie sunt alese astfel încât să se minimizeze eroarea medie pătratică de cuantizare (între g şi g C ):

Rezultă:

2

ε =

C

ε

M { g

(

g

C

)

2

C

=


J

1

d

j

+ 1

∑ ∫

j = 0

d

j

(

g

2

}

=

r

j

)

t

m

t 1

p

(

(

g

g

g

)

dg

C

)

2

p

(

g

)

dg

(2.6)

(2.7)

J fiind numărul total de niveluri de decizie. Dacă densitatea de probabilitate p(g) este

constantă pe fiecare interval de cuantizare (d j ,d j-1 ), p(g)=p j atunci eroarea de cuantizare devine:

2

ε C

=

1

3

J

1

j = 0

p

j

[

(

d

j

+

1

r

j

)

3

(

d

j

r

j

)

3

]

(2.8)

În acest caz nivelul de reconstrucţie r j se determină din condiţia :

ε

2

C

r

j

= 0 , obţinându-se : r j =0,5(d j+1 +d j )

şi eroarea numerică:

2

ε C

=

1

12

J 1

j = 0

p

j

(

d

j

+ 1

d

j

)

3

(2.9)

(2.10)

În cazul în care numărul de nivele de cuantizare nu este suficient, devine vizibil un fenomen numit conturare. Atunci când un grup de pixeli vecini sunt cuantizaţi la aceeaşi valoare, se vor forma regiuni având un nivel de gri constant şi ale căror graniţe sunt numite contururi. Pentru majoritatea imaginilor în care pixelii reprezintă funcţia luminanţă, cuantizarea uniformă necesită aproximativ 256 nivele de gri, respectiv 8 biţi. Efectele de conturare devin vizibile la 6 biţi/pixel sau sub această valoare. Un cuantizor care minimizează eroarea medie pătratică, adaptat la histograma unei imagini date, poate lucra şi cu numai 5 sau 6 biţi/pixel, fără apariţia fenomenului de conturare. Atunci însă când histogramele imaginilor variază foarte mult, cuantizorul optimal este foarte rar folosit. În locul acestuia se utilizează frecvent cuantizorul uniform cu 8 biţi/pixel. Pentru evaluarea erorilor de cuantizare, ochiul pare a fi foarte sensibil la conturare şi la erorile care afectează structura locală. Deci, o metodă de cuantizare vizuală ar trebui să încerce să menţină conturarea datorată cuantizării sub nivelul de vizibilitate, pe întreg domeniul nivelelor de gri care se afişează.

3. Memorarea şi compresia imaginilor

După ce fotografia a fost captată, aceasta este stocată într-un format digital universal care permite să fie transferată pe calculator, imprimantă sau alt dispozitiv periferic. Există mai multe formate de memorare a imaginii dintre care putem aminti: TIFF, EPS, BMP, JPG, PNG, GIF, etc.

3.1 Stocarea imaginilor

Se poate considera că există două moduri de stocare a imaginilor: stocarea în memoria de lucru a unităţii de prelucrare a imaginii de lucru (care este o stocare de scurtă durată - doar pe durata prelucrării efective) şi stocarea de lungă durată a imaginilor, în fişiere, pe suporturi externe de memorie (benzi, discuri, etc.). Diferenţa esenţiala între cele doua tipuri de stocare este aceea ca în memorie imaginea va fi reprezentată complet, în forma necomprimată, pentru a permite accesul

Pentru stocarea imaginii este necesar ca aceşti octeţi să

rapid direct la informaţia fiecărui

conţină informaţia aferentă pixelilor precum şi informaţie despre tipul imaginii: dimensiunile acesteia, dacă este sau nu indexată, dacă are sau nu o tabelă de culoare ataşată, daca este sau nu comprimată şi după ce metodă. Anumite structuri de fişiere au fost impuse de-a lungul timpului de firme producătoare de software sau de organisme de standardizare, căpătând denumirea de formate

de imagini.

3.1.1 Stocarea imaginilor în memorie

În limbajele C şi C++ stocarea imaginilor se face prin intermediul unor variabile ce implementează structuri de date bidimensionale. Ceea ce este deosebit este modul de declarare a acestora: declararea statica nu este convenabilă din cauza dimensiunilor în general mari ale imaginilor, şi deci este necesară o declarare dinamică. Particularitatea este data de memorarea separată a fiecărei linii (sau coloane) a matricii într-un vector alocat dinamic, şi gruparea adreselor

de început a acestora într-un vector de pointeri, la care se va reţine adresa de început (deci un alt

pointer). Spre deosebire de C, limbajul Matlab aduce mari simplificări. Există un singur tip de date, reprezentate pe 8 octeţi (caracteristică ce se schimbă începând cu versiunea 5.0, ce admite valori reale, întregi sau caracter, declarate explicit). Orice variabila Matlab este creată în momentul folosirii sale în membrul stâng al unei expresii (deci nu este necesară declararea prealabilă folosirii); orice variabilă este o matrice (scalarul este o matrice de o linie şi o coloana). Funcţiile returnează matrici, iar acest lucru permite ca memorarea şi accesul la imaginile memorate să se realizeze mult mai uşor.

3.1.2 Stocarea imaginilor în fişiere

Un fişier este entitatea logică de organizare a informaţiei înscrise pe mediile magnetice de stocare şi se compune dintr-un şir de octeţi. Pentru stocarea imaginii este necesar ca aceşti octeţi să conţină informaţia aferentă pixelilor precum şi informaţie despre tipul imaginii: dimensiunile acesteia, dacă este sau nu indexată, dacă are sau nu o tabelă de culoare ataşată, dacă este sau nu comprimată şi după ce metodă. Anumite structuri de fişiere au fost impuse de-a lungul timpului de firme producătoare de software sau de organisme de standardizare, căpătând denumirea de formate

de

imagini. Formatele de imagini s-au făcut cunoscute mai ales după extensia standard a fişierelor

ce

conţin imaginile stocate după formatul respectiv: BMP, TIF, GIF, PCX, JPG

În continuare

vor fi prezentate câteva caracteristici ale acestor tipuri de fişiere, iar o atenţie deosebită va fi acordată formatului Windows Bitmap -BMP al firmei Microsoft, care este unul dintre cele mai larg recunoscute formate de fişiere.

Un fişier BMP are trei componente consecutive: un antet de fişier (BITMAPFILEHEADER),

o structura de informaţie a imaginii (BITMAPINFO) şi codarea pixelilor. Antetul de fişier

(BITMAPFILEHEADER) conţine informaţii asupra tipului, dimensiunii şi reprezentării fişierului Bitmap independent de dispozitiv (DIB - Device Independent Bitmap); semnificaţiile componentelor sunt date în tabelul 3.1.

Câmp

Descriere

bfType

Specifică tipul de fişier; trebuie să conţină caracterele BM

bfSize

Specifică lungimea fişierului în DWORD

BfReserved1

Câmp rezervat, valoare 0

BfReserved2

Câmp rezervat, valoare 0

bfOffBits

Specifică deplasamentul în octeţi de la sfârşitul structurii

 

BITMAPFILEHEADER până la zona din fişier ce conţine pixelii codaţi

Tabel 3.1: Descrierea câmpurilor structurii BITMAPFILEHEADER

Structura de informaţie a imaginii (BITMAPINFO) conţine informaţii asupra dimensiunilor şi culorilor unui DIB, şi este alcătuită din două componente: antetul structurii de informaţii (BITMAPINFOHEADER), a cărui componente sunt descrise în tabelul3.2 şi tabelul de culoare, format din structuri RGBQUAD.

Câmp

Descriere

BiSize

Numărul de octeţi ai structurii BITMAPINFOHEADER

BiWidth

Lăţimea imaginii, în pixeli

BiHeight

Înălţimea imaginii, în pixeli