Una dintre primele aplica ții ale tehnicilor de prelucrare a imaginilor a fost îmbunătățirea transmisiei imagin ilor de ziar în form ă digitală, prin… [611852]

1

Capitolul 1

INTRODUCERE ÎN
PRELUCRAREA IMAGINILOR

1.1 ISTORIC

Una dintre primele aplica ții ale tehnicilor de prelucrare a imaginilor a fost
îmbunătățirea transmisiei imagin ilor de ziar în form ă digitală, prin intermediul cablului
submarin, între Londra și New York. Introducerea sistemului Bartlane de transmisie
prin cablu a imaginilo r în primii ani de dup ă 1920 a dus la reducerea timpului de
transmisie peste Atlantic de la mai mult de o s ăptămâna la mai pu țin de 3 ore.
Echipamente speciale de editare codau imag inea în vederea transmisiei prin cablu și
apoi o reconstruiau la recep ție. Primele sisteme de transmisie Bartlane erau capabile s ă
codeze imagini având 5 ni vele distincte de str ălucire; în 1929, num ărul acestora a
crescut la 15. Îmbun ătățirea metodelor de prelucrare în ve derea transmisiei de imagini au
continuat în urm ătorii 35 de ani. Cu toat e acestea, a fost necesar ă folosirea
capabilităților oferite de calculatoarele numerice și de programele spa țiale pentru a
aduce în prim-plan poten țialul conceptelor de prelucra re a imaginilor. Tehnici de
îmbunătățire a unor imagini transmise din spa țiul cosmic s-au folo sit, spre exemplu,
pentru corectarea diferitelor tipuri de dist orsiuni ale imaginilor preluate cu o camer ă
video de la bordul sta ției spațiale Ranger 7. Asemenea tehnici au servit ca baz ă pentru
optimizarea metodelor de restaurare și îmbunătățire a imaginilor recep ționate de la
misiunile spa țiale Surveyor, Mariner și Apollo.
Din 1964 pân ă în prezent progresele în domeniul prelucr ării imaginilor au fost
impresionante. Pe lâng ă aplicațiile în tehnica spa țială, aceste tehnici se folosesc, la ora
actuală, într-o multitudine de alte aplica ții, care necesit ă folosirea unor metode capabile
să îmbunătățească informația vizuală, în vederea optimiz ării analizei și interpret ării de
către observatorul uman. În medicin ă, spre exemplu, metodele computerizate de

Cap.1 Introducere \n prelucrarea imaginilor
2 prelucrare fac posibil ă îmbunătățirea contrastului sau codarea intensit ăților (nivelelor de
gri) imaginilor monocrome în culori, pentru u șurarea interpret ării radiografiilor sau a
altor tipuri de imagini biomedicale. Tehnici de îmbun ătățire similare se folosesc și pentru studiul polu ării cu ajutorul
imaginilor aeriene sau preluate de la sateli ți. Metode de îmbun ătățire și restaurare se
folosesc și pentru prelucrarea imaginilor degr adate ale unor obiecte irecuperabile
(tablouri, spre exemplu) sau în experimente prea costisitoare pentru a fi repetate. În
fizică a devenit obi șnuită folosirea calculatoarelor pentru restaurarea și îmbunătățirea
imaginilor, în experimente din domeniul plasmei de energie înalt ă sau microscopiei

a b

c d

e f

g h

PRELUCRAREA DIGITAL~ A IMAGINILOR
3
Fig. 1.1 Exemple de prelucr ări digitale de imagini

electronice. Aplica ții similare se întâlnesc în astronomie, biologie, medicin ă nucleară,
criminalistic ă, apărare și, nu în ultimul rând, în industrie.
Figura 1.1. prezint ă câteva exemple tipice de rezultate ce se pot ob ține folosind
tehnici de prelucrare digital ă. Imaginile originale sunt cele din stânga, în dreapta fiind
prezentate imaginile ob ținute în urma prelucr ării. 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 sc ăzut este mult mai u șor de
interpretat dup ă îmbunătățirea de contrast (fig.1. 1.d). Figura 1.1.f prezint ă rezultatul
filtrării unei imagini înce țoșate (fig.1.1.e), iar figura 1.1.h ilustreaz ă posibilitatea
extragerii anumitor regiuni de in teres dintr-o imagine tomografic ă (fig.1.1.g), în vederea
reprezentării tridimensionale.
Exemplele prezentate ilustreaz ă rezultate ale prelucr ării digitale de imagini
realizate în scopul îmbun ătățirii interpret ării lor de c ătre ochiul uman.
Un alt domeniu major de aplica ție al tehnicilor de prelucrare a imaginilor este
analiza lor cu ajutorul calculatorului. Sc opul, în acest caz, este extragerea informa ției
într-o form ă cât mai potrivit ă pentru prelucrarea pe calc ulator. Adesea, rezultatele
analizei prezint ă asemănări foarte reduse cu caracteristicile obi șnuite ale imaginilor,
indispensabile ochiului uman pentru interpretare sau în țelegere. Domeniile tipice de
utilizare a analizei pe calculator sunt recunoa șterea caracterelor, viziunea artificial ă
industrial ă, folosită pentru asamblarea și inspecția vizuală a produselor, prelucrarea
automată a amprentelor, analizele automa te de imagini biomedicale și procesarea cu
ajutorul calculatorului a imaginilor sa telitare în vederea prognozelor meteo.

1.2 REPREZENTAREA IMAGINILOR DIGITALE

Termenul de imagine monocrom ș (imagine alb-negru) sau, simplu, imagine , se
referă la funcția de intensitate bidimensional ă f(x,y) , unde x și y reprezint ă coordonatele
spațiale iar f este func ția proporțională în fiecare punct (x,y) proporțională cu strălucirea
sau cu nivelul de gri al imaginii în acel punct. Figura 1.2 ilustreaz ă convenția de axe
folosită în această lucrare.
Originea
axelorx
f(x,y)

Fig. 1.2 Convenția axelor în reprezenta rea imaginilor digitale

O imagine digital ă este o imagine f(x,y) care a fost discretizat ă atât în coordonate
spațiale cât și ca strălucire. Ea poate fi considerat ă ca o matrice la care indicele
rândurilor și coloanelor identific ă un punct din imagine, iar elementul corespunz ător al

Cap.1 Introducere \n prelucrarea imaginilor
4 matricii reprezint ă nivelul de gri în punctul respec tiv. Elementele unei asemenea re țele
digitale sunt numite elemente de imagine sau pixeli .
În general, în diferite aplica ții se folosesc imagini de diferite forme și dimensiuni
dar, după cum se va vedea în capitolele urm ătoare, prelucrarea digital ă este mult
facilitată dacă se folosesc matrici p ătratice iar num ărul nivelelor de gri se alege ca putere
întreagă a lui 2. De exempl u, o dimensiune tipic ă a imaginilor dig itale, comparabil ă ca și
calitate cu cea a imaginilor TV alb-negru, este de 512×512 pixeli av ând 128 nivele de
gri. Cu excep ția unor paragrafe din capitolele 6 și 8 referitoare la îmbun ătățirea
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, având forma prezentat ă anterior.

