Sunteți pe pagina 1din 21

Capitolul 1

INTRODUCERE N PRELUCRAREA IMAGINILOR

1.1 ISTORIC
Una dintre primele aplicaii ale tehnicilor de prelucrare a imaginilor a fost mbuntirea transmisiei imaginilor de ziar n form digital, prin intermediul cablului submarin, ntre Londra i New York. Introducerea sistemului Bartlane de transmisie prin cablu a imaginilor n primii ani de dup 1920 a dus la reducerea timpului de transmisie peste Atlantic de la mai mult de o sptmna la mai puin de 3 ore. Echipamente speciale de editare codau imaginea n vederea transmisiei prin cablu i apoi o reconstruiau la recepie. Primele sisteme de transmisie Bartlane erau capabile s codeze imagini avnd 5 nivele distincte de strlucire; n 1929, numrul acestora a crescut la 15. mbuntirea metodelor de prelucrare n vederea transmisiei de imagini au continuat n urmtorii 35 de ani. Cu toate acestea, a fost necesar folosirea capabilitilor oferite de calculatoarele numerice i de programele spaiale pentru a aduce n prim-plan potenialul conceptelor de prelucrare a imaginilor. Tehnici de mbuntire a unor imagini transmise din spaiul cosmic s-au folosit, spre exemplu, pentru corectarea diferitelor tipuri de distorsiuni ale imaginilor preluate cu o camer video de la bordul staiei spaiale Ranger 7. Asemenea tehnici au servit ca baz pentru optimizarea metodelor de restaurare i mbuntire a imaginilor recepionate de la misiunile spaiale Surveyor, Mariner i Apollo. Din 1964 pn n prezent progresele n domeniul prelucrrii imaginilor au fost impresionante. Pe lng aplicaiile n tehnica spaial, aceste tehnici se folosesc, la ora actual, ntr-o multitudine de alte aplicaii, care necesit folosirea unor metode capabile s mbunteasc informaia vizual, n vederea optimizrii analizei i interpretrii de ctre observatorul uman. n medicin, spre exemplu, metodele computerizate de
1

Cap.1

Introducere

\n

prelucrarea

imaginilor

prelucrare fac posibil mbuntirea contrastului sau codarea intensitilor (nivelelor de gri) imaginilor monocrome n culori, pentru uurarea interpretrii radiografiilor sau a altor tipuri de imagini biomedicale. Tehnici de mbuntire similare se folosesc i pentru studiul polurii cu ajutorul imaginilor aeriene sau preluate de la satelii. Metode de mbuntire i restaurare se folosesc i pentru prelucrarea imaginilor degradate ale unor obiecte irecuperabile (tablouri, spre exemplu) sau n experimente prea costisitoare pentru a fi repetate. n fizic a devenit obinuit folosirea calculatoarelor pentru restaurarea i mbuntirea imaginilor, n experimente din domeniul plasmei de energie nalt sau microscopiei

g 2

PRELUCRAREA

DIGITAL~

IMAGINILOR

Fig. 1.1 Exemple de prelucrri digitale de imagini

electronice. Aplicaii similare se ntlnesc n astronomie, biologie, medicin nuclear, criminalistic, aprare i, nu n ultimul rnd, n industrie. Figura 1.1. prezint cteva exemple tipice de rezultate ce se pot obine folosind tehnici de prelucrare digital. Imaginile originale sunt cele din stnga, n dreapta fiind prezentate imaginile obinute n urma prelucrrii. Figura 1.1.a prezint o imagine afectat de zgomot electronic iar figura 1.1.b prezint rezultatul reducerii zgomotului prin mediere. n figura 1.1.c o imagine cu contrast sczut este mult mai uor de interpretat dup mbuntirea de contrast (fig.1.1.d). Figura 1.1.f prezint rezultatul filtrrii unei imagini nceoate (fig.1.1.e), iar figura 1.1.h ilustreaz posibilitatea extragerii anumitor regiuni de interes dintr-o imagine tomografic (fig.1.1.g), n vederea reprezentrii tridimensionale. Exemplele prezentate ilustreaz rezultate ale prelucrrii digitale de imagini realizate n scopul mbuntirii interpretrii lor de ctre ochiul uman. Un alt domeniu major de aplicaie al tehnicilor de prelucrare a imaginilor este analiza lor cu ajutorul calculatorului. Scopul, n acest caz, este extragerea informaiei ntr-o form ct mai potrivit pentru prelucrarea pe calculator. Adesea, rezultatele analizei prezint asemnri foarte reduse cu caracteristicile obinuite ale imaginilor, indispensabile ochiului uman pentru interpretare sau nelegere. Domeniile tipice de utilizare a analizei pe calculator sunt recunoaterea caracterelor, viziunea artificial industrial, folosit pentru asamblarea i inspecia vizual a produselor, prelucrarea automat a amprentelor, analizele automate de imagini biomedicale i procesarea cu ajutorul calculatorului a imaginilor satelitare n vederea prognozelor meteo.

1.2 REPREZENTAREA IMAGINILOR DIGITALE


Termenul de imagine monocrom (imagine alb-negru) sau, simplu, imagine, se refer la funcia de intensitate bidimensional f(x,y), unde x i y reprezint coordonatele spaiale iar f este funcia proporional n fiecare punct (x,y) proporional cu strlucirea sau cu nivelul de gri al imaginii n acel punct. Figura 1.2 ilustreaz convenia de axe folosit n aceast lucrare.
Originea axelor x

f(x,y)

Fig. 1.2 Convenia axelor n reprezentarea imaginilor digitale

O imagine digital este o imagine f(x,y) care a fost discretizat att n coordonate spaiale ct i ca strlucire. Ea poate fi considerat ca o matrice la care indicele rndurilor i coloanelor identific un punct din imagine, iar elementul corespunztor al
3

Cap.1

Introducere

\n

prelucrarea

imaginilor

matricii reprezint nivelul de gri n punctul respectiv. Elementele unei asemenea reele digitale sunt numite elemente de imagine sau pixeli. n general, n diferite aplicaii se folosesc imagini de diferite forme i dimensiuni dar, dup cum se va vedea n capitolele urmtoare, prelucrarea digital este mult facilitat dac se folosesc matrici ptratice iar numrul nivelelor de gri se alege ca putere ntreag a lui 2. De exemplu, o dimensiune tipic a imaginilor digitale, comparabil ca i calitate cu cea a imaginilor TV alb-negru,este de 512x512 pixeli avnd 128 nivele de gri. Cu excepia unor paragrafe din capitolele 6 i 8 referitoare la mbuntirea imaginilor color i segmentarea acestora i din capitolul 11, referitoare la codarea imaginilor color i multispectrale, toate imaginile avute n vedere n lucrare sunt imagini monocrome, digitale, avnd forma prezentat anterior.

1.3 ETAPE ALE PRELUCR~RII DE IMAGINI


