Capitolul 1

6
Capitolul 1 INTRODUCERE Prelucrarea şi analiza imaginilor (numită adeseori prescurtat doar prelucrarea imaginilor) s-a născut datorită ideii şi necesităţii de a înlocui observatorul uman printr-o maşină. Este important de precizat că analiza imaginilor a mers mai departe decât simpla înlocuire a observatorului uman, deoarece au apărut soluţii novatoare pentru probleme cu care acesta nu mai fusese confruntat - ca în cazul imaginilor non-vizibile (imagini acustice, ultrasonore, radar). Prelucrarea imaginilor înglobează posibilitatea de a dezvolta maşina totală de viziune, capabilă să realizeze funcţiile vizuale ale oricărei vieţuitoare (desigur, după realizarea a importante dezvoltări teoretice şi tehnologice) . Trebuie remarcată terminologia anglo-saxonă (originală), în care disciplina este denumită Digital Image Processing, deci prelucrarea digitală a imaginilor. Prin prelucrarea digitală a imaginilor se înţelege prelucrarea pe un calculator digital a unor date bidimensionale (imagini). Termenul cheie este cuvântul digital, înlocuit adesea în mod eronat în multe traduceri româneşti cu termenul de numeric. După cum o arată dicţionarul limbii române moderne, definiţia cuvântului numeric este aceea de "care aparţine numerelor, privitor la numere, exprimat prin numere". Rezultatul oricărui calcul este numeric. Termenul digital înseamnă însă "ceea ce este referitor la reprezentarea informaţiei discrete în calculatoare" Deci atâta vreme cât acceptăm ideea că unealta de lucru în prelucrarea imaginilor este calculatorul, şi acesta la rândul său este digital, atunci şi prelucrarea este la rândul ei digitală, ca un caz particular al oricărei prelucrări numerice. Desigur că există însă şi prelucrări de imagini care sunt analogice - aşa cum sunt toate prelucrările ce au loc în cadrul lanţului de transmisie şi recepţie a imaginii standard de televiziune. 1.1 Imagini 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 engleză, unde provine de la picture element). Aceste date pot fi numere naturale, reale sau complexe, reprezentate însă pe un număr finit de biţi. 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,...). Tot în categoria imaginilor vectoriale intră însă şi imaginile stereo (o pereche de imagini ale aceleiaşi scene, luate din unghiuri diferite) şi secvenţele de imagini. Conform datelor prezentate în [11], dintre imaginile prelucrate în aplicaţii funcţionale, 20 % sunt alb-negru, 32 % sunt cu nivele de gri, 20 % sunt color, 10 % sunt imagini stereoscopice şi 18 % sunt secvenţe de imagini. In mod clasic, valoarea unui element al unei imagini este o măsură a intensităţii luminoase în punctul considerat; acesta nu este însă decât un caz particular. După natura lor, imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile şi imagini vizibile [2]. Imaginile abstracte sau modelele sunt de fapt funcţii [matematice], continue sau discrete, de două 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, temperatură, presiune, densitate, ...). î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). 0 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. 0 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ă). 0 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

description

prelucrarea imaginilor

Transcript of Capitolul 1

Capitolul 1

INTRODUCERE

Prelucrarea i analiza imaginilor (numit adeseori prescurtat doar prelucrarea imaginilor) s-a nscut datorit ideii i necesitii de a nlocui observatorul uman printr-o main. Este important de precizat c analiza imaginilor a mers mai departe dect simpla nlocuire a observatorului uman, deoarece au aprut soluii novatoare pentru probleme cu care acesta nu mai fusese confruntat - ca n cazul imaginilor non-vizibile (imagini acustice, ultrasonore, radar). Prelucrarea imaginilor nglobeaz posibilitatea de a dezvolta maina total de viziune, capabil s realizeze funciile vizuale ale oricrei vieuitoare (desigur, dup realizarea a importante dezvoltri teoretice i tehnologice) .