1.3 ETAPE ALE PRELUCR~RII DE IMAGINI

Prelucrarea digital ă a imaginilor presupune o succes iune de etape de procesare
hard și soft, precum și de implementare a unor metode teoretice. Scopul paragrafului
este de a eviden ția etapele fundamentale necesare pentru realizarea unor prelucr ări de
imagini. Evident, discu ția este mult mai util ă dacă luăm în considerare, cu titlu de
exemplu, o “ temă” concret ă: o aplica ție relativ u șor de conceptualizat f ără a avea
cunoștințe preliminare de imagistic ă este utilizarea prelucr ărilor de imagini în citirea
automată de texte (spre exemplu, a etichetelor). Figura 1.3 ilustreaz ă faptul că obiectivul
final este g ăsirea unei solu ții pentru o problem ă, cu mijloace ținând de prelucrarea de
imagini. În exemplul avut în vedere, “ problema ” este textul de pe etichete, iar
“obiectivul ” este citirea și recunoa șterea textului de pe fiecare etichet ă. Rezultatul dorit
în acest caz este, în final, un șir de caractere alfanumerice.

SegmentareReprezentare
și descriere
Preproce-
sare
Achiziție
de imagine Baza de cunoștințe
Recunoaștere
și
inter pretare Rezult a

Fig.1.3 Etape fundamentale în prelucrarea digital ă de imagini

Prima etap ă în acest proces este achizi ția de imagine. Aceasta necesit ă un senzor
de imagine și capacitatea de a digitiza semnalul de la ie șirea acestuia. Senzorul poate fi
o cameră de televiziune alb-negru sau co lor, care produce o imagine complet ă la fiecare
1/25 secunde, sau o camer ă cu scanare liniar ă, producând la un moment dat o singur ă
linie dintr-o imagine; în acest caz, mi șcarea cu vitez ă uniformă a obiectului prin fa ța
scanerului duce la ob ținerea unei imagini bidimensionale. Dac ă la ieșirea camerei
rezultă un semnal analogic, este necesar ă digitizarea lui cu ajutorul unui converter
analog-numeric. Natura senzor ului utilizat este dependent ă de aplica ția avută în vedere

PRELUCRAREA DIGITAL~ A IMAGINILOR
5
– în cazul exemplului luat în considerare, un scaner liniar este su ficient pentru achizi ția
datelor.
Dup ă obținerea imaginii digitale, urm ătoarea etap ă este preprocesarea acesteia.
Scopul primordial al preproces ării este îmbun ătățirea imaginii în sensul m ăririi șanselor
de succes ale prelucr ărilor ulterioare. În exemplul dat, preprocesarea const ă în aplicarea
unor algoritmi de îmbun ătățire a contrastului, cur ățare de zgomot și izolare a regiunilor
a căror textur ă (structur ă a pixelilor) indic ă o asemănare cu informa ția alfanumeric ă
avută în vedere.

Etapa urm ătoare const ă în segmentarea imaginii, respectiv împ ărțirea acesteia în
părți constituente sau în obiecte distincte. În ge neral, segmentarea este una dintre cele
mai dificile etape în prelucrarea digital ă de imagini. Pe de o parte, algoritmii sofistica ți
de segmentare, cu șanse mari de selectare a re giunilor de interes, necesit ă calcule
complicate și, deci, un timp îndelungat. Pe de alt ă parte, îns ă, algoritmii simpli sau
insuficient elabora ți nu se pot aplica cu șanse mari de succes. În cazul recunoa șterii de
caractere, rolul-cheie al segment ării este extragerea caracterelor individuale sau ale
cuvintelor de pe fondul imaginii. Rezultatul segment ării este, de obicei, un șir de intensit ăți ale pixelilor,
reprezentând fie conturul regiun ii 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 urm ărește evidențierea caracteristicilor de form ă (colțuri, inflexiuni, etc.), pe
când reprezentarea ca regiune este mai potrivit ă când se urm ărește studiul
caracteristicilor interne ale regiunii, cu m ar fi textura sau structura intern ă. În unele
aplicaț
ii, cele dou ă tipuri de reprezentare coexist ă, ca în cazul recunoa șterii de caractere,
care necesit ă adesea algoritmi baza ți pe forma conturului, pe structura și pe alte
proprietăți interne ale regiunii analizate.
Alegerea modalit ății de reprezentare a datelor este urmat ă de specificarea
metodei de descriere a acestora, astfel încât caracteristicile de interes s ă fie scoase în
evidență cu prioritate.
Descrierea sau selec@ia caracteristicilor reprezint ă tocmai procesul de selectare
a caracteristicilor, având ca rezultat o informa ție cantitativ ă sau caracteristici ce
diferențiază o clasă de obiecte de altele. Ultima etap ă, ilustrată în figura 1.3, este
constituită de recunoa șterea și interpretarea datelor. Recunoaîterea reprezint ă procesul
de clasificare a unui obiect într-o anumit ă categorie, pe baza informa ției (descriptori )
rezultate în urma descrierii imaginii segmentate. Interpretarea presupune g ăsirea unei
anumite semnifica ții pentru un ansamblu de obiecte re cunoscute. În exemplul avut în
vedere la începutul paragrafului, recunoa șterea unui caracter (de exemplu, litera a)
necesită asocierea descriptorilor acestui caracter cu categoria "a". Interpretarea tinde
spre asocierea unui în țeles pentru un set de asemenea caractere catalogate anterior.
Pân ă acum nu s-a f ăcut nici o referire la necesitatea unor cuno ștințe anterioare
sau la interac țiunea dintre baza de cunoîtin@e și celelalte module de prelucrare din
fig.1.3. Cuno ștințele necesare pentru rezolvarea unei anumite probleme prin prelucrarea
digitală de imagini sunt codificate în sist em sub forma unei baze de date. Cuno ștințele
pot fi de tipul simplu, de exemplu detalierea unei regiuni dintr-o imagine, unde se
presupune c ă este localizat ă informația de interes, limitându-se în acest fel procedura de