Prelucrarea digital a imaginilor presupune o succesiune de etape de procesare hard i soft, precum i de implementare a unor metode teoretice. Scopul paragrafului este de a evidenia etapele fundamentale necesare pentru realizarea unor prelucrri de imagini. Evident, discuia este mult mai util dac lum n considerare, cu titlu de exemplu, o tem concret: o aplicaie relativ uor de conceptualizat fr a avea cunotine preliminare de imagistic este utilizarea prelucrrilor de imagini n citirea automat de texte (spre exemplu, a etichetelor). Figura 1.3 ilustreaz faptul c obiectivul final este gsirea unei soluii pentru o problem, cu mijloace innd de prelucrarea de imagini. n exemplul avut n vedere, problema este textul de pe etichete, iar obiectivul este citirea i recunoaterea textului de pe fiecare etichet. Rezultatul dorit n acest caz este, n final, un ir de caractere alfanumerice.
Segmentare Reprezentare i descriere

Preprocesare Achiziie de imagine Baza de cunotine

Recunoatere i interpretare

Rezulta

Fig.1.3 Etape fundamentale n prelucrarea digital de imagini

Prima etap n acest proces este achiziia de imagine. Aceasta necesit un senzor de imagine i capacitatea de a digitiza semnalul de la ieirea acestuia. Senzorul poate fi o camer de televiziune alb-negru sau color, care produce o imagine complet la fiecare 1/25 secunde, sau o camer cu scanare liniar, producnd la un moment dat o singur linie dintr-o imagine; n acest caz, micarea cu vitez uniform a obiectului prin faa scanerului duce la obinerea unei imagini bidimensionale. Dac la ieirea camerei rezult un semnal analogic, este necesar digitizarea lui cu ajutorul unui converter analog-numeric. Natura senzorului utilizat este dependent de aplicaia avut n vedere
4

PRELUCRAREA

DIGITAL~

IMAGINILOR

- n cazul exemplului luat n considerare, un scaner liniar este suficient pentru achiziia datelor. Dup obinerea imaginii digitale, urmtoarea etap este preprocesarea acesteia. Scopul primordial al preprocesrii este mbuntirea imaginii n sensul mririi anselor de succes ale prelucrrilor ulterioare. n exemplul dat, preprocesarea const n aplicarea unor algoritmi de mbuntire a contrastului, curare de zgomot i izolare a regiunilor a cror textur (structur a pixelilor) indic o asemnare cu informaia alfanumeric avut n vedere. Etapa urmtoare const n segmentarea imaginii, respectiv mprirea acesteia n pri constituente sau n obiecte distincte. n general, segmentarea este una dintre cele mai dificile etape n prelucrarea digital de imagini. Pe de o parte, algoritmii sofisticai de segmentare, cu anse mari de selectare a regiunilor de interes, necesit calcule complicate i, deci, un timp ndelungat. Pe de alt parte, ns, algoritmii simpli sau insuficient elaborai nu se pot aplica cu anse mari de succes. n cazul recunoaterii de caractere, rolul-cheie al segmentrii este extragerea caracterelor individuale sau ale cuvintelor de pe fondul imaginii. Rezultatul segmentrii este, de obicei, un ir de intensiti ale pixelilor, reprezentnd fie conturul regiunii de interes, fie ntreaga regiune. n fiecare caz este necesar conversia datelor ntr-o form mai potrivit pentru prelucrarea pe calculator. Prima decizie ce trebuie luat este dac datele trebuie s fie reprezentate ca un contur sau ca o regiune complet: reprezentarea ca i contur este justificat n cazul n care prelucrarea urmrete evidenierea caracteristicilor de form (coluri, inflexiuni, etc.), pe cnd reprezentarea ca regiune este mai potrivit cnd se urmrete studiul caracteristicilor interne ale regiunii, cum ar fi textura sau structura intern. n unele aplicaii, cele dou tipuri de reprezentare coexist, ca n cazul recunoaterii de caractere, care necesit adesea algoritmi bazai pe forma conturului, pe structura i pe alte proprieti interne ale regiunii analizate. Alegerea modalitii de reprezentare a datelor este urmat de specificarea metodei de descriere a acestora, astfel nct caracteristicile de interes s fie scoase n eviden cu prioritate. Descrierea sau selec@ia caracteristicilor reprezint tocmai procesul de selectare a caracteristicilor, avnd ca rezultat o informaie cantitativ sau caracteristici ce difereniaz o clas de obiecte de altele. Ultima etap, ilustrat n figura 1.3, este constituit de recunoaterea i interpretarea datelor. Recunoaterea reprezint procesul de clasificare a unui obiect ntr-o anumit categorie, pe baza informaiei (descriptori) rezultate n urma descrierii imaginii segmentate. Interpretarea presupune gsirea unei anumite semnificaii pentru un ansamblu de obiecte recunoscute. n exemplul avut n vedere la nceputul paragrafului, recunoaterea unui caracter (de exemplu, litera a) necesit asocierea descriptorilor acestui caracter cu categoria "a". Interpretarea tinde spre asocierea unui neles pentru un set de asemenea caractere catalogate anterior. Pn acum nu s-a fcut nici o referire la necesitatea unor cunotine anterioare sau la interaciunea dintre baza de cunotin@e i celelalte module de prelucrare din fig.1.3. Cunotinele necesare pentru rezolvarea unei anumite probleme prin prelucrarea digital de imagini sunt codificate n sistem sub forma unei baze de date. Cunotinele pot fi de tipul simplu, de exemplu detalierea unei regiuni dintr-o imagine, unde se presupune c este localizat informaia de interes, limitndu-se n acest fel procedura de
5

Cap.1

Introducere

\n

prelucrarea

imaginilor

cutare a respectivei informaii. Cunotinele pot avea ns i un caracter mult mai complex, ca de exemplu o list a defectelor interne mai importante ale unor produse, n aplicaii de tipul inspeciei automate sau o baz de date de imagini coninnd imagini de nalt rezoluie preluate de la satelii, n cazul aplicaiilor de tip detecie satelitar. Pe lng faptul c dirijeaz operaiile din fiecare modul de prelucrare, baza de cunotine are i rolul de a controla interaciunea dintre diferite module. Distincia este fcut n figura 1.3 prin sgeile cu vrf dublu dintre baza de cunotine i modulele de prelucrare, spre deosebire de sgeile cu un singur vrf ce fac legtura ntre modulele de prelucrare propriu-zise. Aceast schem-bloc subliniaz i faptul c ntre modulele de prelucrare comunicarea se face n funcie de cunoaterea anterioar a ceea ce ar trebui s se obin, de fapt, ca rezultat final al prelucrrii. De exemplu, pentru ca un echipament s poat recunoate un ir de caractere ca fiind un cod ZIP, sistemul trebuie s fie dotat cu cunotine legate de semnificaia localizrii irului de caractere n comparaie cu alte elemente alfanumerice din imagine. Baza de cunotine permite i asigurarea unei reacii ntre module, pe lng dirijarea operaiilor n modulele de prelucrare. Spre exemplu, dac irul care ar trebui detectat este compus din 5 caractere, un ir de numere avnd locaia corect dar compus din doar 4 caractere (dintre care unul nu a putut fi recunoscut) poate determina modulul de interpretare s "suspecteze" faptul c dou caractere sunt lipite. O cerere de reacie, survenit prin intermediul bazei de cunotine spre modulul de segmentare, poate solicita o nou segmentare, eventual cu ali parametri, a imaginii propuse spre analiz. Vizualizarea imaginii rezultate n urma prelucrrii se poate face dup fiecare etap a acesteia. Este de remarcat, de asemenea, c majoritatea aplicaiilor prelucrrilor de imagini au o structur mult mai simpl i nu necesit interaciuni de complexitatea celor prezentate n fig.1.3. De fapt, n unele cazuri nici nu sunt necesare toate modulele prezentate n figur. Spre exemplu, n aplicaii de mbuntiri de imagini n vederea mririi percepiei vizuale a observatorului uman, prelucrarea se oprete, de obicei, dup etapa preprocesrii. n general, prelucrrile care includ recunoatere i interpretare - spre exemplu recunoaterea unor caractere - sunt asociate cu aplicaii de analiz a imaginilor, unde obiectivul este extragerea automat sau semiautomat de informaii din imagini.