Trebuie remarcat terminologia anglo-saxon (original), n care disciplina este denumit Digital Image Processing, deci prelucrarea digital a imaginilor. Prin prelucrarea digital a imaginilor se nelege prelucrarea pe un calculator digital a unor date bidimensionale (imagini). Termenul cheie este cuvntul digital, nlocuit adesea n mod eronat n multe traduceri romneti cu termenul de numeric. Dup cum o arat dicionarul limbii romne moderne, definiia cuvntului numeric este aceea de

"care aparine numerelor, privitor la numere, exprimat prin numere".

Rezultatul oricrui calcul este numeric. Termenul digital nseamn ns

"ceea ce este referitor la reprezentarea informaiei discrete n calculatoare"

Deci atta vreme ct acceptm ideea c unealta de lucru n prelucrarea imaginilor este calculatorul, i acesta la rndul su este digital, atunci i prelucrarea este la rndul ei digital, ca un caz particular al oricrei prelucrri numerice. Desigur c exist ns i prelucrri de imagini care sunt analogice - aa cum sunt toate prelucrrile ce au loc n cadrul lanului de transmisie i recepie a imaginii standard de televiziune.

1.1 Imagini digitale

La nceput, imaginile sunt semnale, dar nu funcii temporale, ci funcii definite pe un domeniu spaial. Orice imagine este o structur bidimensional (tablou, matrice) de date. Un element al imagini se numete pixel (cuvnt preluat din englez, unde provine de la picture element). Aceste date pot fi numere naturale, reale sau complexe, reprezentate ns pe un numr finit de bii. Dup tipul datelor din acesta structur bidimensional, imaginile prelucrate pot fi mprite n mai multe categorii:

imagini scalare, n care fiecare component este un scalar (un unic numr); ca exemple de astfel de imagini se pot da imaginile monocrome (n care punctele au doar dou valori posibile, ce corespund unui coninut 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 oricrei culori); n general, pentru imaginile multicomponent, vectorul asociat fiecrui punct din imagine are mai multe elemente (caz ce corespunde imaginilor preluate n mai multe benzi de frecven, aa cum sunt imaginile de teledetecie ale sateliilor, imaginile de termodetecie n benzile de infrarou,...). Tot n categoria imaginilor vectoriale intr ns i imaginile stereo (o pereche de imagini ale aceleiai scene, luate din unghiuri diferite) i secvenele de imagini.

Conform datelor prezentate n [11], dintre imaginile prelucrate n aplicaii funcionale, 20 % sunt alb-negru, 32 % sunt cu nivele de gri, 20 % sunt color, 10 % sunt imagini stereoscopice i 18 % sunt secvene de imagini.

In mod clasic, valoarea unui element al unei imagini este o msur a intensitii luminoase n punctul considerat; acesta nu este ns dect un caz particular. Dup natura lor, imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile i imagini vizibile [2]. Imaginile abstracte sau modelele sunt de fapt funcii [matematice], continue sau discrete, de dou variabile. Imaginile non-vizibile, care, evident, nu pot fi percepute n mod direct de ochiul uman, sunt de fapt achiziii ale unor cmpuri bidimensionale de parametri fizici (presiune, temperatur, presiune, densitate, ...). n fine, imaginile ce pot fi percepute n mod direct de ctre ochiul uman (deci imaginile vizibile) sunt la rndul lor imagini optice, generate ca distribuii de intensitate luminoas (aa ca hologramele, imaginile de interferen i difracie) sau imagini propriu-zise (de luminan - n sensul curent al termenului, ce se refer la fotografii, desene, picturi, schie, scheme i altele din aceeai categorie).

0 alt mprire a imaginilor scalare se poate face dup semnificaia ce se d valorii numerice a pixelilor. Vom distinge astfel imagini de intensitate i imagini indexate. 0 imagine de intensitate este o imagine n care valoarea fiecrui pixel este o msur direct a intensitii luminoase sau a mrimii 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 imaginea este sau nu cuantizat).