Cap.1 Introducere \n prelucrarea imaginilor
6 căutare a respectivei informa ții. Cunoștințele pot avea îns ă și un caracter mult mai
complex, ca de exemplu o listă a defectelor interne mai importante ale unor produse, în
aplicații de tipul inspec ției automate sau o bază de date de imagini conținând imagini de
înaltă rezoluție preluate de la sateli ți, în cazul aplica țiilor de tip detec ție satelitar ă. Pe
lângă faptul că dirijează operațiile din fiecare modul de prelucrare, baza de cuno ștințe
are și rolul de a controla interac țiunea dintre diferite module. Distinc ția este făcută în
figura 1.3 prin s ăgețile cu vârf dublu dint re baza de cuno ștințe și modulele de prelucrare,
spre deosebire de s ăgețile cu un singur vârf ce fac leg ătura între modulele de prelucrare
propriu-zise. Aceast ă schemă-bloc subliniaz ă și faptul c ă între modulele de prelucrare
comunicarea se face în func ție de cunoa șterea anterioar ă a ceea ce ar trebui s ă se obțină,
de fapt, ca rezultat final al prelucr ării. De exemplu, pent ru ca un echipament s ă poată
recunoaște un șir de caractere ca fiind un cod ZIP, sistemul trebuie s ă fie dotat cu
cunoștințe legate de semnifica ția localiz ării șirului de caractere în compara ție cu alte
elemente alfanumerice din imagine. Baza de cuno ștințe permite și asigurarea unei reac ții între module, pe lâng ă
dirijarea opera țiilor în modulele de preluc rare. Spre exemplu, dac ă șirul care ar trebui
detectat este compus din 5 caractere, un șir de numere având loca ția corectă dar compus
din doar 4 caractere (dintre car e unul nu a putut fi recunoscu t) poate determina modulul
de interpretare s ă "suspecteze" faptul c ă două caractere sunt lipite. O cerere de reac ție,
survenită prin intermediul bazei de cuno ștințe spre modulul de segmentare, poate
solicita o nou ă segmentare, eventual cu al ți parametri, a imaginii propuse spre analiz ă.
Vizualizarea imaginii rezultate în urma prelucr ării se poate face dup ă fiecare etap ă a
acesteia. Este de remarcat, de asemenea, c ă majoritatea aplica țiilor prelucr ă
rilor de imagini
au o structur ă mult mai simpl ă și nu necesit ă interacțiuni de complexitatea celor
prezentate în fig.1.3. De fapt, în unele c azuri nici nu sunt necesare toate modulele
prezentate în figur ă. Spre exemplu, în aplica ții de îmbun ătățiri de imagini în vederea
măririi percep ției vizuale a observatorului uman, prelucrarea se opre ște, de obicei, dup ă
etapa preproces ării. În general, prelucr ările care includ recunoa ștere și interpretare – spre
exemplu recunoa șterea unor caractere – sunt asociate cu aplica ții de analiz ă a imaginilor,
unde obiectivul este extragerea automat ă sau semiautomat ă de informa ții din imagini.

1.4 SISTEME DE PRELUCRARE DIGITAL~ A IMAGINILOR

Elementele unui sistem de uz general, capabil s ă realizeze prelucr ări de imagini
de tipul celor prezentate în paragraful an terior, sunt prezentate în figura 1.4.

PRELUCRAREA DIGITAL~ A IMAGINILOR
7
Comunicare
Achizitii de imagini Redare
Camera
video
Scaner Monitor TV
Aparat
foto
Imprimanta
Prelucrare
Calculator
Memorare
Discuri
opticeCasete
video
Benzi
magnetice Discuri
magnetice

Fig.1.4 Elementele func ționale de baz ă ale unui sistem de prelucrare digital ă a imaginilor

Achiziția imaginilor

În vederea achizi ționării de imagini și transform ării lor în imagini digitale sunt
necesare dou ă elemente: un dispozitiv (senzor) sensibil într-o anumit ă gamă a spectrului
energetic electromagnetic (d e exemplu benzile corespunz ătoare razelor x, ultraviolete,
vizibile sau infraro șii) și care produce la ie șire un semnal electric propor țional cu
energia acestor radia ții și un digitizor , care converte ște semnalul analogic de la ie șirea
senzorului în form ă digitală.
Spre exemplu s ă luăm un sistem de achizi ție cu raze x: ieșirea unei surse de
radiații x este direc ționată spre un corp, iar un mediu sensibil la raze x se plaseaz ă pe
partea opus ă a acestuia. Mediul capteaz ă, în acest fel, o imagin e a materialelor (de pild ă
oase, țesuturi) din care este constituit corpul respectiv și având grade diferite de
absorbție a radia țiilor x. Mediul în sine poate fi o pelicul ă sensibilă la raze x, o camer ă
TV combinat ă cu un convertor raze x – fotoni sau o re țea de detectoare de raze x din a
căror semnale de ie șire se reconstruie ște, prin combinare, imaginea digital ă.
O categorie important ă de videosenzori o constituie cei folosi ți în domeniul
vizibil: camerele video cu vidicon sau cu dispozitive videocaptoare integrate de tip
CCD. 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, creaz ă o
diferență de poten țial care produce pe un electr od colector un curent propor țional cu

Cap.1 Introducere \n prelucrarea imaginilor
8 relieful de str ăluciri de pe fa ța anterioar ă a țintei. Imaginea digital ă este obținută prin
eșantionarea și cuantizarea acestui semnal.
Dispozitivele videocaptoare integr ate 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.

Registru de transfer
Poartă
N Fototranzistori 3 2 1
Poartă
Registru de transfer Poartă
de ieșireAm plificator
Ieșire

Fig. 1.5. a Dispozitiv videocaptor CCD liniar

Registru de transfer orizontal
P o a r t ă
F
o
t o
r
e g
i
s t
r
u
P
o
a r t
ă

Reg.

de

transf.

verti-
cal Poartă
de ieșire

Ampli-
ficator
Ieșire

Fig. 1.5.b Dispozitiv videocaptor CCD matricial

Un senzor matricial este com pus 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 ").

PRELUCRAREA DIGITAL~ A IMAGINILOR
9
După cum se poate observa în figura 1. 5.a., un dispozitiv videocaptor liniar
(scaner liniar) CCD este compus din șiruri de fotocapacit ăți MOS, por ți de transfer a
sarcinilor din elementele fotosensibile în regi ștrii de transfer și o poartă de ieșire folosit ă
pentru transferul semnalului din regi ștrii de transfer spre un amplificator de ie șire.
Dispozitivele videocaptoare CCD matriciale sunt similare cu senzorii liniari, cu
excepția organiz ării fotocapacit ăților într-o matrice și a porților/regiștrilor de transfer
vertical care separ ă între ele coloanel e de fotocapacit ăți (fig.1.5.b). Con ținutul
fotoelementelor pare sunt transferate secven țial în regi ștrii de transfer vertical și apoi în
registrul de transfer orizontal. La rândul lui, acesta transfer ă, prin intermediul unei por ți,
conținutul unei linii într- un amplificator de ie șire. Repetând procedura pentru liniile
impare se obține al doilea câmp al unui cadru de imagine între țesută. Scanarea se repet ă
în același mod de 25 de ori într-o secund ă.
Senzorii liniari CCD au rezolu ții cuprinse între 256 și 4096. Rezolu ția senzorilor
CCD matriciali variaz ă între 32×32 elemente pentru cele de performan țe reduse și
256×256 elemente pentru un senzor de rezolu ție medie. Pe pia ță se oferă și senzori de
rezoluție mai ridicat ă, 640×480 și chiar 1280×1024 elemente , dar la un pre ț mai ridicat.
Cu titlu de noutate, au ap ărut senzori care folosesc mi șcarea mecanic ă a dispozitivului
integrat CCD pentru a ob ține rezolu ții de ordinul 2048×2048 elem ente. Matricile CCD
sunt înglobate în camere video, semnalul de ie șire fiind semnalul standard folosit în
sistemele TV. Pentru ob ținerea unei imagini digitale se impune, la fel, e șantionarea și
cuantizarea acesteia.