1.4 SISTEME DE PRELUCRARE DIGITAL~ A IMAGINILOR


Elementele unui sistem de uz general, capabil s realizeze prelucrri de imagini de tipul celor prezentate n paragraful anterior, sunt prezentate n figura 1.4.

PRELUCRAREA

DIGITAL~

IMAGINILOR

Comunicare Achizitii de imagini


Camera video

Redare
Monitor TV Aparat foto Imprimanta Prelucrare

Scaner

Calculator
Memorare
Discuri optice Benzi magnetice Casete video Discuri magnetice

Fig.1.4 Elementele funcionale de baz ale unui sistem de prelucrare digital a imaginilor

Achiziia imaginilor
n vederea achiziionrii de imagini i transformrii lor n imagini digitale sunt necesare dou elemente: un dispozitiv (senzor) sensibil ntr-o anumit gam a spectrului energetic electromagnetic (de exemplu benzile corespunztoare razelor x, ultraviolete, vizibile sau infraroii) i care produce la ieire un semnal electric proporional cu energia acestor radiaii i un digitizor, care convertete semnalul analogic de la ieirea senzorului n form digital. Spre exemplu s lum un sistem de achiziie cu raze x: ieirea unei surse de radiaii x este direcionat spre un corp, iar un mediu sensibil la raze x se plaseaz pe partea opus a acestuia. Mediul capteaz, n acest fel, o imagine a materialelor (de pild oase, esuturi) din care este constituit corpul respectiv i avnd grade diferite de absorbie a radiaiilor x. Mediul n sine poate fi o pelicul sensibil la raze x, o camer TV combinat cu un convertor raze x - fotoni sau o reea de detectoare de raze x din a cror semnale de ieire se reconstruiete, prin combinare, imaginea digital. O categorie important de videosenzori o constituie cei folosii n domeniul vizibil: camerele video cu vidicon sau cu dispozitive videocaptoare integrate de tip CCD. Funcionarea camerelor video cu vidicon se bazeaz pe principiul fotoconductibilitii: o imagine focalizat pe suprafaa tubului produce un relief de conductibiliti proporional cu distribuia de strluciri din imaginea optic. Un fascicul de electroni focalizat pe suprafaa posterioar a intei fotosensibile a tubului exploreaz punct cu punct aceast suprafa i, prin neutralizarea sarcinilor electrice, creaz o diferen de potenial care produce pe un electrod colector un curent proporional cu
7

Cap.1

Introducere

\n

prelucrarea

imaginilor

relieful de strluciri de pe faa anterioar a intei. Imaginea digital este obinut prin eantionarea i cuantizarea acestui semnal. Dispozitivele videocaptoare integrate sunt compuse din elemente semiconductoare discrete, numite fotocapaciti MOS, care dau la ieire un potenial proporional cu intensitatea luminii incidente. Exist dou tipuri de asemenea dispozitive: liniare i matriciale. Un senzor liniar const dintr-un ir de asemenea fotocapaciti semiconductoare i poate produce o imagine bidimensional prin micarea relativ ntre scen i detector.
Registru de transfer

Poart
N Fototranzistori 3 2 1

Poart de ieire

Amplificator

Ieire

Poart

Registru de transfer
Fig. 1.5. a Dispozitiv videocaptor CCD liniar

Registru de transfer orizontal


Poart
F o t o r e g i s t r u

Poart de ieire

P o a r t

Reg. de transf. vertical Amplificator

Ieire

Fig. 1.5.b Dispozitiv videocaptor CCD matricial

Un senzor matricial este compus dintr-o matrice de fotocapaciti 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").
8

PRELUCRAREA

DIGITAL~

IMAGINILOR

Dup cum se poate observa n figura 1.5.a., un dispozitiv videocaptor liniar (scaner liniar) CCD este compus din iruri de fotocapaciti MOS, pori de transfer a sarcinilor din elementele fotosensibile n regitrii de transfer i o poart de ieire folosit pentru transferul semnalului din regitrii de transfer spre un amplificator de ieire. Dispozitivele videocaptoare CCD matriciale sunt similare cu senzorii liniari, cu excepia organizrii fotocapacitilor ntr-o matrice i a porilor/regitrilor de transfer vertical care separ ntre ele coloanele de fotocapaciti (fig.1.5.b). Coninutul fotoelementelor pare sunt transferate secvenial n regitrii de transfer vertical i apoi n registrul de transfer orizontal. La rndul lui, acesta transfer, prin intermediul unei pori, coninutul unei linii ntr-un amplificator de ieire. Repetnd procedura pentru liniile impare se obine al doilea cmp al unui cadru de imagine ntreesut. Scanarea se repet n acelai mod de 25 de ori ntr-o secund. Senzorii liniari CCD au rezoluii cuprinse ntre 256 i 4096. Rezoluia senzorilor CCD matriciali variaz ntre 32x32 elemente pentru cele de performane reduse i 256x256 elemente pentru un senzor de rezoluie medie. Pe pia se ofer i senzori de rezoluie mai ridicat, 640x480 i chiar 1280x1024 elemente, dar la un pre mai ridicat. Cu titlu de noutate, au aprut senzori care folosesc micarea mecanic a dispozitivului integrat CCD pentru a obine rezoluii de ordinul 2048x2048 elemente. Matricile CCD sunt nglobate n camere video, semnalul de ieire fiind semnalul standard folosit n sistemele TV. Pentru obinerea unei imagini digitale se impune, la fel, eantionarea i cuantizarea acesteia.

Memorarea imaginilor digitale


