Capitolul 1
-
Upload
roxanne-rox -
Category
Documents
-
view
2 -
download
0
description
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