Memorarea imaginilor digitale

O imagine digital ă pe 8 biți, de dimesiuni 1024×1024 pixeli, necesit ă un spațiu 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 aplica ții de prelucrare de imagini poate fi clasificat ă în trei
categorii principale: memorarea pe termen scurt pentru nevoile proces ării propriu-zise,
memorarea on-line pentru accesare relativ rapid ă a imaginilor și memorarea țn vederea
arhivșrii, caracterizat ă prin faptul c ă accesul la imagini este mai pu țin frecvent.
Cea mai folosit ă metodă de memorare pe termen sc urt este folosirea memoriei
calculatorului. O a doua, utilizând pl ăci de memorie specializate, numite " memorii de
cadru" (frame buffers ) permite memorarea unuia sau mai multor cadre, cu men țiunea
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 deplasări
verticale ("scroll ") sau orizontale ("pant") ale acesteia. Capacitatea de memorie
necesară pentru o memorie de cadru este limitat ă de dimensiunile fizice ale pl ăcii ș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 având capacit ăți de sute de Mbytes sau chiar Gbytes se folosesc deja în mod
obișnuit, chiar în calculatoare de uz general. O tehnologie mai recent ă, numită
memorare magneto-optic ș (MO) utilizeaz ă un laser și tehnologii speciale de ob ținere a
materialelor, în vederea ob ținerii unei capacit ăți 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

Cap.1 Introducere \n prelucrarea imaginilor
10 serial se utilizeaz ă mai rar. Seturi de di scuri optice de 30-100 unit ăți pot oferi o solu ție
eficientă pentru memorarea unei cantit ăți mari de informa ție "on-line" atunci când
aplicațiile de prelucrare digital ă a imaginilor necesit ă capacități mari de scriere – citire.
Memorarea în vederea arhiv ării se caracterizeaz ă prin capacit ăți foarte mari de
memorare necesare, dar cu accesare mult mai pu țin frecvent ă. Benzile magnetice și
discurile optice reprezint ă cea mai uzual ă soluție tehnologic ă utilizată în acest caz.
Benzi magnetice de înalt ă densitate (2500 bytes/cm) perm it memorarea unei imagini pe
o lungime de band ă de 4 m., dar problema principal ă rămâne durata de p ăstrare a
informației, care este limitat ă (aproximativ 7 ani) și necesitatea asigur ării unui spa țiu de
depozitare controlat. Discurile optice în tehnologia WORM ("write-once-read-many ")
permit stocarea de informa ții de ordinul a 1 Gbyte pe discuri de 5 1/4 inch. Spre
deosebire de discurile magneto-optice, disc urile WORM sunt disponibile în variante
având dimensiuni și capacități de memorare mai mari (6 G bytes pe discuri de 12 inch,
respectiv 10 Gbytes pe discuri de 14 inch). De și nu sunt refolosibile prin ștergere,
discurile WORM au o durat ă de păstrare a informa ției care dep ășește 30 ani, f ără
condiții speciale de depozitare. În configura ția de " jukebox ", aceste discuri se pot folosi
și ca dispozitive de stocare "on-line", în aplica ții care necesit ă în principal opera țiuni de
tip "read-only". O capacitate de memorie de 1 Tbyte, respectiv 1 milion de imagini pe 8
biți, de dimensiuni 1024×1024, este posibil ă folosind un " jukebox " care ocup ă un volum
sub 4 m3.
În situa ția în care memorarea imaginilor se poate face și sub form ă analogic ă,
mediile de memorare tipice utilizate în aplica țiile 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 excep ția achiziției și redării
imaginilor, majoritatea celorlalte func ții de prelucrare pot fi implementate soft.

Singurele motiva ții ce justific ă, în anumite aplica ții, implementarea hard a
anumitor algoritmi sunt necesitatea asigur ării unei viteze mari de prelucrare sau
depășirea anumitor limit ări fundamentale ale calculatoarelor. Spre exemplu, pentru
prelucrarea imaginilor ob ținute în microscopia electronic ă, se impune reducerea
zgomotului din imagini prin medierea ac estora de-a lungul unui set de imagini și cu o
viteză corespunz ătoare ratei video ( 25 de cadre/secund ă). Arhitectura magistralelor
majorității calculatoarelor nu poate gestiona cantitatea de informa ție la rata de transfer
cerută de aceast ă aplicație și, din aceast ă cauză, sistemele de prelucrare de imagini sunt,
la ora actual ă, combina ții de calculatoare uzuale și plăci specializate de prelucr ări hard,
operațiile fiind supervizate de c ătre pachetele de programe in stalate pe calculator. Cu
toate că există încă o piață important ă pentru sisteme de prelucrare de imagini foarte
performante, pentru aplica ții de mare anvergur ă cum ar fi prelucrarea imaginilor
satelitare, tendin ța de miniaturizare și de combinare a calculatoar elor de uz general cu
echipamente (pl ăci) specializate în prelucrarea hard a imaginilor câ știgă din ce în ce mai
mult teren. În particular, principa lul echipament hard ce se adaug ă la arhitectura clasic ă
a PC-urilor const ă într-o combina ție de digitizor și registru de imagine (" frame buffer "),
pentru digitizarea și stocarea temporar ă a imaginilor, o a șa-numită unitate de procesare
aritmeticș/logicș (ALU) utilizată pentru opera țiile de tip aritmetic și logic în timpi

PRELUCRAREA DIGITAL~ A IMAGINILOR
11
comparabili cu ratele de transfer video și unul sau mai multe regist re de imagine, pentru
asigurarea unui acces rapid la date în timpul prelucr ării.
Din punctul de vedere al pr ogramelor utilizate, pe pia ță este disponibil la ora
actuală un număr semnificativ de asemenea progr ame de prelucrare. În combina ție cu
alte pachete de programe (de grafic ă computerizat ă, de exemplu) ele constituie un foarte
util punct de plecare pentru solu ționarea unor probleme specifice de prelucrare de
imagini. Solu țiile obținute prin implementare soft sunt, ulterior, transferate ( portate ) pe
plăci specializate de prelucrare hard pentru ob ținerea unei viteze superioare.
Prelucr ările de imagini se caracterizeaz ă prin faptul c ă folosesc tehnici specifice;
cu toate acestea, metode care duc la rezultate foarte bune în unele aplica ții, sunt total
inadecvate în altele. Ceea ce pune, de fapt, la dispozi ție hard-ul și programele soft
disponibile la ora actual ă, este un punct de pornire în dezvoltarea unor aplica ții
specifice, care necesit ă însă o munc ă de cercetare și dezvoltare foarte serioas ă.
Problemele care se trec în revist ă în capitolele urm ătoare au în vedere tocmai s ă pună la
dispoziția doritorilor uneltele necesare acestui tip de activit ăți.