O imagine digital pe 8 bii, de dimesiuni 1024x1024 pixeli, necesit un spaiu de memorie foarte mare, de ordinul a 106 bytes. Din acest motiv, memorarea imaginilor ocup un loc important n proiectarea sistemelor de prelucrare a imaginilor. Memorarea digital pentru aplicaii de prelucrare de imagini poate fi clasificat n trei categorii principale: memorarea pe termen scurt pentru nevoile procesrii propriu-zise, memorarea on-line pentru accesare relativ rapid a imaginilor i memorarea n vederea arhivrii, caracterizat prin faptul c accesul la imagini este mai puin frecvent. Cea mai folosit metod de memorare pe termen scurt este folosirea memoriei calculatorului. O a doua, utiliznd plci de memorie specializate, numite "memorii de cadru" (frame buffers) permite memorarea unuia sau mai multor cadre, cu meniunea c accesul este foarte rapid - de obicei n timp real, adic 25 de cadre complete pe secund. A doua metod permite un zooming aproape instantaneu ca i deplasri verticale ("scroll") sau orizontale ("pant") ale acesteia. Capacitatea de memorie necesar pentru o memorie de cadru este limitat de dimensiunile fizice ale plcii i de densitatea de memorie/circuit integrat utilizat. O capacitate de 32 Mbytes pe o plac de memorie de cadru este uzual, la ora actual. Memorarea "on-line" se face, de obicei, cu discuri magnetice. Discurile Winchester avnd capaciti de sute de Mbytes sau chiar Gbytes se folosesc deja n mod obinuit, chiar n calculatoare de uz general. O tehnologie mai recent, numit memorare magneto-optic (MO) utilizeaz un laser i tehnologii speciale de obinere a materialelor, n vederea obinerii unei capaciti de memorare de 1 Gbyte pe un disc de 5 1/4 inch. Datorit faptului c ceea ce caracterizeaz, n principal, memorarea "on-line" este accesarea frecvent a datelor, benzile magnetice i alte medii de memorare cu acces
9

Cap.1

Introducere

\n

prelucrarea

imaginilor

serial se utilizeaz mai rar. Seturi de discuri optice de 30-100 uniti pot oferi o soluie eficient pentru memorarea unei cantiti mari de informaie "on-line" atunci cnd aplicaiile de prelucrare digital a imaginilor necesit capaciti mari de scriere - citire. Memorarea n vederea arhivrii se caracterizeaz prin capaciti foarte mari de memorare necesare, dar cu accesare mult mai puin frecvent. Benzile magnetice i discurile optice reprezint cea mai uzual soluie tehnologic utilizat n acest caz. Benzi magnetice de nalt densitate (2500 bytes/cm) permit memorarea unei imagini pe o lungime de band de 4 m., dar problema principal rmne durata de pstrare a informaiei, care este limitat (aproximativ 7 ani) i necesitatea asigurrii unui spaiu de depozitare controlat. Discurile optice n tehnologia WORM ("write-once-read-many") permit stocarea de informaii de ordinul a 1 Gbyte pe discuri de 5 1/4 inch. Spre deosebire de discurile magneto-optice, discurile WORM sunt disponibile n variante avnd dimensiuni i capaciti de memorare mai mari (6 Gbytes pe discuri de 12 inch, respectiv 10 Gbytes pe discuri de 14 inch). Dei nu sunt refolosibile prin tergere, discurile WORM au o durat de pstrare a informaiei care depete 30 ani, fr condiii speciale de depozitare. n configuraia de "jukebox", aceste discuri se pot folosi i ca dispozitive de stocare "on-line", n aplicaii care necesit n principal operaiuni de tip "read-only". O capacitate de memorie de 1 Tbyte, respectiv 1 milion de imagini pe 8 bii, de dimensiuni 1024x1024, este posibil folosind un "jukebox" care ocup un volum sub 4 m3. n situaia n care memorarea imaginilor se poate face i sub form analogic, mediile de memorare tipice utilizate n aplicaiile de acest tip sunt filmul fotografic sau banda/caseta magnetic video.

Prelucrarea imaginilor
Prelucrarea imaginilor digitale presupune folosirea unor tehnici exprimate, de obicei, sub forma unor algoritmi. Din aceast cauz, cu excepia achiziiei i redrii imaginilor, majoritatea celorlalte funcii de prelucrare pot fi implementate soft. Singurele motivaii ce justific, n anumite aplicaii, implementarea hard a anumitor algoritmi sunt necesitatea asigurrii unei viteze mari de prelucrare sau depirea anumitor limitri fundamentale ale calculatoarelor. Spre exemplu, pentru prelucrarea imaginilor obinute n microscopia electronic, se impune reducerea zgomotului din imagini prin medierea acestora de-a lungul unui set de imagini i cu o vitez corespunztoare ratei video (25 de cadre/secund). Arhitectura magistralelor majoritii calculatoarelor nu poate gestiona cantitatea de informaie la rata de transfer cerut de aceast aplicaie i, din aceast cauz, sistemele de prelucrare de imagini sunt, la ora actual, combinaii de calculatoare uzuale i plci specializate de prelucrri hard, operaiile fiind supervizate de ctre pachetele de programe instalate pe calculator. Cu toate c exist nc o pia important pentru sisteme de prelucrare de imagini foarte performante, pentru aplicaii de mare anvergur cum ar fi prelucrarea imaginilor satelitare, tendina de miniaturizare i de combinare a calculatoarelor de uz general cu echipamente (plci) specializate n prelucrarea hard a imaginilor ctig din ce n ce mai mult teren. n particular, principalul echipament hard ce se adaug la arhitectura clasic a PC-urilor const ntr-o combinaie de digitizor i registru de imagine ("frame buffer"), pentru digitizarea i stocarea temporar a imaginilor, o aa-numit unitate de procesare aritmetic/logic (ALU) utilizat pentru operaiile de tip aritmetic i logic n timpi
10

PRELUCRAREA

DIGITAL~

IMAGINILOR

comparabili cu ratele de transfer video i unul sau mai multe registre de imagine, pentru asigurarea unui acces rapid la date n timpul prelucrrii. Din punctul de vedere al programelor utilizate, pe pia este disponibil la ora actual un numr semnificativ de asemenea programe de prelucrare. n combinaie cu alte pachete de programe (de grafic computerizat, de exemplu) ele constituie un foarte util punct de plecare pentru soluionarea unor probleme specifice de prelucrare de imagini. Soluiile obinute prin implementare soft sunt, ulterior, transferate (portate) pe plci specializate de prelucrare hard pentru obinerea unei viteze superioare. Prelucrrile de imagini se caracterizeaz prin faptul c folosesc tehnici specifice; cu toate acestea, metode care duc la rezultate foarte bune n unele aplicaii, sunt total inadecvate n altele. Ceea ce pune, de fapt, la dispoziie hard-ul i programele soft disponibile la ora actual, este un punct de pornire n dezvoltarea unor aplicaii specifice, care necesit ns o munc de cercetare i dezvoltare foarte serioas. Problemele care se trec n revist n capitolele urmtoare au n vedere tocmai s pun la dispoziia doritorilor uneltele necesare acestui tip de activiti.

Transmisia imaginilor digitale


Problema comunicaiei n prelucrarea digital de imagini implic, pe de o parte, comunicarea local ntre sisteme de prelucrare i comunicarea la distan@e mari, pe de alt parte. Hard-ul i soft-ul pentru comunicaii locale este oferit, n general, de facilitile reelelor de calculatoare, cu toate c rata de transmisie necesar pentru imagini este mult mai mare dect pentru alte tipuri de transmisii de date. Comunicarea la distane mari reprezint, ns, i la ora actual o problem deschis i eforturile ce se fac n acest sens din punctul de vedere al cercetrii i dezvoltrii sunt uriae. Transmisia prin intermediul liniei telefonice a unei imagini de 512x512 pixeli pe 8 bii cu rata de 9600 bii/sec. ar necesita aproape cinci minute. Folosirea transmisiei prin radiaie, n radiofrecven, permite obinerea de rate de transmisie mult mai mari, dar este i foarte scump. Capitolul 10 al prezentei lucrri prezint tehnici de compresie i decompresie a imaginilor, tehnici ce ofer soluii n acest domeniu.