0 imagine indexat este acea imagine n care valoarea fiecrui pixel este un indice prin care se regsete informaia de culoare asociat pixelului respectiv. Deci, pentru afiarea sau reprezentarea unei imagini indexate este necesar o informaie 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 conine descrierea unei culori (deci cele trei componente ce definesc culoarea - n mod tipic intensitile relative de rou, verde i albastru ce compun culoarea dat printr-un amestec aditiv). Deci tabela de culoare are trei coloane; numrul de linii al tabelei de culoare este egal cu numrul de culori din imaginea reprezentat i este n mod tipic o putere a lui doi (16, 256, ...). Indicele (valoarea pixelului) va fi numrul de ordine al liniei din tabela de culoare pe care se gsete descrierea culorii. Este evident c valorile pixelilor unei imagini indexate nu pot fi dect numere naturale (deoarece sunt indici ntr-o matrice).

Aceast tehnic este folosit i n grafica pe calculator. Afiarea imaginilor pe ecranul monitorului se face corespunztor unui anumit mod grafic, determinat din placa video a calculatorului. Un mod video definete numrul maxim de culori ce pot fi utilizate simultan i dimensiunile ecranului (n pixeli de afiaj). Culorile utilizate la un moment dat sunt grupate ntr-o paleta de culori de afiare. Paleta de afiare este o structur logic definit n BGI1 (Borland Graphics Interface), pentru programare n sesiuni de tip DOS, ca:

struct palettetype { unsigned char size; int colors[MAXCOLORS+l]; >

Modificarea unei culori din palet (o intrare a tabelului) se face cu:

void far setpalette(int index_culoare, int culoare);

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

Afiarea unui pixel cu o anumit culoare se face cu:

putpixeKint pozx, int pozy, int index_culoare);

Sub Windows, este suportat i specificarea direct a culorii de afiat (sub forma unui triplet RGB2), sistemul de operare aproximnd culoarea respectiv cu cea mai apropiat culoare disponibil din paleta de lucru curent (n acest fel, utilizatorul poate neglija existena acesteia).

Pentru o imagine cu nivele de gri, componentele de rou, verde i albastru ale fiecrei culori din paleta de culoare sunt identice. Dac specificarea componentelor de culoare se face prin numere de 8 bii (deci ntre 0 i 255, adic cazul cel mai des folosit), tabela de culoare va avea 256 de culori (tonuri de gri) diferite. Specificarea acestora se va face cu indeci ntre 0 i 255, alocai conform conveniei 0 - negru, 255 - alb. n acest fel, pentru o imagine indexat cu nivele de gri, nu mai este necesar specificarea tabelei de culoare; culorii reprezentate de indexul i i corespunde nivelul de gri i, adic tripletul RGB (i, i, i).

Modelul imagini indexate este un caz particular de folosire a tehnicii dicionar (sau tehnicii tabelului de echivalen - Look Up Table - LUT): o tehnic de regsire a unei cantiti de informaie folosind asocierea unei chei de cutare mult mai mici.

1.2 Structura unui sistem de prelucrarea i analiza imaginilor

Structura tipic a unui sistem de prelucrarea (evident digital) i analiza imaginilor este alctuit din punct de vedere; funcional dintr-un numr mic de blocuri (vezi figura 1.1):

sistemul de formare a imaginii (de exemplu sistemul de lentile al camerelor de luat vederi): strnge radiaia electromagnetic a obiectului studiat pentru a forma imaginea trsturilor de interes

convertorul de radiie: convertete radiaia electromagnetic din planul imaginii ntr-un semnal electric.

Sistemul de formare a imaginii i convertorul de radiaie formeaz senzorul; acesta realizeaz o proiecie plan (bidimensional) a scenei reale (care este n general tridimensional). Un studiu realizat n Germania n anul 1996 [11] prin inventarierea sistemelor de

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