Transmisia imaginilor digitale

Problema comunica ției î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 comunica ții locale este oferit, în general, de
facilitățile rețelelor de calculatoare, cu toate c ă rata de transmisie necesar ă pentru
imagini este mult mai mare decât pentru alte tipuri de transmisii de date. Comunicarea la distan țe mari reprezint ă, însă, și la ora actual ă o problem ă
deschisă și eforturile ce se fac în acest sens din punctul de vedere al cercet ării și
dezvoltării sunt uria șe. Transmisia prin intermediul lin iei telefonice a unei imagini de
512×512 pixeli pe 8 bi ți cu rata de 9600 bi ți/sec. ar necesita aproape cinci minute.
Folosirea transmisiei prin radia ție, în radiofrecven ță, permite ob ținerea de rate de
transmisie mult mai mari, dar este și foarte scump ă. Capitolul 10 al prezentei lucr ări
prezintă tehnici de compresie îi decompresie a imaginilor, tehnici ce ofer ă soluții în
acest domeniu.

1.5 PROGRAME DE PRELUCRARE DIGITAL~ A IMAGINILOR

Alte capitole ale prezentei lucr ări se refer ă la algoritmii folosi ți în prelucrarea
imaginilor cu ajutor ul calculatorului și la folosirea echipamente lor hard dedicate.Acest
paragraf se refer ă însă la organizarea programelor (“software” ) care implementeaz ă
operațiile de prelucrare a imaginilor. În particular este luat în considerare modul în care
sunt concepute, dezvoltate și prezentate pentru utilizare aceste programe.
Cunoașterea tehnicilor de implementa re a programelor este util ă atât pentru
producătorii de soft din domeniul prelucr ărilor de imagini cât și, în acea și măsură,
pentru utilizatori. Produc ătorii de soft pot evita astfel pierderea de timp în dezvoltarea
acestor tipuri de programe, iar utilizatorii pot g ăsi un ajutor pentru evaluarea corect ă a
programelor de pe pia ță în conformitate cu preten țiile lor. Capitolul ofer ă o privire de
ansamblu asupra acestor caracteristici vitale ale programelor.
Scrierea unui program de prelucr ări de imagini, mai ales in forma sa cea mai
completă (de exemplu, pentru o prezentare comercial ă), presupune anumi ți pași. Primul

Cap.1 Introducere \n prelucrarea imaginilor
12 constă în stabilirea func țiilor de baz ă și a opera țiilor caracteristice ( proiectarea
conceptual ă) urmată de identificarea celor mai potrivi ți algoritmi pentru implementarea
acestor func ții de bază. Apoi, prin arhivarea programului, se ob ține o prim ă versiune a
programului. Dup ă lansarea acestui produs urmeaz ă faza test ării lui pentru eliminarea
problemelor care apar, fiind posibil ă încorporarea unor idei noi ce pot conduce la
mărirea fiabilit ății, a performan țelor și, nu în ultimul rând, a vandabilit ății produsului.
Se recomand ă ca, odat ă cu programul, s ă fie lansat ă și documenta ția de folosire a
acestuia și organizarea de cursuri pentru înv ățarea și utilizarea lui. În ultima etap ă
activitățile vor include servicii de între ținere și de suport tehnic. Un program aplicativ
de prelucr ări de imagini este diferit de un progr am de dezvoltare (care are un caracter
mai general), prin faptul c ă primul tip ofer ă soluții hard/soft pentru probleme (aplica ții)
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, utilizând ca
sisteme de operare MS-DOS, PS/2, WINDOWS sau IBM/OS2, sta@ii grafice,
utilizând, în general, sisteme de operare UNIX sau XWINDOWS sau, în cazul unor
aplicații mai preten țioase, sisteme de calculatoare foarte puternice ( “mainframe” ), cu
resurse foarte mari și utilizatori multipli. Sistemele pot fi organizate ca re țele locale de
calculatoare (LAN) sau pot accesa alte re țele la mare distan ță (WAN).

Formate de imagine

Programele dedicate prelucr ărilor de imagini implic ă manipularea unui num ăr mare de
fișiere de imagine,de dimensiuni foarte mari. Acest lucru implic ă atât compresia cât și
conversia acestor fi șiere, întrucât adesea este necesar ca utilizatorii s ă schimbe date prin
intermediul lor. Organizarea fi șierelor de imagini se face în formate standard. Cele mai
utilizate programe de prelucr ări de imagini pot citi și salva imagini în câteva dintre
formatele standard, iar altele pot s ă facă conversia dintr-un format în altul. Ele utilizeaz ă
în general extensia fi șierului pentru a recunoa ște 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 adi țional la datele
de imagine,care include date importante re feritor la crearea formatului respectiv.
Dispozitivele de afi șare monocrome folosesc convert oare digital/anologice de 8
biți/pixel, generând semnalul video care comand ă strălucirea pixelilor afi șați pe ecran.
Pentru dispozitivele de afi șare monocrome deci, num ărul de nivele de gri este de
maximum 256.

TABEL 1.1 FORMATELE DE IMAGINE STANDARD

Nume Sigl ă Utilizare

PRELUCRAREA DIGITAL~ A IMAGINILOR
13

Tagged image file format *.TIF DOS,UNIX, și imagini sub Macintosh
Encapsulated PostScript *.EPS Format dedicat publica ților industriale
Graphical interchange format *.GIF Format grafic comprimat Bit-Mapped format *.BMP Format realizat de Microsoft Presentation manager *.BMP Format BitMap dedicat IBM OS/2 Macintosh *.PICT Pentru imagini Apple Macintosh

Dispozitivele de afi șare în culori folosesc un triplet de 8 bi ți pentru cele trei
culori fundamentale, convertorul furnizâ nd trei semnale prin care se controleaz ă atât
strălucirea cât și crominan ța imaginii afi șate. Rezult ă de aici posibilitatea vizualiz ării
unui num ăr de 24 milioane de culori. Datorit ă imperfec țiunii sistemului de afi șare și
limitărilor organului vizual a uman, num ărul culorilor ce pot fi distinse este considerabil
mai mic. Prelucr ările de imagini nu implic ă doar sisteme de vizualizare color sau alb/negru
ci și rezoluții fotometrice diferite (num ăr de nivele de gri sa u de culori). Pentru
imaginile monocrome, num ărul nivelelor de gri este în general de 2, 16 sau 256,
corespunz ător unui num ăr de 1, 4 respectiv 8 bi ți/pixel. Evident, se pot folosi și rezoluții
intermediare sau mai mari, dar cele prezentate se preteaz ă cel mai bine împachet ării în
octeți (bytes).
Paleta de culori este un tabel cu triple ți RGB, care specific ă culoarea fiec ărui
pixel afișat. O imagine color cu 4 bi ți/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
biți/pixel poate avea o palet ă de 256 culori , valoarea fiec
ărui octet citit fiind un index
în această paletă. Dacă se lucreaz ă însă cu imagini de 24 bi ți/pixel, nu se mai poate
selecta din spa țiul culorilor o palet ă, deoarece num ărul de culori este egal cu num ărul
maxim de culori ce pot fi definite . Paleta este, de obicei, inclus ă în fișierul de date
aferent unei imagini și controleaz ă dispozitivul de afi șare atunci când este vizualizat ă.