1.5 PROGRAME DE PRELUCRARE DIGITAL~ A IMAGINILOR


Alte capitole ale prezentei lucrri se refer la algoritmii folosii n prelucrarea imaginilor cu ajutorul calculatorului i la folosirea echipamentelor hard dedicate.Acest paragraf se refer ns la organizarea programelor (software) care implementeaz operaiile de prelucrare a imaginilor. n particular este luat n considerare modul n care sunt concepute, dezvoltate i prezentate pentru utilizare aceste programe. Cunoaterea tehnicilor de implementare a programelor este util att pentru productorii de soft din domeniul prelucrrilor de imagini ct i, n aceai msur, pentru utilizatori. Productorii de soft pot evita astfel pierderea de timp n dezvoltarea acestor tipuri de programe, iar utilizatorii pot gsi un ajutor pentru evaluarea corect a programelor de pe pia n conformitate cu preteniile lor. Capitolul ofer o privire de ansamblu asupra acestor caracteristici vitale ale programelor. Scrierea unui program de prelucrri de imagini, mai ales in forma sa cea mai complet (de exemplu, pentru o prezentare comercial), presupune anumii pai. Primul
11

Cap.1

Introducere

\n

prelucrarea

imaginilor

const n stabilirea funciilor de baz i a operaiilor caracteristice (proiectarea conceptual) urmat de identificarea celor mai potrivii algoritmi pentru implementarea acestor funcii de baz. Apoi, prin arhivarea programului, se obine o prim versiune a programului. Dup lansarea acestui produs urmeaz faza testrii lui pentru eliminarea problemelor care apar, fiind posibil ncorporarea unor idei noi ce pot conduce la mrirea fiabilitii, a performanelor i, nu n ultimul rnd, a vandabilitii produsului. Se recomand ca, odat cu programul, s fie lansat i documentaia de folosire a acestuia i organizarea de cursuri pentru nvarea i utilizarea lui. n ultima etap activitile vor include servicii de ntreinere i de suport tehnic. Un program aplicativ de prelucrri de imagini este diferit de un program de dezvoltare (care are un caracter mai general), prin faptul c primul tip ofer soluii hard/soft pentru probleme (aplicaii) specifice.

Sisteme de calcul pentru prelucrarea imaginilor


Calculatoarele (platformele) folosite n general pentru prelucrarea digital a imaginilor se mpart n patru categorii: Apple Macintosh, echipate cu un sistem de operare i interfa cu utilizatorul propriu proprii, IBM-PC sau compatibile, utiliznd ca sisteme de operare MS-DOS, PS/2, WINDOWS sau IBM/OS2, sta@ii grafice, utiliznd, n general, sisteme de operare UNIX sau XWINDOWS sau, n cazul unor aplicaii mai pretenioase, sisteme de calculatoare foarte puternice (mainframe), cu resurse foarte mari i utilizatori multipli. Sistemele pot fi organizate ca reele locale de calculatoare (LAN) sau pot accesa alte reele la mare distan (WAN).

Formate de imagine
Programele dedicate prelucrrilor de imagini implic manipularea unui numr mare de fiiere de imagine,de dimensiuni foarte mari. Acest lucru implic att compresia ct i conversia acestor fiiere, ntruct adesea este necesar ca utilizatorii s schimbe date prin intermediul lor. Organizarea fiierelor de imagini se face n formate standard. Cele mai utilizate programe de prelucrri de imagini pot citi i salva imagini n cteva dintre formatele standard, iar altele pot s fac conversia dintr-un format n altul. Ele utilizeaz n general extensia fiierului pentru a recunoate tipul formatului i pentru a ti cum anume s-l poat citi sau salva. Unele dintre cele mai utilizate formate standard sunt prezentate n tabelul 1.1. Majoritatea formatelor memoreaz un tabel adiional la datele de imagine,care include date importante referitor la crearea formatului respectiv. Dispozitivele de afiare monocrome folosesc convertoare digital/anologice de 8 bii/pixel, genernd semnalul video care comand strlucirea pixelilor afiai pe ecran. Pentru dispozitivele de afiare monocrome deci, numrul de nivele de gri este de maximum 256.

TABEL 1.1 FORMATELE DE IMAGINE STANDARD

Nume
12

Sigl

Utilizare

PRELUCRAREA

DIGITAL~

IMAGINILOR

Tagged image file format Encapsulated PostScript Graphical interchange format Bit-Mapped format Presentation manager Macintosh

*.TIF *.EPS *.GIF *.BMP *.BMP *.PICT

DOS,UNIX, i imagini sub Macintosh Format dedicat publicailor industriale Format grafic comprimat Format realizat de Microsoft Format BitMap dedicat IBM OS/2 Pentru imagini Apple Macintosh

Dispozitivele de afiare n culori folosesc un triplet de 8 bii pentru cele trei culori fundamentale, convertorul furniznd trei semnale prin care se controleaz att strlucirea ct i crominana imaginii afiate. Rezult de aici posibilitatea vizualizrii unui numr de 24 milioane de culori. Datorit imperfeciunii sistemului de afiare i limitrilor organului vizual a uman, numrul culorilor ce pot fi distinse este considerabil mai mic. Prelucrrile de imagini nu implic doar sisteme de vizualizare color sau alb/negru ci i rezoluii fotometrice diferite (numr de nivele de gri sau de culori). Pentru imaginile monocrome, numrul nivelelor de gri este n general de 2, 16 sau 256, corespunztor unui numr de 1, 4 respectiv 8 bii/pixel. Evident, se pot folosi i rezoluii intermediare sau mai mari, dar cele prezentate se preteaz cel mai bine mpachetrii n octei (bytes). Paleta de culori este un tabel cu triplei RGB, care specific culoarea fiecrui pixel afiat. O imagine color cu 4 bii/pixel, care utilizeaz 16 culori, va selecta dintr-o palet de 16 milioane de culori doar pe cele 16 pe care le utilizeaz. O imagine cu 8 bii/pixel poate avea o palet de 256 culori , valoarea fiecrui octet citit fiind un index n aceast palet. Dac se lucreaz ns cu imagini de 24 bii/pixel, nu se mai poate selecta din spaiul culorilor o palet, deoarece numrul de culori este egal cu numrul maxim de culori ce pot fi definite. Paleta este, de obicei, inclus n fiierul de date aferent unei imagini i controleaz dispozitivul de afiare atunci cnd este vizualizat.