Fig. 1.1: Schema general a unui sistem de analiza i prelucrarea imaginilor

preluare a imaginilor folosite n industrie indic o distribuie a tipurilor de senzori dup gama de radiaie captat conform tabelului 1.1:

Domeniu electromagnetic

Infrarou deprtat

Infrarou apropiat

Vizibil

Ultraviolet

Radar

(microunde)

Radiaie X '

Procent

5%

25%

40%

10%

10%

10%

Tabel 1.1: Tipuri de senzori folosii n prelucrarea imaginilor

sistemul de achiziie (echivalent unui frame-grabber sau video-blaster): convertete semnalul electric al senzorului ntr-o imagine digital, pe care o stochez; acesta nu este altceva dect un dispozitiv de eantionare (discretizare a suportului imaginii) i cuantizare (discretizare a domeniului de valori a imaginii).

sistemul de prelucrare (n mod tipic un calculator, fie el PC sau staie de lucru); n aceast categorie se ncadreaz ns i mainile specializate de calcul, calculatoarele de proces, ...

software-ui specializat: implementeaz algoritmii de prelucrare i analiz

In [11] se arat c unitatea de prelucrarea hardware (deci calculatorul) folosit la aplicaiile de prelucrarea imaginilor funcionale la acea dat este n cea mai mare majoritate a cazurilor un PC obinuit, cu performane standard; datele sunt sintetizate n tabelul 1.2:

Platform hardware

Procent din pia

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%

Staii de lucru (workstations)

10%

Maini specializate

10%

Calculatoare Macintosh, calculatoare paralele (transputere), altele

10%

Tabel 1.2: Uniti de calcul folosite n prelucrarea imaginilor

Sistemul software specializat care este responsabil cu realizarea efectiv a unei sarcini concrete poate fi descompus n mai multe module, nu neaprat bine separate i nu neaprat prezente mpreun: mbuntirea, restaurarea, compresia, segmentarea i analiza [9].

Blocul de mbuntire a imaginilor are ca scop accentuarea anumitor trsturi [ale obiectelor coninute n imagine] pentru uurarea unor sarcini ulterioare de analiz automat sau interpretare prin afiare. Asemenea metode pot fi utile la extragerea trsturilor caracteristice ale obiectelor, eliminarea zgomotelor suprapuse imaginii, mrirea confortului vizual. Aceti algoritmi nu mresc coninutul informaional al imaginii i sunt n general interactivi i puternic dependeni de aplicaie.

Restaurarea imaginilor se refer la eliminarea sau minimizarea efectelor unor perturbaii i a unor degradri. Perturbaiile reprezint n general zgomotele (modelate ca procese aleatoare) ce se suprapun n cursul achiziiei imaginii (din cauza senzorului i a lanului de transmisiune i captare); degradrile sunt cauzate de imperfeciunile i limitrile deterministe ale senzorului (efecte de apertur, timp de expunere, deficiene geometrice ale sistemului de lentile, ...).

Compresia imaginilor se refer la reducerea volumului de date (numrului de bii) cu care este reprezentat imaginea, printr-o transformare reversibil - imaginea trebuie s poat s fie recuperat integral (sau cu diferene foarte mici, controlabile) din versiunea sa comprimat.

Segmentarea este procesul de descompunere a unei imagini (sau scene) n elementele (obiectele) sale constituente. Adeseori, segmentarea este strns legat de algoritmii de analiz, al cror scop este de a realiza msurtori cantitative sau evaluri calitative asupra unor anumite categorii de obiecte, prezente n imaginea dat.