Interfața cu utilizatorul

Primele calculatoare nu aveau practic o interfa@ș cu utilizatorul , programarea
făcându-se foarte dificil, prin intermediul codurilor specifice ma șinii de calcul. De și
flexibilă, această modalitate este mai degrab ă împovărătoare pentru utilizator.
Mai recent a ap ărut tendin ța de a dezvolta interfe țe 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 aplica ții pentru
prelucrări de imagini. Cele mai moderne pachete de programe folosite la dezvoltarea de
aplicații sunt acelea care ofer ă utilizatorului putere de calcul și flexibilitate, simultan cu
ușurința lucrului cu calculato rul. Proiectarea interfe țelor cu utilizatorul se bazeaz ă pe
intuiția acestuia, ideea de baz ă fiind de a le face cât mai u șor de invățat și de utilizat. Pe
lângă faptul că sunt, de obicei, livrate cu o documenta ție complet ă, aceste interfe țe sunt
prevăzute cu meniuri explicative ("help"-uri).

Interpretorul de comenzi

Cap.1 Introducere \n prelucrarea imaginilor
14 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 folose ște un limbaj în exclusivitate
textual și pretinde utilizatorului cunoa șterea acestuia, fie din memorie, fie din
documenta ție.

Fig.1.6 Interpretor de comenzi

Fiecare comand ă este interpretat ă, fiind lansat ă o rutină corespunz ătoare, ce va
rezolva o anumit ă problem ă specifică. Dezavantajul este c ă nu se pot oferi indica ții
programatorului referitor la corectit udinea programului decât în timpul execu ției
acestuia. Astfel, programatorul are neap ărată nevoie de un material ajut ător pentru
însușirea cât mai corect ă a noțiunilor și metodelor de programare, mai ales în faza de
învățare a acestuia.
Situa ția poate fi u șor îmbunătățită prin folosirea unor fi șiere text de tipul " *.bat "
("batch files" sau "script files"), care specific ă o serie de pa și de prelucrare și pot fi
apelate printr-o singur ă comandă. Un set bogat de asemenea fi șiere poate face lucrul cu
interpretorul de comenzi mult mai facil.

Interfața meniu a programului

Incluse în a doua genera ție, interfe@ele de tip meniu oferă pe ecranul
monitorului (în interior ul unor ferestre) o list ă de facilit ăți puse la dispozi ția
utilizatorului, care pot fi selectate sau executate direct cu ajutorul unor taste definite în
acest scop (fig.1.7). Deci utilizat orul nu va mai fi nevoit s ă memoreze instruc țiuni sau s ă
apeleze permanent la documenta ție pentru a putea lucra cu programul.
Interfa ța de tip meniu lucreaz ă cu poantori grafici de diferite forme și dimensiuni
(mouse, trackball, glidepoint). În acest m od, utilizatorul poate selecta foarte u șor
butoane, op țiuni, sau comenzi pe care nu mai este nevoit s ă le scrie de la tastatur ă.
Meniul poate fi con ceput ca o structur ă ierarhică, prin selectarea unui sub-meniu pentru
anumite op țiuni ce înglobeaz ă la rândul lor alte op țiuni ș.a.m.d. Fiecare meniu sau, dup ă
caz, sub-meniu poate avea asociat ă o opțiune de ajutor (“help”) care o dat ă selectată
oferă informații referitor la ac țiunea în curs de desf ășurare.

PRELUCRAREA DIGITAL~ A IMAGINILOR
15

Fig.1.7 Interfață – meniu

Interfața grafică

A treia genera ție de interfe țe este cea grafic ă (GUI – "graphical user interface").
Utilizatorul poate controla un pr oces prin utilizarea unui limbaj vizual-grafic, în locul
celui textual. Interfa@a grafic ș prezintă de fapt op țiunile pe ecranul monitorului nu
doar sub form ă de text, ca în meniu, ci și sub form ă grafică (simboluri grafice – iconițe).
Aceste iconi țe 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 a șa-numita tehnic ă "drag-and-drop" : folosind mouse-ul,
operatorul "apuc ă" icoana reprezentând im aginea, o deplaseaz ă spre cealalt ă icoană
reprezentând imprimanta și o "lasă"; în acest mod, proces ul de editare se declan șează.
Ar merita subliniat nu numai rapiditatea, în compara ție cu scrierea unei linii de program
pe ecran, dar și atractivitatea mai mare pentru utilizator.

Interfața 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 ni ște simboluri grafice ( glifuri –
"glyphs" ) reprezentând procese, date sau echipamen te. În acest caz, utilizarea tehnicii de
"drag-and-drop" cu ajutorul mouse-ului duce la compunere a pe ecranul monitorului a
unei scheme-bloc descriind succesiunea dorit ă de algoritmi de prelucrare (fig. 1.8).
Fiecare glif are una sau mai multe intr ări și/sau ieșiri care pot fi conectate prin linii
trasate cu dispozitivul poantor la alte glifuri.

Ferestre grafice

Cap.1 Introducere \n prelucrarea imaginilor
16 Posibilitatea de a avea simultan la dispozi ție mai multe dispozitive de afi șare
mărește mult eficien ța sistemului (spre exemplu, dac ă interfața cu utilizatorul și,
respectiv, imaginile sunt afi șate pe monitoare diferite). O alternativ ă mai modern ă este
folosirea unor monitoare de dimensiuni mari pentru a vizualiza mai multe func țiuni
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 monito rul. Imaginile sau func țiunile sunt reprezentate în câte o
fereastră, care poate avea orice dimensiune și poate fi plasat ă oriunde pe ecran. Tendin ța
în proiectarea interfe țelor cu utilizatorul este de a fo losi mai mult limbajul vizual, în
detrimentul celui textual. Se consider ă că o interfa ță grafică este mult mai u șor de
învățat, în special de c ătre începători, dar și mult mai u șor de utilizat de c ătre speciali ști.
Introducerea interfe țelor care permit folosirea vocii pentru comunicare poate fi un ajutor
important, pe lâng ă mouse sau tastatur ă. O asemenea interfa ță verbală este util ă în
special atunci când aten ția operatorului este distribuit ă în mai multe p ărți.

Dezvoltarea de programe (software)

În zilele de pionierat ale calculatoarelor electronice și a prelucr ărilor digitale de
imagini se folosea a șa-zisa programare nestructurat ș. Având doar o concep ție vagă
despre ceea ce vor s ă facă, operatorii generau codul necesar func ționării calculatorului
sintetizându-l din rutine simple. Proiectarea general ă a aplicației era, deci, f ăcută în
paralel cu conceperea programelor. Modulel e se dezvoltau "de jos în sus", adic ă erau
implementate mai întâi rutinele simple, iar ru tinele de nivel mai înalt erau construite
ulterior, pe baza acestora.