Interfaa cu utilizatorul
Primele calculatoare nu aveau practic o interfa@ cu utilizatorul, programarea fcndu-se foarte dificil, prin intermediul codurilor specifice mainii de calcul. Dei flexibil, aceast modalitate este mai degrab mpovrtoare pentru utilizator. Mai recent a aprut tendina de a dezvolta interfee soft ntre utilizator i calculator care s fac comunicarea mult mai prietenoas. Aceasta permite utilizatorului s foloseasc un mediu de programare confortabil, cu care s dezvolte aplicaii pentru prelucrri de imagini. Cele mai moderne pachete de programe folosite la dezvoltarea de aplicaii sunt acelea care ofer utilizatorului putere de calcul i flexibilitate, simultan cu uurina lucrului cu calculatorul. Proiectarea interfeelor cu utilizatorul se bazeaz pe intuiia acestuia, ideea de baz fiind de a le face ct mai uor de invat i de utilizat. Pe lng faptul c sunt, de obicei, livrate cu o documentaie complet, aceste interfee sunt prevzute cu meniuri explicative ("help"-uri).

Interpretorul de comenzi

13

Cap.1

Introducere

\n

prelucrarea

imaginilor

Cel mai vechi i simplu mod de a realiza o interfa cu utilizatorul este de a realiza un interpretor de comenzi (fig. 1.6). Acesta folosete un limbaj n exclusivitate textual i pretinde utilizatorului cunoaterea acestuia, fie din memorie, fie din documentaie.

Fig.1.6 Interpretor de comenzi

Fiecare comand este interpretat, fiind lansat o rutin corespunztoare, ce va rezolva o anumit problem specific. Dezavantajul este c nu se pot oferi indicaii programatorului referitor la corectitudinea programului dect n timpul execuiei acestuia. Astfel, programatorul are neaprat nevoie de un material ajuttor pentru nsuirea ct mai corect a noiunilor i metodelor de programare, mai ales n faza de nvare a acestuia. Situaia poate fi uor mbuntit prin folosirea unor fiiere text de tipul "*.bat" ("batch files" sau "script files"), care specific o serie de pai de prelucrare i pot fi apelate printr-o singur comand. Un set bogat de asemenea fiiere poate face lucrul cu interpretorul de comenzi mult mai facil.

Interfaa meniu a programului


Incluse n a doua generaie, interfe@ele de tip meniu ofer pe ecranul monitorului (n interiorul unor ferestre) o list de faciliti puse la dispoziia utilizatorului, care pot fi selectate sau executate direct cu ajutorul unor taste definite n acest scop (fig.1.7). Deci utilizatorul nu va mai fi nevoit s memoreze instruciuni sau s apeleze permanent la documentaie pentru a putea lucra cu programul. Interfaa de tip meniu lucreaz cu poantori grafici de diferite forme i dimensiuni (mouse, trackball, glidepoint). n acest mod, utilizatorul poate selecta foarte uor butoane, opiuni, sau comenzi pe care nu mai este nevoit s le scrie de la tastatur. Meniul poate fi conceput ca o structur ierarhic, prin selectarea unui sub-meniu pentru anumite opiuni ce nglobeaz la rndul lor alte opiuni .a.m.d. Fiecare meniu sau, dup caz, sub-meniu poate avea asociat o opiune de ajutor (help) care o dat selectat ofer informaii referitor la aciunea n curs de desfurare.
14

PRELUCRAREA

DIGITAL~

IMAGINILOR

Fig.1.7 Interfa - meniu

Interfaa grafic
A treia generaie de interfee este cea grafic (GUI - "graphical user interface"). Utilizatorul poate controla un proces prin utilizarea unui limbaj vizual-grafic, n locul celui textual. Interfa@a grafic prezint de fapt opiunile pe ecranul monitorului nu doar sub form de text, ca n meniu, ci i sub form grafic (simboluri grafice - iconie). Aceste iconie reprezint nu numai procese, ci i date (imagini digitale, spre exemplu) sau chiar echipamente hard (driver de disc, imprimant, etc.). Folosind o interfa grafic se poate ncepe un program (de exemplu, editarea unei imagini memorate) prin aa-numita tehnic "drag-and-drop": folosind mouse-ul, operatorul "apuc" icoana reprezentnd imaginea, o deplaseaz spre cealalt icoan reprezentnd imprimanta i o "las"; n acest mod, procesul de editare se declaneaz. Ar merita subliniat nu numai rapiditatea, n comparaie cu scrierea unei linii de program pe ecran, dar i atractivitatea mai mare pentru utilizator.

Interfaa cu fluxul de date


Interfa@a cu fluxul de date este un alt tip de interfa grafic.Aici este utilizat n exclusivitate limbajul vizual (grafic), fiind disponibile nite simboluri grafice (glifuri "glyphs") reprezentnd procese, date sau echipamente. n acest caz, utilizarea tehnicii de "drag-and-drop" cu ajutorul mouse-ului duce la compunerea pe ecranul monitorului a unei scheme-bloc descriind succesiunea dorit de algoritmi de prelucrare (fig. 1.8). Fiecare glif are una sau mai multe intrri i/sau ieiri care pot fi conectate prin linii trasate cu dispozitivul poantor la alte glifuri.

Ferestre grafice

15

Cap.1

Introducere

\n

prelucrarea

imaginilor

Posibilitatea de a avea simultan la dispoziie mai multe dispozitive de afiare mrete mult eficiena sistemului (spre exemplu, dac interfaa cu utilizatorul i, respectiv, imaginile sunt afiate pe monitoare diferite). O alternativ mai modern este folosirea unor monitoare de dimensiuni mari pentru a vizualiza mai multe funciuni simultan prin folosirea mai multor ferestre grafice.

Fig. 1.8 Interfa grafic

MDI ("multi device interface") este o interfa care ofer aceast facilitate i care utilizeaz n mod eficient monitorul. Imaginile sau funciunile sunt reprezentate n cte o fereastr, care poate avea orice dimensiune i poate fi plasat oriunde pe ecran. Tendina n proiectarea interfeelor cu utilizatorul este de a folosi mai mult limbajul vizual, n detrimentul celui textual. Se consider c o interfa grafic este mult mai uor de nvat, n special de ctre nceptori, dar i mult mai uor de utilizat de ctre specialiti. Introducerea interfeelor care permit folosirea vocii pentru comunicare poate fi un ajutor important, pe lng mouse sau tastatur. O asemenea interfa verbal este util n special atunci cnd atenia operatorului este distribuit n mai multe pri.

Dezvoltarea de programe (software)


n zilele de pionierat ale calculatoarelor electronice i a prelucrrilor digitale de imagini se folosea aa-zisa programare nestructurat. Avnd doar o concepie vag despre ceea ce vor s fac, operatorii generau codul necesar funcionrii calculatorului sintetizndu-l din rutine simple. Proiectarea general a aplicaiei era, deci, fcut n paralel cu conceperea programelor. Modulele se dezvoltau "de jos n sus", adic erau implementate mai nti rutinele simple, iar rutinele de nivel mai nalt erau construite ulterior, pe baza acestora.
16

PRELUCRAREA

DIGITAL~

IMAGINILOR