Sfera de aplicabilitate a tehnicilor de prelucrarea i analiza imaginilor este deosebit de larg; practic, n orice domeniu de activitate se pot gsi numeroase aplicaii. Aceast clas de aplicaii extrem de specifice a fost caracterizat drept "consumul imaginii" [1] (imaginea folosit n vederea analizei, deci a lurii unor decizii). Imaginile preluate de ctre satelii pot fi folosite la descoperirea resurselor terestre, cartografiere geografic, predicia recoltelor, urmrirea dezvoltrii urbane, urmrirea vremii, controlul i prevenirea incendiilor i inundaiilor, precum i alte aplicaii ecologice i militare. Aplicaiile transmisiei i compresiei imaginilor se regsesc n televiziunea digital, sistemele de teleconferin, transmisiile fax, birotic, comunicaia pe reele distribuite, sisteme de securitate cu circuit nchis, aplicaii militare. In aplicaiile medicale sunt prelucrate radiografiile cu raze X, angiogramele, echografiile. tomografiile, imaginile de rezonan magnetic nuclear. Acestea pot fi utilizate pentru monitorizarea pacienilor i pentru descoperirea i identificarea de boli i tumori.

O larg clas de aplicaii sunt cele industriale, n care componentele de prelucrarea i analiza imaginilor sunt folosire n sisteme mai mari de asigurare a calitii produselor (metrologie, controlul calitii - inclusiv defectoscopie nedistructiv). Soluiile sunt extrem de specifice, puternic legate de procesul de fabricaie urmrit i tind s devin din ce n ce mai utilizate odat cu impunerea normelor de "calitate total" ale standardului ISO9000 (se poate urmri [10] pentru aplicaii specifice ale diferitelor firme germane). Din acest punct de vedere este interesant comparaia ntre cteva caracteristici ale sistemului vizual i de prelucrare uman i un sistem de prelucrarea i analiza imaginilor [8], folosite pentru aplicaii industriale, prezentat n tabelul 1.3.

Criterii

Om

Sistem de prelucrarea imaginilor

Obiectivitate

NU

DA

Control 100%

NU

DA

Rat de eroare

MARE

MICA

Rat de lucru

MICA

MARE

Rezisten la oboseal

MICA

MARE

Iluzie optic

DA

NU

Prelucrare statistic

Greu realizabil

DA

Reproductibilitate

Greu realizabil

DA

Msurare geometric

Cu instrumente auxiliare

DA

Recunoatere de forme

DA

DA

Tabel 1.3: Comparaia ntre caracteristici eseniale ale sistemului vizual uman i sistemele de prelucrarea i analiza imaginilor

1.3 Stocarea imaginilor

Se poate considera c exist dou moduri de stocare a imaginilor: stocarea n memoria de lucru a unitii de prelucrare a imaginii de lucru (care este o stocare de scurt durat - doar pe durata prelucrrii efective) i stocarea de lung durat imaginilor, n fiiere, pe suporturi externe de memorie (benzi, discuri, etc). Diferena esenial ntre cele dou tipuri de stocare este aceea c n memorie imaginea va fi reprezentat complet, n form necomprimat, pentru a permite accesul rapid direct la informaia fiecrui pixel.

1.3.1 Stocarea imaginilor n memorie

Principalul limbaj de programare utilizat pentru aplicaii cu calcule intensive rmne nc limbajul C (C++). Stocarea imaginilor se va face, evident, prin intermediul unor variabile ce implementeaz structuri de date bidimensionale. Ceea ce este deosebit este modul de declarare a acestora: declararea static nu este convenabil din cauza dimensiunilor n general mari ale imaginilor, i deci este necesar o declarare dinamic. Particularitatea este dat de memorarea separat a fiecrei 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 reine adresa de nceput (deci un alt pointer). Dac considerm un tip generic de date pentru componentele1 matricii (caracter, sau ntreg, sau real), atunci o secven C de declarare a unui imagini poate fi:

tip ** imagine;

unsigned int contor;

imagine=(tip**) malloc(nr_linii*sizeof(tip*));

for (contor=0;contor