PRELUCRAREA DIGITAL~ A IMAGINILOR
17
Prin 1970, câteva dintre pr oblemele legate de acest m od inadecvat de programare
au devenit evidente. În primul rând, complexitatea mereu crescând ă a aplicațiilor a pus
programatorul în im posibilitatea de a urm ări aspectele de baz ă ale programului.
Cercetările din sfera psihologiei eviden țiază faptul că omul nu poate memora mai mult
de cinci pân ă la nouă informații în acela și timp. Aceast ă limitare s-a materializat în
performan țele obținute, în special în cazul unor proiecte de dezvoltare mari. O alt ă
problemă care apare este cea legat ă de încapsularea modulelor program realizate de
programatori diferi ți, fiind necesar ă adaptarea acestora la rutinele celorlal ți. Un program
modern implic ă cooperarea mai multor programatori care lucreaz ă în echip ă. Pașii
importanți în dezvoltarea de soft în domeniul prelucr ărilor de imagini sunt ilustra ți în
tabelul 1.2.

TABEL 1.2 Pa și pentru dezvoltarea programului

1. Analiza problemei
2. Proiectare preliminar ă
3. Definitivarea prototipului
4. Proiectare detaliat ă
5. Implementarea (generarea codurilor)
6. Testare
7. Întreținere

Ace ști pași pot fi parcur și secvențial sau iterativ. Prin defini ție, analiza este
procesul de studiere a unei probleme, cu specificarea caracteristicilor opera ționale ale
soluției. Rezultatul analizei este o specifica ție funcțională a programului care trebuie
scris. Etapa de proiectare propriu-zis ă presupune implementarea acestor specifica ții, cu
adăugarea unor detalii legate de platforma de calcul utilizat ă. Ultima etap ă,
programarea , constă, evident, în scrierea, testarea și depanarea programelor, precum și
a documenta ției aferente. De și senzația este că abordarea în acest fel a dezvolt ării de
programe este prea complex ă, experien ța a dovedit c ă este mult mai eficient ( și mai
ieftin, în ultim ă instanță) să faci un program bun de la început, decât s ă pierzi
suplimentar timp pentru modificarea sau depanarea unuia prost conceput.

Structura programelor aplicative

Un program aplicativ poate lucra în dife rite moduri, depinzând de rolul pe care îl
joacă timpul de calcul in aplica ția respectiv ă. În modul “ batch ”, programul este plasat
într-o coad ă de așteptare și executat atunci când calculatorul este liber. Instruc țiunile
trebue să fie executate secven țial, dar nu este foarte important dac ă între instruc țiuni
există o pauză de câteva nanosecunde sau de câteva minute, rezultatul fiind acela și.
Programele mai pot func ționa într-o buclș de aîteptare a evenimentelor, din care
ies pentru a efectua o anumit ă operație corespunz ătoare evenimentulu i sosit. În mod
normal, un asemenea eveniment es te, spre exemplu, interven ția operatorului, care apas ă
o tastă sau pe butonul mouse-ul ui. Programul baleiaz ă în permanen ță dispozitivele de
intrare și detecteaz ă, respectiv identific ă, fiecare eveniment care apare. Apoi el execut ă
rutina urm ătoare ș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 desf ășurare, cum
ar fi un proces de produc ție. Timpul, în acest caz, joac ă un rol foarte important în

Cap.1 Introducere \n prelucrarea imaginilor
18 execuția programului. O categorie de programe de prelucrare a imaginilor in timp real o
constituie prelucrarea secven țelor video , unde algoritmii implementa ți trebuie s ă lucreze
în timpul "pauzelor de informa ție" din structura semnalului video. Aplica ții ale acestui
tip de programe se întâlnesc în televiziunea digital ă, comunica țiile multimedia, etc.,
acolo unde viteza de prelucrare este esen țială pentru ob ținerea unor secven țe 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 pătruns tot mai mult în conceperea unui pr ogram. Un program structurat este un
program care nu are salturi de genul “GOTO (adres ă)“. După terminarea unei
instrucțiuni se dă curs instruc țiunii următoare, întoarcerea nemaifiind permis ă. Astfel, un
program devine mult mai u șor de urm ărit, mai apropiat de sim țurile omului, codul
rămânînd îns ă neschimbat.
Programarea structurat ă “de sus în jos” are dou ă mari avantaje. Primul se refer ă
la interfețele dintre module, fiecare interfa ță lucrând cu subrutine simple ce primesc sau
returnează parametri. Astfel este mult mai pu țin probabil ca anumite variabile cheie s ă
scape în afara interfe ței. Al doilea mare avantaj este c ă procesul este u șor de
implementat și de prezentat înc ă din faza conceperii și dezvoltării aplicațiilor. Rutinele
funcționale ale programului înlocuiesc, pe parcursul elabor ării 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
funcționale simple. Rezultatul este o specificație structurat ă a conceptelor care se
compune dintr-o schemă logică, prezentând o descompunere a func ției globale a
programului în procese și interfețe între acestea, o bază de date și descriptori de
transformare, necesari pentru explicitarea fiec ărui proces în schema logic ă. Specifica ția
structurat ă va prezenta, în final, diferitele componente structurale ale sistemului și
circulația informa ției între ele, precum și modul în care este prelucrat ă aceasta.

Proiectarea structurii

Scopul proiect ării structurate este de a organiza metodologia capabil ă să facă
distincția între o proiectare proast ă sau bună și de a găsi soluția optimă. Este vorba de
fapt, de o strategie care c onduce la un program capabil s ă satisfacă obiectivele tehnice și
constrânge la o variant ă de program comercial ă. Programarea structurat ă consider ă
elementele structurale ale unui program ca pe ni ște cutii negre care au o func ție
specificat ă, dar în interiorul c ărora nu intereseaz ă structura.

Programarea structurat ă

Programarea structurat ă folosește tehnici de codare standardizate și înlătură 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
subfuncții, având o singur ă intrare și o singur ă ieșire. Programarea devine astfel o
activitate mult mai organizat ă și mai disciplinat ă, dar și mai restrictiv ă pentru

PRELUCRAREA DIGITAL~ A IMAGINILOR
19
programator, înlocuind elementul creativ i ndividual cu un standard de gândire a unui
program. Rezultatul este un produs mult mai u șor de citit, testat, modificat și depanat.
Programe structurate ca Pascal, Ada, C tind să înlocuiasc ă limbaje nestructurate
ca Fortran, Basic, etc. Programele structurate furnizeaz ă capabilit ăți și facilități ce
încurajeaz ă și susțin disciplina program ării structurate. Cele mai recente programe și
versiuni ale programelor nestructurate au in corporate deja o parte a acestor concepte.
La limbajele nestructurate, programul nu poate fi controlat și nici urm ărit, dacă
depășește o oarecare dimensiune. Un exemplu concret este în acest caz instruc țiunea
GOTO din Fortran sau Basic, care care face trimitere la o adres ă imposibil de urm ărit de
către programator, depinzând de valoarea unei variabile specificate. În programarea
structurat ă, controlul derul ării programului este as igurat 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 părți ale programului.