Prin 1970, cteva dintre problemele legate de acest mod inadecvat de programare au devenit evidente. n primul rnd, complexitatea mereu crescnd a aplicaiilor a pus programatorul n imposibilitatea de a urmri aspectele de baz ale programului. Cercetrile din sfera psihologiei evideniaz faptul c omul nu poate memora mai mult de cinci pn la nou informaii n acelai timp. Aceast limitare s-a materializat n performanele obinute, n special n cazul unor proiecte de dezvoltare mari. O alt problem care apare este cea legat de ncapsularea modulelor program realizate de programatori diferii, fiind necesar adaptarea acestora la rutinele celorlali. Un program modern implic cooperarea mai multor programatori care lucreaz n echip. Paii importani n dezvoltarea de soft n domeniul prelucrrilor de imagini sunt ilustrai n tabelul 1.2.
TABEL 1.2 Pai pentru dezvoltarea programului
1. 2. 3. 4. 5. 6. 7.

Analiza problemei Proiectare preliminar Definitivarea prototipului Proiectare detaliat Implementarea (generarea codurilor) Testare ntreinere

Aceti pai pot fi parcuri secvenial sau iterativ. Prin definiie, analiza este procesul de studiere a unei probleme, cu specificarea caracteristicilor operaionale ale soluiei. Rezultatul analizei este o specificaie funcional a programului care trebuie scris. Etapa de proiectare propriu-zis presupune implementarea acestor specificaii, cu adugarea unor detalii legate de platforma de calcul utilizat. Ultima etap, programarea, const, evident, n scrierea, testarea i depanarea programelor, precum i a documentaiei aferente. Dei senzaia este c abordarea n acest fel a dezvoltrii de programe este prea complex, experiena a dovedit c este mult mai eficient (i mai ieftin, n ultim instan) s faci un program bun de la nceput, dect s pierzi suplimentar timp pentru modificarea sau depanarea unuia prost conceput.

Structura programelor aplicative


Un program aplicativ poate lucra n diferite moduri, depinznd de rolul pe care l joac timpul de calcul in aplicaia respectiv. n modul batch, programul este plasat ntr-o coad de ateptare i executat atunci cnd calculatorul este liber. Instruciunile trebue s fie executate secvenial, dar nu este foarte important dac ntre instruciuni exist o pauz de cteva nanosecunde sau de cteva minute, rezultatul fiind acelai. Programele mai pot funciona ntr-o bucl de ateptare a evenimentelor, din care ies pentru a efectua o anumit operaie corespunztoare evenimentului sosit. n mod normal, un asemenea eveniment este, spre exemplu, intervenia operatorului, care apas o tast sau pe butonul mouse-ului. Programul baleiaz n permanen dispozitivele de intrare i detecteaz, respectiv identific, fiecare eveniment care apare. Apoi el execut rutina urmtoare i se ntoarce napoi n bucl. Programele interactive de prelucrare a imaginilor intr n aceast categorie. Programele n timp real monitorizeaz un eveniment n curs de desfurare, cum ar fi un proces de producie. Timpul, n acest caz, joac un rol foarte important n
17

Cap.1

Introducere

\n

prelucrarea

imaginilor

execuia programului. O categorie de programe de prelucrare a imaginilor in timp real o constituie prelucrarea secvenelor video, unde algoritmii implementai trebuie s lucreze n timpul "pauzelor de informaie" din structura semnalului video. Aplicaii ale acestui tip de programe se ntlnesc n televiziunea digital, comunicaiile multimedia, etc., acolo unde viteza de prelucrare este esenial pentru obinerea unor secvene de imagini care s poat fi transmise n timp real.

Programare structurat de sus n jos


nc din anii 70 conceptul de programare structurat de sus n jos (top-down) a ptruns tot mai mult n conceperea unui program. Un program structurat este un program care nu are salturi de genul GOTO (adres). Dup terminarea unei instruciuni se d curs instruciunii urmtoare, ntoarcerea nemaifiind permis. Astfel, un program devine mult mai uor de urmrit, mai apropiat de simurile omului, codul rmnnd ns neschimbat. Programarea structurat de sus n jos are dou mari avantaje. Primul se refer la interfeele dintre module, fiecare interfa lucrnd cu subrutine simple ce primesc sau returneaz parametri. Astfel este mult mai puin probabil ca anumite variabile cheie s scape n afara interfeei. Al doilea mare avantaj este c procesul este uor de implementat i de prezentat nc din faza conceperii i dezvoltrii aplicaiilor. Rutinele funcionale ale programului nlocuiesc, pe parcursul elaborrii acestuia, subrutinele simple, pornind de la nceputul lui (de sus n jos).

Analiza structurat
Analiza structurat descompune o problem n curs de rezolvare n linii funcionale simple. Rezultatul este o specificaie structurat a conceptelor care se compune dintr-o schem logic, prezentnd o descompunere a funciei globale a programului n procese i interfee ntre acestea, o baz de date i descriptori de transformare, necesari pentru explicitarea fiecrui proces n schema logic. Specificaia structurat va prezenta, n final, diferitele componente structurale ale sistemului i circulaia informaiei ntre ele, precum i modul n care este prelucrat aceasta.

Proiectarea structurii
Scopul proiectrii structurate este de a organiza metodologia capabil s fac distincia ntre o proiectare proast sau bun i de a gsi soluia optim. Este vorba de fapt, de o strategie care conduce la un program capabil s satisfac obiectivele tehnice i constrnge la o variant de program comercial. Programarea structurat consider elementele structurale ale unui program ca pe nite cutii negre care au o funcie specificat, dar n interiorul crora nu intereseaz structura.

Programarea structurat
Programarea structurat folosete tehnici de codare standardizate i nltur din limbajul de programare anumite comenzi care tind s ncurajeze programarea artizanal. Ele se bazeaz pe o organigram (schem logic) ce este elaborat pe baza unor subfuncii, avnd o singur intrare i o singur ieire. Programarea devine astfel o activitate mult mai organizat i mai disciplinat, dar i mai restrictiv pentru
18

PRELUCRAREA

DIGITAL~

IMAGINILOR

programator, nlocuind elementul creativ individual cu un standard de gndire a unui program. Rezultatul este un produs mult mai uor de citit, testat, modificat i depanat. Programe structurate ca Pascal, Ada, C tind s nlocuiasc limbaje nestructurate ca Fortran, Basic, etc. Programele structurate furnizeaz capabiliti i faciliti ce ncurajeaz i susin disciplina programrii structurate. Cele mai recente programe i versiuni ale programelor nestructurate au incorporate deja o parte a acestor concepte. La limbajele nestructurate, programul nu poate fi controlat i nici urmrit, dac depete o oarecare dimensiune. Un exemplu concret este n acest caz instruciunea GOTO din Fortran sau Basic, care care face trimitere la o adres imposibil de urmrit de ctre programator, depinznd de valoarea unei variabile specificate. n programarea structurat, controlul derulrii programului este asigurat prin faptul c nu se fac salturi la alte adrese i nici ntoarceri n program, iar codul i datele sunt precis compartimentate. Subrutinele care folosesc variabile temporare (locale) nu pot crea "efecte secundare" n alte pri ale programului.

Programarea obiectual
Modul de programare obiectual (object oriented programming) descompune problema n clase i obiecte. Clasele sunt o declaraie de tipuri de date i metode, iar obiectele sunt instanieri ai acestor clase (combinaii de date ce se refer la un anumit aspect al problemei ce trebuie rezolvate precum i codul corespunztor, care pune n execuie, folosind aceste date, un set de funcii bine definite). Datele sunt separate de cod, aspect motenit din programarea structurat, fiind ns ncapsulate mpreun n pachete program. Astfel, datele i metodele asociate devin ascunse lumii exterioare obiectului, fcnd astfel posibil modularizarea programului. Fiecare obiect este privit ca o cutie neagr, executnd funcii predefinite ce sunt activate la primirea mesajului de apel, iar la terminarea lor trimit alte mesaje dedicate altor obiecte. Programul devine astfel 100% modularizat, evitndu-se efectele dezastroase ce pot rezulta din schimbarea unei singure rutine n alte module ale programului. Analiza obiectual a unei probleme are ca rezultat o list de obiecte care vor "lucra" mpreun pentru rezolvarea acesteia. Ea include o specificare a datelor (atribute) i funciilor (servicii) corespunztoare fiecrui obiect. Analiza obiectual se face independent de hard-ul, sistemul de operare sau de instrumentele de dezvoltare soft ce vor fi folosite la implementare. Proiectarea obiectual are ca scop implementarea schemei logice rezultate din analiz pe o anumit platform. Adesea, ea impune modificri ale proiectului iniial, datorate limitrilor impuse de platform. Programarea obiectual pornete adesea de la o "aplicaie-cadru", care este un program avnd nglobate unele funcii generice, comune mai multor programe. Ea servete ca schelet pentru dezvoltarea aplicaiei propriu-zise. Aplicaia-cadru rezolv problemele de identificare i ordonare n timp a evenimentelor, iar programatorul nu mai trebuie dect s adauge obiectele necesare aplicaiei. Fiecare obiect conine att datele, ct i codurile de control necesare, ncapsulate intr-o unitate independent, eventual sigilat. Obiectele noi nu trebuie descrise complet: ele pot s moteneasc proprieti ale obiectelor existente deja.

Instrumente soft

19

Cap.1

Introducere

\n

prelucrarea

imaginilor

n practic, o parte considerabil din timpul afectat programrii este folosit pentru lucruri de rutin, care nu pun probleme de dificultate, dar sunt mari consumatoare de timp. Pentru a evita acest lucru s-au dezvoltat instrumente soft care s preia o parta a activitii de dezvoltare. Ele se numesc instrumente CASE ("Computer Aided Software Engineering") i preiau o mare parte din funciile de documentare i de depanare. Un exemplu de instrument CASE l constituie programul care combin informaia "header" a tuturor surselor pentru a genera manualul de documentare a programului. Alte programe citesc fiierele-surs, fcnd legturile dintre variabile ("linking") pe baza unei hri de legturi i dau informaiile, att de utile, referitoare la erorile care au aprut la compilare. n trecut, n faza de concepie a unui program erau cunoscute doar aspectele conceptuale generale, urmnd ca detalierea acestora s se fac pe parcurs. La ora actual, tendina este ca efortul necesar concepiei programului s se concentreze la nceputul acestuia i, deci, s se cunoasc nc de la nceput structura ntregului proiect. Asta nseamn c efortul conceperii unui program devine un proces mai degrab mecanic, pornind de la un proiect complet specificat. Exist n acest sens dou tendine i anume: echipele de dezvoltare de programe soft tind s se divizeze n proiectani de software i programatori, o parte din efortul de programare fiind preluat de ctre instrumentele CASE. Un proiectant de software dezvolt specificaia complet pentru fiecare pachet soft, iar instrumentele CASE preiau aceste specificaii i genereaz foarte rapid i fr erori codul-surs necesar. Ceea ce nu pot rezolva aceste instrumente vor face programatorii, prelund rutinele de dezvoltare care nu sunt comune n toate programele.

Programare portabil
Dezvoltarea unui program complex de prelucrri de imagini este foarte costisitor i mare consumator de timp. La ora actual exist diferite platforme hard i soft care pot fi folosite pentru prelucrrile de imagini, avnd fiecare att avantaje ct i dezavantaje n privina performanelor i costului. Problema, ns, este alta: ritmul de dezvoltare a echipamentelor hard fiind foarte mare, exist riscul de a trebui rescris parial sau total programul, la trecerea de pe o platform de calcul pe alta. Din acest motiv, tendina n acest moment este de a dezvolta metodologii de dezvoltare soft independente de echipamentele hard (platformele) pe care ruleaz. O interfa@ soft de portabilizare (portare) este, dup cum i spune i numele, un pachet soft care se interpune ntre programul de aplicaie independent de platform i platforma propriu-zis pe care va rula (fig.1.8).

20

PRELUCRAREA

DIGITAL~

IMAGINILOR

Utilizator

Interfat grafic cu utilizatorul

Aplicaie independent de platform

Memorie

Interfa soft de portare

Sistem de operare

Fig. 1.8 Organizarea soft independent de platform

Programul de aplicaie este scris respectnd regulile standard, ca i cum interfaa portabil ar fi platforma, iar aceasta realizeaz interfaa propriu-zis ntre programul de aplicaie i sistemul de operare propriu platformei hard, interfeei GUI i memoriei. n acest mod se transfer comenzi ntre aplicaie i sistemul de operare specific platformei. Fiecare platform hard are un sistem de operare de sine stttor (de exemplu UNIX, Macintosh, etc.) i, deci, o versiune diferit a interfeei de portabilizare, dar fiecare interfa este la fel, privit din punctul de vedere al aplicaiei. n acest fel un program dezvoltat pe o anumit platform va putea fi rulat fr modificri i pe o alta, fiind necesar doar o verificare a funcionalitii dup portarea pe alt sistem. O interfa soft de portabilizare bine proiectat ofer programatorului acces la aproape toate caracteristicile i resursele platformei. Resursele sau unele caracteristici ale unei alte platforme, care nu exist n platforma iniial, pot fi emulate soft de ctre interfaa de portabilizare. Programarea independent de platform face munca programatorului mult mai simpl i ofer garania portabilitii programelor spre alte platforme de calcul sau sisteme de operare fr nici un fel de modificri ale surselor program.

Documentaia soft
Documentaia care nsoete un program de prelucrri de imagini se mparte n cinci categorii. Prima este documentaia de proiectare, care descrie funciile programului. Urmtoarea este documentaia codurilor folosite, inclusiv algoritmii i detaliile asupra structurii modulare. Al treilea pachet este un manual al operatorului, care include exerciii i exemple simple pentru nceptori. A patra categorie este un manual de referine care conine informaii de utilizare pentru operatorii ocazionali, dar avnd experien n programare. A cincea este aa-numitul on line help care poate fi apelat de utilizator n timpul rulrii programului. De cele mai multe ori, o documentaie complet este greu de gsit la variantele iniiale de program, urmnd ca aceasta s se completeze pe parcurs. Ideal ar fi ca interfaa grafic a programului s fie att de clar i sugestiv, nct s nu fie necesar nici o documentare, mai ales pentru utilizatorii cu experien. Dup o scurt perioad de acomodare, utilizatorul trebuie s se descurce satisfctor, fr a folosi prea mult "on line help"-ul.
21