Programarea obiectual ă

Modul de programare obiectual (“object oriented programming”) descompune
problema în clase și obiecte. Clasele sunt o declara ție de tipuri de date și metode, iar
obiectele sunt instan țieri ai acestor clase (combina ții de date ce se refer ă la un anumit
aspect al problemei ce trebuie rezolvate precum și codul corespunz ător, care pune în
execuție, folosind aceste date, un set de func ții bine definite). Datele sunt separate de
cod, aspect mo ștenit din programarea structurat ă, fiind îns ă încapsulate împreun ă în
pachete program. Astfel, datele și metodele asociate devin ascunse lumii exterioare
obiectului, f ăcând astfel posibil ă modularizarea programului. Fiecare obiect este privit
ca o cutie neagr ă, executând func ții predefinite ce sunt activat e la primirea mesajului de
apel, iar la terminarea lor trimit alte mesa je dedicate altor obiecte. Programul devine
astfel 100% modularizat, evitându-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 funcțiilor ( servicii ) corespunz ătoare fiec ărui obiect. Analiza obiectual ă se face
independent de hard-ul, sistem ul de operare sau de instrume ntele 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
modificări ale proiectului ini țial, datorate limit ărilor impuse de platform ă.
Programarea obiectual ș pornește adesea de la o "aplicație-cadru ", care este un
program având înglobate unele funcții generice , comune mai multor programe. Ea
servește ca schelet pentru dezvoltarea aplica ției propriu-zise. Aplica ția-cadru rezolv ă
problemele de identificare și ordonare în timp a evenimentelor, iar programatorul nu mai
trebuie decât s ă adauge obiectele necesare aplica ției. Fiecare obiect con ține atât datele,
cât și codurile de control necesare, încap sulate intr-o unitate independent ă, eventual
sigilată. Obiectele noi nu trebuie de scrise complet: ele pot s ă moștenească proprietăți ale
obiectelor existente deja.

Instrumente soft

Cap.1 Introducere \n prelucrarea imaginilor
20 În practic ă, o parte considerabil ă din timpul afectat program ării 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 instrume nte soft care s ă preia o parta a
activității de dezvoltare. Ele se numesc instrumente CASE ("Computer Aided Software
Engineering ") și preiau o mare parte din func țiile de documentare și de depanare. Un
exemplu de instrument CASE îl constituie programul care combin ă informația "header "
a tuturor surselor pentru a genera manua lul de documentare a programului. Alte
programe citesc fi șierele-surs ă, făcând legăturile dintre variabile (" linking ") pe baza
unei hărți de legături și dau informa țiile, atât de utile, referitoare la erorile care au ap ărut
la compilare. În trecut, în faza de concep ție a unui program erau cunoscute doar
aspectele conceptuale generale, urmând ca detalierea acestora s ă se facă pe parcurs. La
ora actual ă, tendința este ca efortul necesar concep ției 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 proiec t complet specificat. Exist ă în acest sens dou ă tendințe
și anume: echipele de dezvolta re de programe soft tind s ă se divizeze în proiectan ți de
software și programatori , o parte din efortul de pr ogramare fiind preluat de c ătre
instrumentele CASE. Un proiectant de software dezvolt ă specifica ția complet ă pentru
fiecare pachet soft, iar instrument ele CASE preiau aceste specifica ții și genereaz ă foarte
rapid și fără erori codul-surs ă necesar. Ceea ce nu pot rezo lva aceste instrumente vor
face programatorii, preluând rutinele de de zvoltare care nu sunt comune în toate
programele.

Programare portabil ă

Dezvoltarea unui program complex de prelucr ări de imagini este foarte costisitor
și mare consumator de timp. La ora actual ă există diferite platforme hard și soft care pot
fi folosite pentru prelucr ările de imagini, având fiecare atât avantaje cât și dezavantaje în
privința performan țelor și costului. Problema, îns ă, este alta: ritmul de dezvoltare a
echipamentelor hard fiind foarte mare, exist ă riscul de a trebui rescris par țial sau total
programul, la trecerea de pe o platform ă de calcul pe alta. Din acest motiv, tendin ța î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 aplica ție independent de platform ă și
platforma propriu-zis ă pe care va rula (fig.1.8).

PRELUCRAREA DIGITAL~ A IMAGINILOR
21
Interfată
grafică cu
utilizatorul Memorie Aplicație
independent ă
de platform ă
Sistem
de
operareInterfață
soft de
portare Utilizator

Fig. 1.8 Organizarea soft independent ă de platform ă

Programul de aplica ție este scris respectând regulile standard, ca și cum interfa ța
portabilă ar fi platforma, iar aceasta realizeaz ă interfața propriu-zis ă între programul de
aplicație și sistemul de operare propr iu platformei hard, interfe ței GUI și memoriei. În
acest mod se transfer ă comenzi între aplica ție și sistemul de operare specific platformei.
Fiecare platform ă hard are un sistem de operare de sine st ătător (de exemplu
UNIX, Macintosh, etc.) și, deci, o versiune diferit ă a interfe ței de portabilizare, dar
fiecare interfa ță este la fel, privit ă din punctul de vedere al aplica ției. În acest fel un
program dezvoltat pe o anumit ă platform ă va putea fi rulat f ără modificări și pe o alta,
fiind necesar ă doar o verificare a func ționalității 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 ini țială, pot fi emulate soft de c ătre interfa ța de
portabilizare.
Programarea independent ă de platform ă face munca programatorului mult mai
simplă și oferă garanția portabilit ății programelor spre alte platforme de calcul sau
sisteme de operare f ără nici un fel de modific ări ale surselor program.

Documenta ția soft

Documenta ția care înso țește un program de prelucr ări de imagini se împarte în
cinci categorii. Prima este documenta ția de proiectare , care descrie func țiile
programului. Urm ătoarea este documenta ția codurilor folosite, inclusiv algoritmii și
detaliile asupra structurii modulare. Al treilea pachet este un manual al operatorului ,
care include exerci ții și exemple simple pentru încep ători. A patra categorie este un
manual de referin țe care conține informa ții de utilizare pentru operatorii ocazionali, dar
având experien ță în programare. A cincea este a șa-numitul “ on line help ” care poate fi
apelat de utilizator în timpul rul ării programului.
De cele mai multe ori, o documenta ție complet ă este greu de g ăsit la variantele
inițiale de program, urmând ca aceasta s ă se completeze pe parcurs. Ideal ar fi ca
interfața grafică a programului s ă fie atât de clar ă și sugestiv ă, încât să nu fie necesar ă
nici o documentare, mai ales pentru utilizatorii cu experien ță. După o scurtă perioadă de
acomodare, utilizatorul trebuie s ă se descurce satisf ăcător, fără a folosi prea mult "on
line help"-ul.

Similar Posts