Sunteți pe pagina 1din 40

P I

crarea relu nilor magi

Info IV
2001

Cuprins
Pag. Prefa
1.

.................................................................................... ..............................................

3 4

Reprezentarea imaginilor digitale


1.1. 1.2.

Reprezentarea imaginilor prin funcii picturale i cuvinte picturale... 4 Reprezentarea imaginilor prin arbori (quad i binari) .................... 15

2.

mbuntirea imaginilor
2.1. 2.2. Operaiuni punctuale Operaiuni spaiale

...........................................................
.................................................................... .....................................................................

18
18 23

3.

Transformri ale imaginilor


3.1. 3.2. 3.3. 3.4.

........................................................

29
29 31 32 33

Determinarea conturului .............................................................. Scheletizare ................................................................................ Subiere ..................................................................................... Transformri morfologice .......................................................

Lucrri de laborator ............................................................................ Bibliografie .........................................................................................

39 40

Prefa
Grafica pe calculator este un domeniu modern cu multiple aplicaii practice n diverse domenii de activitate (medicin, art, etc.), care pot fi realizate datorit dezvoltrii disciplinelor matematice specializate n aceast direcie. n acest material sunt abordate aspecte doar dintr-o singur ramur ale graficii pe calculator, definite de Pavlidis n [3] (vezi schemele de mai jos) i anume Prelucrarea imaginilor (transformarea imiginilor).
a) Grafic propriu-zis Descriere de imagine Imagine b) Prelucrarea imaginilor

c) Recunoaterea formelor

n cele ce urmemz sunt prezentate diverse metode, tehnici i algoritmi utilizai n reprezentarea i prelucrarea digital a imaginilor, att n vederea creterii calitii imaginii destinate ochiului uman (paragraful doi intitulat mbuntirea imaginilor, prin operaiuni punctuale i spaiale) ct i n scopul recunoaterii formelor (paragraful trei Transformri ale imaginilor cuprinznd algoritmi de determinare a conturului, scheletizare i subiere).
Segmentare 1. Imagini Color Determinarea Conturului Determinarea Punctelor Critice

2. Imagini Alb-Negru

3. Linii i Curbe

4. Puncte Critice

Colorare

Umplere

Interpolare

Printre primele prelucrri de imagini amintim realizarea transmisiei peste Atlantic a imaginilor de ziar, n 1920, reducnd timpul de transmisie de la o sptmn la trei ore prin codificarea, transmisia prin cablu marin i decodificarea unor imagini avnd cinci nivele de strlucire. n continuare s-au mbuntit metodele de cretere a calitii imaginilor, iar ncepnd din 1964 (cnd au fost ptreluate imagini de la bordul staiei spaiale Ranger 7) s-au utilizat diverse tehnici de restaurare i mbuntire a imaginilor preluate din spaiul cosmic (misiunile Surveyor, Mariner i Apollo). Prelucrarea imaginilor i propune:

mbuntirea informa iei vizuale n vederea optimizrii analizei i interpretrii de ctre om, cu aplicaii n diverse domenii cum ar fi medicin (trecerea de la imagini alb/negru la imagini color, prelucrarea imaginilor biomedicale), ecologie (studiul polurii utiliznd imagini aeriene), criminalistic, aprare, industrie, etc. extragerea informa iilor ntr-o form intern pentru analiza cu ajutorul calculatorului a informaiilor video, n recunoatrea caracterelor (chinezeti, de exmplu), a formulelor chimice sau matematice, n verificarea calitii produselor, recunoatrea preurilor (coduri de bare), recunoaterea amprentelor i a feei, n sortarea corespondenei, n meteorologie, aprare, etc. [2].

1. Reprezentarea imaginilor digitale


1.1. Reprezentarea imaginilor prin funcii picturale i cuvinte picturale
n cele ce urmeaz, sunt abordate n special probleme referitoare la imaginile de tip 3 i 4 (definite n [3]) i anume cteva metode de reprezentare a imaginilor prin linii i curbe respectiv printr-o mulime de puncte critice, prin desene descrise de -cuvinte (iruri de comenzi de deplasare a cursorului pe cele patru direcii r, u, l i d). De asemenea este prezentat i o modalitate de conversie a unui desen dintr-o form n alta. Pentru interpolare sunt utilizate curbele Bezier, datorit faptului c acestea au anumite proprieti care se potrivesc cu desenele descrise prin cuvinte picturale ( -cuvinte). O imagine poate fi modelat printr-o funcie de dou variabile definit n planul ecranului (pe matricea de puncte din fereastra de lucru, ViewPort). Valoarea funciei ntr-un punct va reprezenta nuana (culoarea) acelui pixel de pe ecran. Aceasta nseamn c funcia ia valori din mulimea culorilor posibile ale punctelor ecranului, deci o astfel de funcie este nenegativ i mrginit. Dac fereastra ecran este [u1,u2] [v1,v2] (figura 1.1.1), punctele Pij din fereastr au coordonatele limitate astfel: v1 i v2 i u1 j u2.

Fie Sij ptratul definit astfel : j < x j i i < y i . 1 1 n ptratul Sij funcia va lua o valoare constant egal cu codul culorii punctului Pij . O astfel de i v2 funcie o vom numi funcie pictural. Un caz particular important l reprezint funciile cu doar dou valori 0 i 1 pentru imagini alb-negru. v1

x S
ij

Pij

u1

u2

Figura 1.1.1

Funciile picturale sunt utilizate n numeroase probleme de prelucrare a imaginilor (codificare, aproximare, filtrare, restaurare, scalare, etc.) prin diverse operaii aplicate acestora . Lema 1.1.1. Descrierea unei imagini printr-o funcie pictural este echivalent cu descrierea acesteia prin cuvinte picturale. Demonstraia acestei afirmaii o vom efectua prin precizarea modului de descriere a unei imagini format din ptrate (Sij), utiliznd cuvinte de descriere prezentate n continuare. Pentru imagini alb-negru este suficient un limbaj asemntor cu cel de descriere a desenelor discontinue (*, unde ={r,u,l,d, }), doar c primitivele de desenare nu vor , mai fi segmente de lungime unitate ci ptrate de latur unitate. De exemplu, -cuvntul r5d4l4u4 r descrie imaginea din figura 1.1.3. dr Pentru o funcie pictural care ia valori din mulimea {alb,negru} exist i putem construi un -cuvnt care s descrie aceeai imagine. Desigur c exist mai multe posibiliti de definire a -cuvintelor echivalente cu o funcie pictural. Teoretic este suficient s punem n eviden un singur -cuvnt pentru o funcie pictural oarecare. Practic ns, ne intereseaz i complexitatea descrierii, adic o descriere minim a unei imagini. n cele ce urmeaz vom prezenta o prim metod de construcie a unui cuvnt pictural pornind de la o funcie pictural dat. -cuvntul echivalent este w=wv1wv1...wi...wv2-1wv2, unde prin wi nelegem subcuvntul de descriere al liniei i, iar funcia Redu este definit astfel: * Redu( )= ; , . -cuvntul wi de descriere a liniei i (v1 i v2) este definit astfel :

wi =

i,u1i,u1+1...i,j...i,u2-1i,u2 i,u2i,u2-1... i,j...i,u1+1i+1,u1

pentru i impar, pentru i par.

Subcuvintele de colorare (ij, ij) a ptratelor Sij sunt definite dup cum urmeaz:

ij

r r d d

pentru pentru pentru pentru

j<u2 j<u2 j=u2 j=u2

i i i i

f(Sij) = alb, f(Sij) = negru, f(Sij) = alb, f(Sij) = negru; f(Sij) = alb, f(Sij) = negru, f(Sij) = alb, f(Sij) = negru.

l pentru j >1 i l pentru j >1 i ij d pentru j =1 i = d pentru j =1 i Se observ c -cuvntul de descriere, parcurge matricea de ptrate care reprezint

Figura 1.1.2

imaginea descris de funcia f i coloreaz acele ptrate pentru care valoarea funciei picturale este negru. Ordinea de parcurgere este cea din figura 1.1.2. Invers, valoarea funciei picturale corespunztoare ptratului Sij este dat de poziia creionului ( sau ) nainte de colorarea ptratului Sij . Pentru descrierea unei imagini color putem utiliza comenzi din mulimea C. Pentru a descrie o imagine format din ptrate Sij de tipul celor de mai sus (vezi figura 1.1.1), vom preciza i culoarea ptratului care se deseneaz (dup deplasarea definit prin comanda {r,u,l,d}). De exemplu -cuvntul w = arbr3arbd3adbl3albu3fdrcr c (C)* descrie imaginea din figura 1.1.4 (unde C={a,b,c,f), iar cu f am notat culoarea fondului care poate fi alb sau poate fi interpretat ca fr culoare ). Pentru funciile picturale de descriere a imaginilor color, -cuvntul echivalent c se definete analog ca i n cazul imaginilor discontinue , doar subcuvintele ij (respectiv ij) se definesc astfel : cr r cd d pentru pentru pentru pentru j<u2 j<u2 j=u2 j=u2 i i i i f(Sij) = c, f(Sij) = 0 f(Sij) = c, f(Sij) = 0. (c = culoarea lui Sij ) ( = fr culoare )

ij =

Subcuvintele ij se definesc analog (valorile fiind cl, cd i l, d). n concluzie putem spune c mulimea imaginilor descrise prin funcii picturale este identic cu mulimea imaginilor descrise prin -cuvinte, adic orice imagine c descris printr-o funcie pictural poate fi descris printr-un -cuvnt, i invers. c

a: b: c: f: Figura 1.1.3 Figura 1.1.4

A doua metod de construcie a -cuvintelor pornind de la o funcie pictural este mai eficient (n sensul complexitii descrierii) pentru imaginile rare (care au puine ptrate colorate n comparaie cu fereastra ecran), adic raportul r = | {f(Sij)>0 / v1 i v2 , u1 j u2} | / (v2 1) (u2 1) este relativ mic. v u Spre deosebire de prima metod care traverseaz toat fereastra (figura 1.1.2), metoda care urmeaz s fie prezentat va cuta doar acele ptrate care sunt colorate (f(Sij)>0). Pentru imagini alb-negru vom construi -cuvntul astfel : w = wv1,u1wv1,u1+1...wv1,j ...wv1,u2 ... wi,u1wi,u1+1...wi,j...wi,u2 ... wv2,u1wv2,u1+1...wv2,j...wv2,u2 , unde: wi,j = r j d i u u i l j dac f (Sij) = 0 , dac f (Sij) > 0 . (v1 i v2 , u1 j u2)

Pentru c acest cuvnt conine multe deplasri inutile cu creionul ridicat, este necesar o reducere a acestui cuvnt. -cuvntul redus este wr = ref (w) care reprezint -cuvntul independent de retrageri relativ la mulimea retragerilor: R = {ud, du, lr, rl, , }. Pentru imagini color definirea -cuvntului este asemntoare. Subcuvntul wi,j c pentru cazul f (Sij) = c > 0 este wi,j = r j d i c u u i l j , unde prin am notat culoarea invizibil (prin care se permite deplasarea fr colorare). Cuvintele picturale definite anterior sunt echivalente cu funciile picturale, dar nu sunt minimale. Desigur, ne-ar interesa un algoritm care s construiasc un cuvnt de descriere ct mai scurt posibil, plecnd de la o funcie pictural f.

Algoritmul 1.1.1.

Construiete graful G=(V,A) astfel : V={ (i,j) / f(Sij) > 0 }, A=V V; Calculeaz distanele directe ( : A N) dintre vrfuri astfel : ((i1,j1), (i2,j2))= | i1 i2 |+| j1 2|, ((i1,j1), (i2,j2))A, j Determin cel mai scurt lan hamiltonian, H = ( vi1, vi2, ... , vin) ( n=|V| );

Construiete cuvntul de descriere w = Reduc(ci1r i2 wi3 ... win), unde w | j1-j2 |-1 c wik =
2 k n -

dac i1=i2 , dac i1<i2 , dac i1>i2 ; iar (1.1.1)

| j1-j2 |-1 d | i2-i1 | -1 c d | j1-j2 |-1 u | i2-i1 | -1 c u

ci1 este culoarea ptratului vi1, (i1,j1) i (i2,j2) sunt coordonatele vrfurilor vik-1 respectiv vik-1 , =r pentru j1<j2 sau =l pentru j1>j2, c reprezint culoarea ptratului Si2,j2 (c=f (Si2,j2)>0), invizibil , dac f (Si2,j2)=0, Reduc(c)=c (nu se ridic creionul dac urmeaz imediat o culoare). Lema 1.1.2.

- reprezint culoarea -

Algoritmul 1.1.1 determin un cuvnt minimal de descriere a unei imagini definit prin funcia pictural f . Demonstraie. Se observ c formula 1.1.1 urmrete deplasarea cursorului ncepnd din vrful vi1 prin ptratele vi2, ... , vik , ... , vin , pe care le coloreaz. n funcie de poziia relativ a dou ptrate consecutive (vik-1 , vik) din lanul hamiltonian, cursorul se va deplasa pe unul din cele patru trasee din figura 1.1.5.
Din cele C u trasee ( u = | j1 j2|, iar v = |i1 i2|, vezi figura 1.1.6), nu u+v conteaz pe care l vom parcurge pentru c n dreptungiul definit de cele dou vrfuri diagonal opuse nu exist nici un vrf pe care trebuie s-l colorm (dac ar exista, atunci lanul determinat nu mai este minim) .

i1 < i2 j1 < j2

i1 > i2 j1 < j2

i1 < i2 j1 > j2

i1 > i2 j1 > j2 Figura 1.1.6

Figura 1.1.5

n cele ce urmeaz vom studia diverse moduri de descriere a imaginilor de tip 3 (formate din linii i curbe). Pentru c descrierea imaginilor formate din linii a fost prezentat n primul capitol (utiliznd -limbaje), n continuarea acestui paragraf vor fi prezentate cteva tehnici de descriere a curbelor. O imagine este de tip 3 dac poate fi complet descris printr-un numr finit de linii i curbe [3]. O curb poate fi aproximat utiliznd o mulime de puncte alese dintr-o mulime de puncte din plan (de exemplu dintr-un sistem cartezian rectangular, ca n figurile 1.1.7 i 1.1.8). Prin unirea punctelor apropiate de curb se va obine o aproximare poligonal format din segmente de lungime unitate sau 2 . Aceast aproximare se poate reprezenta prin iruri de comenzi (pe cele 4 sau 8 direcii). De exemplu curba din figura 1.1.7 se poate aproxima prin desenul descris de cuvntul urruurur iar curba din figura 1.1.8 prin aaura (am notat cu a deplasarea pe direcia NE). Acest procedeu de trecere de la o imagine reprezentat prin curbe la o imagine reprezentat prin puncte se numete determinarea punctelor critice, iar procedeul invers se numete interpolare. Figura 3.1.7

Figura 1.1.8

Mulimea punctelor critice determinate de curba cR2 este MPc(c)={Apr(P)/Pc} (Apr : R2 Z2, returneaz cel mai apropiat punct de coordonate ntregi). O imagine reprezentat prin puncte (de tip 4) poate fi mbuntit prin interpolare, obinnd o imagine reprezentat prin curbe. Pentru a ilustra aceasta, am ales interpolarea Bezier (descris n [3]). n figurile urmtoare (1.1.9 i 1.1.10) se poate vedea o curb i punctele critice determinate, apoi descrierea corespunztoare -cuvntului rezultat (pentru patru respectiv opt direcii), iar n final curba Bezier corespunztoare.

Figura 1.1.9

Figura 1.1.10 9

Modul de determinare al curbei Bezier (din figura 1.1.11), plecnd de la irul de puncte P1,P2,...,Pn este descris n cele ce urmeaz i ilustrat n figura 1.1.12, pentru n=4 (interpolarea Bezier este descris n [6]). Din irul punctelor date P1, P2, ... ,Pn se calculeaz, utiliznd formula de mai jos (1.1.2), un alt ir de puncte P1,2, P2,2, ... ,Pn-1,2 , apoi din punctele calculate vom determina punctele P1,3, P2,3, ... ,Pn-2,3 (utiliznd aceeai formul) i aa mai departe pn cnd vom ajunge la un singur punct P1,n. Acest punct obinut pentru o valoare [0,1] aparine curbei Bezier. Dnd valori lui din acest interval vom obine aproximarea dorit (n figura 1.1.12, =1/4).

P2 Pl
B1

P3
B2 B3 B4 P4

Figura 1.1.11 P3
P2,3

P2 P1,2 Pl
P1,3

P2,2 P1,4(1/4)

P3,2

P4

Figura 1.1.12 Se observ c pentru =0 se obine punctul P1 iar pentru =1 se obine punctul Pn. Formula de calcul a irului de puncte de pe nivelul m+1 n funcie de punctele de pe nivelul m este urmtoarea : Pi,m+1()=(1 Pi,m()+ Pi+1,m() ; i=1,n m=1,n =0,1, 1/(s ) m; 1; 1) (1.1.2)

Se observ c formula determin punctele ncepnd de pe nivelul doi, pentru c primul nivel conine punctele date, adic Pi,1()=Pi , i=1,n . Dac dorim s determinm s puncte B1=P1,n(1), B2=P1,n(2), ... , Bj=P1,n(j), ... , Bs=P1,n(s) corespunztoare valorilor 1=0, 2=1/(s ... ,j=(j / (s ... ,s=1, vom 1), 1) 1), calcula coordonatele punctelor P1,n(j) pentru fiecare valoare j. Pentru a obine i alte puncte n afara celor dou capete (pentru c B1 i Bs coincid cu P1 respectiv Pn , ca n figura 1.1.11 pentru s=4), trebuie ca s s fie mai mare dect 2. Algoritmul Bezier de determinare a celor s puncte (Bj, j=1,s) de pe aceast curb este prezentat n cele ce urmeaz. Algoritmul 1.1.2. Pentru i:=1,n execut Pi,1:=Pi; Pentru j:=1,s execut :=(j 1)/(s 1); Pentru m:=1,n execut 1 Pentru i:=1,n execut m Pi,m+1 := (1 Pi,m + Pi+1,m ; ) Bj:= P1,n Sf_alg.

1 10

Algoritmul prezentat ne d ca rezultat un ir de puncte B1,B2,...,Bs. Teoretic, curba de interpolare Bezier (a punctelor P1,P2,...,Pn) este: Bezier(P1,P2,...,Pn) = { P1,n() / [0,1] }. Practic, reprezentatarea grafic a curbei este realizat prin desenarea celor s-1 segmente determinate de irul punctelor B1, B2, ... , Bs , adic BezierSeg(P1,P2,...,Pn) = { BjBj+1 / j=1,s (vezi figura 1.1.11). 1} Se observ n figurile 1.1.9 i 1.1.10 c dac plecm de la o curb c i determinm mulimea punctelor critice MPc(c) , apoi prin algoritmul Bezier calculm punctele Bj, j=1,s , acestea se deprteaz de punctele critice iniiale, adic MPc(c) {Apr(Bj) / j = 1,s}, iar curba c'= BezierSeg(MPc(c)) c. Desigur c ne-ar interesa ca aceast curb determinat prin interpolarea punctelor critice s fie ct mai apropiat de curba iniial, adic : {Apr(P1,n () ) / [0,1]} = {Apr(P) / Pc }. (1.1.3.)

Presupunem c avem o curb c0 , pentru care determinm irul punctelor s0 de coordonate ntregi cele mai apropiate. Acest ir poate fi descris printr-un -cuvnt w astfel nct mulimea punctelor desenului descris de w s fie mulimea punctelor critice corespunztoare curbei c0 , adic : V(dpic(w)) = {Apr(P) / Pc0}. n continuare, dac pentru acest ir de puncte s0=(Sh(a1...ai), i=1,n) determinat de -cuvntul w=a1...an (ir definit prin funcia Sh), determinm curba c1 prin interpolare Bezier, este puin probabil s obinem aceeai curb iniial c0. Aplicnd iterativ acelai procedeu vom obine un ir de curbe c0, c1, c2, ... , cp , ... . Problema care n mod natural se va pune este urmtoarea: Cum pot fi obinute aceste transformri, astfel nct acest ir s fie finit ?. Dac reuim s obinem o curb (prin interpolare) care s menin punctele critice, atunci s1=s0 , deci curba de aproximare nu se mai modific ori de cte ori se aplic aceste transformri : c0 s0 c1 s0 c1 ... . (1.1.5) Observaia 1.1.1. Aceast proprietate (1.1.5) a celor dou transformri (de interpolare i de determinare a punctelor critice) este important, pentru c fiecare transformare este, n acest caz, inversa celeilalte. De exemplu, dup codificarea unei imagini (n scopul comprimrii), decodificarea (adic transformarea invers) se va efectua printr-o interpolare (care s conserve punctele critice, deci descrierea prin -cuvinte). n acest scop, n continuare se va prezenta o transformare (prin interpolare Bezier) care conserv -cuvntul de descriere.

1 11

Pentru a obine un ir de puncte ct mai apropiat de punctele critice, vom grupa punctele P1,P2,...,Pn n subiruri de o anumit lungime q (de exemplu n figura 1.1.13 am grupat cte 5 respectiv cte 7), apoi vom aplica algoritmul Bezier pentru fiecare subir. F Figura 1.1.13 Curba rezultat fiind obinut prin reuniunea curbelor descrise: c = Bezier (P1,...,Pq) Bezier (Pq,...,P2q1) ... Bezier (Pn(n Mod q)+1,...,Pn) Lema 1.1.4. O transformare de tipul 1.1.6, utiliznd grupri de lungime q<7, conserv punctele critice ( Apr(c)={P1,P2,...,Pn} ), deci i -cuvntul de descriere (w), dac acesta * nu conine retrageri (wref(),). Demonstraia se poate face pentru fiecare q ncepnd de la 2 pn la 6. Este mult mai eficient gruparea punctelor iniiale, P1,P2,...,Pn n ct mai puine subiruri (deci ct mai puine curbe Bezier) care s conserve punctele critice (fr a stabili un numr q de puncte din subiruri). Aceasta nseamn c se urmrete formarea de subiruri de dimensiuni ct mai mari. La un subir Pi,Pi+1,...,Pj care conserv punctele critice se va aduga punctul Pj+1 doar dac irul Pi,Pi+1,...,PjPj+1 conserv punctele critice (situaie n care se continu cu punctul Pj+2 i aa mai departe) altfel se ncepe o nou grupare Pj,Pj+1,.... n felul acesta se vor forma subiruri de puncte de lungime cel puin ase, aceasta depinznd de poziia relativ a punctelor. Algoritmul urmtor determin numrul minim (notat cu k) de grupri care conserv punctele critice. Algoritmul 1.1.3. Date P1, P2, ... , Pn; k:=0; i:=1; Repet j:=i+5; Ct_timp j>n execut j:=j 1; Ct_timp (j<n) i Apr(Bezier(Pi, ... ,Pj, Pj+1)) = {Pi, ... ,Pj, Pj+1} execut j:=j+1; k:=k+1; Grupareak := (Pi, ... ,Pj); i:=j Pncnd i=n; Rezultate Gruparea1, Gruparea2, ... , Grupareak Sf_Alg.

(1.1.6)

1 12

Observaia 1.1.2. Numrul minim de grupri care conserv punctele P1, P2, ... ,Pn este NrGr(1,n) , unde: 1 NrGr( i, j) = Min {NrGr(i, l)+NrGr(l, j)} dac Apr(Bezier(Pi,...,Pj)) {Pi, ...,Pj}. (b) i<l<j Dac Lmin(i,j) este indicele l pentru care se realizeaz minimul din formula precedent cazul b) sau este egal cu 0 pentru cazul a), atunci irul de puncte P1, P2, ... ,Pn este desprit optim n dou subiruri, i anume ( P1, P2, ... ,PLmin(1, n) ) i (PLmin(1, n), ...,Pn). n continuare, fiecare subir Pi, ...,Pj se desparte n dou subiruri n punctul PLmin(i, j) (dac Lmin(i,j)>0), i aa mai departe pn cnd toate subirurile au indicele de separare Lmin(i,j) nul. Observm c numrul subirurilor astfel obinute este minim. Pentru ca acest algoritm s fie mai rapid (pentru a nu repeta anumite calcule) se recomand depunerea valorilor deja calculate NrGr (i, j) ntr-o matrice ptratic M de ordin n. Valoarea NrGr(i, j) o vom depune n Mij. Valorile acestei matrice le vom determmina succesiv pentru prima diagonal paralel cu diagonala principal, apoi pentru a doua, i aa mai departe pn se ajunge la M1n care reprezint valoarea cutat. Pe baza lemei 1.1.4, putem s evitm calculele pentru primele ase diagonale, acestea avnd toate valorile egale cu 1. Practic, calculul valorilor va ncepe cu diagonala a aptea. Pentru a putea forma subirurile optimale (nu ne intereseaz doar numrul de grupri minim dat de M1n) vom memora n elementul Mj,i indicele pentru care se realizeaz minimul funciei pentru subirul punctelor de la i la j (putem acest lucru, deoarece elementele de sub diagonala principal nu sunt utilizate). Vom construi un arbore binar care conine n fiecare perechi de forma (i,j), unde i i j reprezint limitele unui subir optim determinat (Pi, ... ,Pj). Acest arborele are rdcina (1,n). Dac pentru un nod (i,j) al arborelui avem Apr(Bezier(Pi, ... ,Pj)) = {Pi, ... ,Pj} atunci acest nod este un nod terminal (frunz), altfel va avea doi subarbori cu rdcinile (i,Mji) respectiv (Mji,j). Frontul acestui arbore ne va da subirurile optimale. Evident c algoritmul 1.1.3 i cel prezentat anterior (apelnd metoda programrii dinamice) nu dau neaprat aceeai soluie, dar ambele sunt minimale. Dac avem mai multe variante de desprire a unui subir de puncte, se prefer, separarea n punctul Pi, dac punctele Pi-1, Pi i Pi+1 sunt coliniare (aceasta asigur continuitatea curbei Bezier, deoarece aceasta este tangent la capetele liniei poligonale determinate de punctele de interpolare). n acest fel curba are mai puine puncte de ntoarcere, deci mai puine asperiti. dac Apr(Bezier(Pi,...,Pj)) = {Pi, ...,Pj}, (a)

1 13

n continuare se va prezenta un model de descriere a unei imagini de tip 3 (dup clasificarea dat n [3]) utiliznd -cuvinte. Aceste cuvinte vor descrie un ir de puncte care determin o curb prin interpolare Bezier. Aceasta nseamn c o mulime de -cuvinte descrie o imagine format din curbe, adic de tip 3. Plecnd de la un anumit punct de start P1(x1, y1) (care poate fi chiar originea), printr-un -cuvnt de descriere w=a1a2...am , vom construi irul punctelor de interpolare P2(x2, y2), P3(x3, y3), ... , Pn(xn, yn). Din irul punctelor traversate prin comnezile -cuvntului w, se vor selecta n vederea interpolrii doar punctele traversate cu creionul cobort (). Fiecare -cuvnt descrie un ir de puncte aa cum s-a prezentat mai sus, prin funciile definite anterior Nr i Pb, iar prin interpolare Bezier a irurilor construite se vor obine curbele care compun imaginea. De exemplu -cuvintele urmtoare w1= dr2u2u2uu2r2r , w2=lddd2d3r2uu2l i w3=dll2uuld descriu urmtoarele trei iruri de puncte : 1. 2. 3.
(0,0),(0,-1),(1,-1),(2,-1),(2,0),(2,1),(2,4),(5,6); (5,6),(4,4),(4,1),(4,0),(4,-1),(5,-1),(6,-1),(6,0) i (5,2),(4,1),(2,3),(1,2).
6 5 4 3 2 1 0 -1 0 1 2 3 4 5 6

Figura 1.1.14. Prin interpolarea acestor puncte se obin cele trei curbe reprezentnd imaginea literei A mare de mn, din figura 1.1.14. Asemntor se pot defini -cuvinte de descriere a unor simboluri matematice.

1 14

1.2. Reprezentarea imaginilor prin arbori


Arborii memoreaz informaiile formelor prin noduri (stocnd informaii despre forme sau substructuri) i prin arce (relaii dintre printe i succesori). Arborii sunt eficieni n reprezentarea structural care implic o descompunere ierarhic pentru c descrierea devine compact. O alt trstur important a structurilor arborescente este capacitatea de a construi i de a descrie forme complexe, utiliznd primitive cu mai multe puncte de concatenare (la structuri de tip ir am vzut c sunt doar dou puncte cap i coad). Dac o form complex poate fi reprezentat natural prin arbori atunci este de asemenea natural s generarm descrierea sa utiliznd gramatici arborescente. Figura 1.2.1 arat cum poate fi utilizat un arbore pentru a descrie o form grafic (o imagine) descompus n arii elementare disjuncte. Imaginea este descompus n patru arii (ptrate, considerate n ordinea a11 , a12 , a21 , a21) iar dac o arie conine puncte de aceeai culoare atunci ea va fi reprezentat printr-un nod terminal (frunz), informaia fiind culoarea respectiv, altfel (dac aria conine puncte de culori diferite) atunci ea va fi reprezentat printr-un nod intern i se va descompune din nou n patru arii elementare (care vor fi subarbori) i aa mai departe pn se ajunge la nivel de punct (pixel).
- culoarea 1, - culoarea 2, - culoarea 3, - culoarea 4, - alb.

Figura 1.2.1 O modalitate de codificare a ierarhiei descrise de un arbore este prezentat n continuare i ilustrat n figura alturat. Vrfurile sunt etichetate cu numere naturale i se utilizeaz caracterul "." (punct) pentru a descrie nodurile descendente. Arborele este descris prin simpla enumerare a mulimii etichetelor nodurilor astfel:
1 1.1 1.2.1 1.2.2.1 1.2 1.2.2 1.2.3

T = { 1, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.2.1, 1.2.2.2 } Astfel de descrieri sunt adesea utilizate n compararea arborilor (calculul Figura 1.2.2 msurii de similaritate, prin distane d(T1,T2) T1 i T2 fiind arborii care se compar). 15

1.2.2.2

Alt metod de codificare a unei imagini reprezentat prin Quad-Tree (arbri care se ramific n patru, prezentai mai sus) utilizeaz iruri de caractere care conin codul culorilor i un alt caracter de ramificare (de exemplu *). De exemplu imaginea din figura 1.2.3 se codific prin irul **annanna . *

a n n annnnannnnaann a aa a
Figura 1.2.3

n n a

irul S codificat poate fi returnat de funcia Qt definit astfel: Funcia Qt (l,t,n) Este: { (l,t) = colul stnga-sus al ferestrei } Dac AccCul(l,t,n) Atunci Qt:=Culoare(l,t) { n = limea ptratului } Altfel n:=n/2; Qt:=* + Qt(l,t,n) + { + = conactenare } Qt(l+n,t,n) + Qt(l,t+n,n) + Qt(l+n,t+n,n) Sf_Qt. Decodificarea irului S poate fi realizat utiliznd procedura Pt definit astfel: Procedura Pt ( S, l,t,n ) Este: { Reconstituie imaginea n (l,t) }

Cul:=Primul_caracter(S); terge_Primul_Caracter(S); { Extrage primul caracter } Dac CulMulimii_Culorilor Atunci Deseneaz_Ptratul(l,t,n,Cul) Altfel n:=n/2; Pt(l,t,n); Pt(l+n,t,n); Pt(l,t+n,n); Pt(l+n,t+n,n) Sf_Pt.

16

Codificare a unei imagini prin arbri binari utilizeaz dou caractere de ramificare i |. De exemplu imaginea din figura 1.2.4 se codific prin irul : ||an|nan|na | |

n
|

12

5 534

a n n annnnannnnaann a aa a
Figura 1.2.4

irul codificat poate fi returnat de funcia Bt definit astfel: Funcia Bt (l,t,m,n) Este: { (l,t) = colul stnga-sus al ferestrei } Dac AccCul(l,t,m,n) Atunci Bt:=Culoare(l,t) { m,n = dim. dreptunghiului} Altfel Dac m=n Atunci m:=m/2; Bt:= + Bt(l,t,m,n) + Bt(l,t+m,m,n) Altfel n:=n/2; Bt:= | + Bt(l,t,m,n) + Bt(l+n,t,m,n) Sf_Bt.

Decodificarea poate fi realizat utiliznd procedura Pb definit astfel: Procedura Pb ( S, t,m,n ) Este: { Reconstituie imaginea n (l,t) } Cul:=Primul_caracter(S); terge_Primul_Caracter(S); { Extrage primul caracter } Dac CulMulimii_Culorilor Atunci Deseneaz_Dreptunghiul(l,t,m,n,Cul) Altfel Dac Cul= Atunci m:=m/2; Pb(l,t,m,n); Pb(l,t+m,m,n) {Cul= | } Altfel n:=n/2; Pb(l,t,m,n); Pb(l+n,t,m,n) Sf_Pb.

17

2. mbuntirea imaginilor
Scopul acestor prelucrri l constituie accentuarea sau punerea n eviden a unor caracteristici coninute n imagine pentru a putea fi observate mai uor (mai bine) la studiul acestora. Metodele utilizate n algoritmii de mbuntire a imaginilor amplific anumite caracteristici fr a mri cantitatea de informaii coninut n acestea. n cele ce urmeaz vor fi prezentate cteva tehnici grupate dup algoritmii utilizai n urmtoarele dou clase: Operaiuni punctuale prin care se poate realiza creterea contrastului, reducerea zgomotului, etc. i Operaiuni spaiale care permit eliminarea zgomotului, filtrri, etc. Pentru simplificarea prezentrii, vom presupune c imaginile prelucrate prin aceste metode sunt de tip 2 (dup clasificarea dat n [3]), deci deci conin diverse nuane de gri.

2.1. Operaiuni punctuale


Aceste operaiuni permit trecerea de la o nuan de gri u[0,L] la alt nuan v[0,L] , conform unei transformri v=f(u) , unde f : [0,L][0,L]. a) Accentuarea contrastului Aceast transformare este recomandat imaginilor cu contrast sczut (obinute de exemplu ntr-un mediu cu iluminare slab). Fiind date dou limite a i b ( 0 < a < b < L ) pentru care se cunosc valorile va = f(a)<a, respectiv vb = f(b) < b, transformarea este: u * va / a f(u) = (u-a) / (b-a) * (vb - va ) + va (u-b) / (L-b) * (L - vb ) + vb pentru 0 u a pentru a < u b pentru b < u L.

v L vb

va 0 a b L u

Observaie.

Valorile a i b se pot obine din histograma imaginii; Parametrii va i vb precizeaz amlificarea contrastului; Pentru va > a i vb < b se obine transformarea invers (reducerea contrastului).

Pentru o accentuare respectiv reducere (a contrastului) neted transformrile sunt date de urmtoarele funcii: 18

1) f1(u) = ( sin( * u/L-/2) + 1) / 2 * L , 2) f2(u) = ( arcsin(2u/L-1) + /2) / * L .

b) Reducerea zgomotului Aceast transformare se realizeaz prin limitarea culorilor imaginii, tiind c acestea se afl n domeniul [a,b]. Prin aceast metod se pot pune n eviden nuane greu vizibile. Operaia este un caz particular al celei precedente ( a) ) pentru va = 0 i vb = L. Transformarea se poate realiza conform unuia din cele dou grafice de mai jos: 0 (sau o valoare minim vmin ) (u-a) / (b-a) * L L pentru 0 u a pentru a < u b pentru b < u L

f(u) =

v vb=L
sau

v vb=L

vmin va = 0
Observaie. Valorile a i b se pot fixa studiind histograma imaginii. c) Binarizarea imaginilor Aceast operaie are ca obiectiv obinerea unei imagini alb-negru dintr-o imagine care conine i alte nuane nedorite provenite din diverse motive tehnice (de exemplu copiere). Aceste zgomote aprute n imagine vor fi eliminate prin studierea histogramei imagini. Transformarea este un caz particular al celei precedente ( b) ) pentru a=b = valea histogramei (vezi graficul urmtor):

Lu

Lu

19

0 (sau o valoare minim vmin ) f(u) = L

pentru 0 u a pentru a< u L.

v
Alb sau

v
Alb

vmin
Negru Negru

a=b

u Alb

Negru Negru

a=b

Alb

d) Negativarea imaginilor Aceast operaie de inversare a imaginilor se poate utiliza n situaia n care dispunem de negativul unei imagini (de exemplu n prelucrarea imaginilor medicale). Operaia de inversare se realizeaz prin v transformarea urmtoare: L v = f(u) = L - u

e) Operaiuni de tip fereastr

Transformrile de acest tip permit extragerea anumitor caracteristici coninute n regiuni reprezentate prin diferite nuane de gri. Decuparea respectiv accentuarea acestor zone (definite prin intervalul nuanelor [a,b] ) se poate realiza astfel:

fd(u) = v L

L 0

pentru u [a,b] pentru u [a,b]

fa(u) = v L

L u

pentru u [a,b] pentru u [a,b]

sau fd f) Extragerea unui bit

L u

fa

L u

20

Transformarea se aplic n determinarea biilor nesemnificativi din punct de vedere vizual dintr-o imagine (deoarece putem spune c doar primii ase au semnificaie vizual, contribuia celorlali fiind legat doar de redarea detaliilor fine din imagine, fr a oferi informaii asupra structurii acesteia). Operaia de extragere a bitului k corespunztoare codificrii u = bn2n + bn-12n-1 + ... + bk2k + ... + b12 + b0 se realizeaz prin transformarea:

L 0

fk(u) =
g) Compresia de contrast

pentru bk =1 rest

n situaia n care dinamica datelor din imagine este foarte larg este recomandat o astfel de operaie prin care se mbuntete vizibilitatea punctelor de amplitudine relativ mic fa de ceilali. Operaia de compresie se realizeaz printr-o transformare logaritmic de tipul: v = f(u) = cst * Log(1+|u|)

v
L

Pentru transformarea reprezentat alturat, formula de calcul este urmtoarea: v = f(u) = L / (Ln(L+1) * Ln(1+u) 0 h) Scderea imaginilor Operaia de scdere a dou imagini este necesar la compararea acestora dac deosebirile dintre ele sunt relativ mici fa de complexitatea imaginilor. Prin scderea celor dou imagini se pun n eviden diferenele dintre cele dou imagini. i) Modelarea imaginilor prin histograme Prin histogram nelegem reprezentarea grafic a frecvenei de apariie a culorilor (nuanelor de gri) coninute ntr-o imagine. Prin aceast metod (modelarea histogramei) se obine o imagine cu o histogram dorit. De exemplu o imagine cu contrast sczut (avnd o histogram ngust) se poate transforma printr-un procedeu de egalizare a histogramei ntr-o imagine cu o histogram uniform. Dac notm cu t(u) numrul de pixeli de culoare u ( adic frecvena nuanei u, u{0,1,...,L} ), iar cu T numrul total de pixeli din imagine ( T= t(0)+ t(1) + ... + t(L) ), atunci probabilitatea ca un punct s fie de nuan mai nchis, eventual egal cu u este p(u) = ( t(0) + t(1) + ... + t(u) ) / T. 21 L

Se observ c 0 p(u) 1, deci transformarea este v = f(u) = p(u) * L. n exemplul de mai jos se poate vedea histograma iniial a), graficul transformrii b) i histograma egalizat obinut c) rezultate din datele din tabelul alturat pentru L=100. Modificarea histogramei se realizeaz de fapt i prin compresia de contrast prezentat anterior ( g) ) i de asemenea se mai poate realiza prin alte transformri definite n intervalul [0,L] cu valori n acelai interval, de exemplu f(u) = Sqrt(u) * Sqrt(L) .

u
0 10 20 30 40 50 60 70 80 90 100

t(u)
0 30 60 90 100 70 30 20 10 0 0

p(u)
0.00 0.07 0.22 0.44 0.68 0.85 0.93 0.98 1.00 1.00 1.00

p(u)*L
0.00 7.32 21.95 43.90 68.29 85.37 92.68 97.56 100.00 100.00 100.00

f(u)
0 7 22 44 68 85 93 98 100 100 100

t(u)

t(v)

a)

Lu

b)

Lu

c)

Lv

22

2.2. Operaiuni spaiale 1


Transformrile spaiale in cont la schimbarea culorii unui punct i de culorilor punctelor din apropierea acestuia. De asemenea, imaginea poate fi filtrat utiliznd o masc spaial. n cele ce urmeaz vor fi prezentate trei clase de astfel de transformri spaiale. a) Mediere i filtrare spaial trece-jos Aceste metode modific culoarea fiecrui punct Pi,j dintr-o imagine printr-o medie ponderat ( pk-i,l-j ) a culorilor punctelor Pk,l dintr-o vecintate Wi,j a acestuia. Dac notm cu uk,l culoarea punctului Pk,l atunci noua culoare a punctului Pi,j notat cu vi,j se modific dup formula :

vi,j =

pk-i,l-j * uk,l

Pk,l Wi,j Ponderile pk-i,l-j sunt date de poziiile relative ale punctelor Pk,l Wi,j fa de punctul Pi,j pentru care se calculeaz culoarea. n funcie de alegerea acestor ponderi se obin urmtoarele filtre spaiale uzuale: pentru ponderi egale pentru toate punctele din vecintate (conform figurilor alturate, pentru vecinti de 2x2 respectiv de 3x3) formula de calcul este urmtoarea:

1/4 1/4

1/4 1/4

vi,j =

uk,l 1 * |W| P W k,l i,j

2x2
1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9

unde prin |W| am notat aria ferestrei de calcul, adic numrul de pixeli pentru care se calculeaz media (n exemplele de mai sus fiind 4 respectiv 9).

3x3
pentru ponderi diferite n funcie de poziia punctului vecin (vezi figurile alturate, pentru vecinti de 3x3) formula de calcul sunt urmtoarele:

0 1/8 0

1/8 1/2 1/8

0 1/8 0

vi,j = (ui,j + ( ui-1,j + ui+1,j + ui,j-1 + ui,j+1) / 4 ) / 2

vi,j =

2 - | k-i | - | l-j | - 2
Pk,l Wi,j

uk,l

1/16 1/8 1/16 1/8 1/4 1/8

1/16 1/8 1/16

23

Mediere spaial Pentru o imagine dat de relaia: vi,j = ui,j + i,j unde i,j reprezint zgomotul alb (de valoare medie nul), operaia de mediere spaial este dat de formula :

vi,j =

uk,l + 1 * |W| P W k,l i,j

i,j

unde prin |W| am notat aria ferestrei de calcul, iar i,j este media zgomotului i,j . Filtrare direcional Aceast transformare permite protejarea conturului atenuat n general prin operaii de mediere spaial. Relaia de calcul este urmtoarea: vi,j = vi,j ( *)

unde

* este acel pentru care se realizeaz minimul expresiei | ui,j - vi,j () | (direcia optim, vezi figura alturat) ,

vi,j ( ) = 1 * uk,l |W | P W k,l i,j;


Filtrare median

Operaia de filtrare median permite eliminarea punctelor (sau chiar a liniilor) izolate din imagine meninnd aspectul spaial al imaginii. Transformarea este urmtoarea:

vi,j =

x(n+1)/2 (xn/2+xn/2+1) / 2

pentru n impar pentru n par

unde xs ( s = 1,2, ... ,n=|W| ) este irul ordonat (cresctor sau descresctor) format din elementele mulimii { uk,l / Pk,l Wi,j }. b) Accentuarea contururilor Operaia de accentuare a conturului se utilizeaz n scopul punerii n eviden a liniilor i arcelor coninute ntr-o imagine. Aceast tehnic se bazeaz pe scderea din imaginea iniial a unri imagini filtrate. Transformarea este de forma: vi,j = ui,j + * gi,j unde >0 iar gi,j este gradientul funciei ui,j ales convenabil, de exemplu laplacianul discret: gi,j = ui,j - fi,j fi,j reprezentnd rezultatul filtrrii : 24

fi,j = ( ui-1,j + ui+1,j + ui,j-1 + ui,j+1) / 4

ui,j

fi,j

gi,j

vi,j

c) Filtrare spaial trece-sus i trece-band Extragerea sau accentuarea conturului se poate realiza i prin printr-o filtrare trece-sus sau trece-band. Aceaste transformri prin care se poate realiza mbuntirea conturului utilizeaz operaiile de tip trece jos (notate cu tr_josx) prezentate anterior i sunt de forma: tr_susi,j = ui,j - tr_josi,j , tr_bandi,j = tr_jos1i,j - tr_jos2i,j . respectiv

d) Inversarea contrastului i scalare statistic Acest tip de transformare permite obinerea unei imagini cu un contur de contrast mrit plecnd de la o imagine cu contur de contrast slab i de asemenea permite punerea n eviden a unor detalii slab reprezentate (nedetectabile) ntr-o imagine. Operaia este de forma: i,j

vi,j =

i,j =
unde:

i,j

uk,l 1 * |W| P W k,l i,j

iar

i,j

( uk,l - 1 * |W| P W k,l i,j

i,j

)2

25

e) Dilatarea imaginilor n cele ce urmeaz vom prezenta dou modaliti de dilatare a imaginilor i anume scalarea cu un factor supraunitar f N i interpolarea liniar.

Scalarea se obine prin repetarea unui pixel de f ori att pe linii ct i pe coloane, astfel nct fiecare pixel se transform ntr-un ptrat de latur f. Transformarea unei imagini de dimensiuni m x n este dat de formula: vi,j = uk,l , unde : k=[(i-1) / f ] + 1, l=[(j-1) / f ] + 1 , iar 1 i f * m , 1 j f * n .

Interpolarea liniar se realizeaz n dou etape :

interpolare pe linii : vi,j = (1-) * uk,p + * uk,p+f dac (i-1) Mod f = 0 , unde : k=[(i-1) / f ] + 1, p = [(j-1) / f ] + 1, iar = (j-p) / f ;

interpolare pe coloane : vi,j = (1- ) * uq,l + * uq+f,l dac (i-1) Mod f 0 , unde : l=[(j-1) / f ] + 1, q = [(i-1) / f ] + 1, iar = (i-q) / f ; De exemplu, pentru f=2, prelucrarea imaginii dat prin matricea : 2 4 6 8

u=

se realizeaz n urmtoarele etape :

interpolare pe linii :

2 4

4 6

6 8

3 4

interpolare pe coloane :

2 3 4 2

4 5 6 3

6 7 8 4

3 3.5 4 2

26

e) mbuntirea imaginilor biomedicale O clas important de probleme din prelucrarea imaginilor numit segmentare se ocup de selectarea unor obiecte sau caracteristici dintr-o imagine. Imaginea studiat este din pcate destul de frecvent cu contrast sczut, format din puine nuane de gri. De aceea, alegerea metodei de prelucrare depinde de caracteristicile imaginii i de asemenea de scopul propus. n scopul recunoaterii unor obiecte din imagine este necesar distingerea lor prin separarea regiunilor cu proprieti comune. n continuare sunt prezentai civa operatori utilizai mai frecvent la extragerea conturului: Operator Gradient direcional E Gradient direcional NE Gradient direcional SV Filtru trece-sus 1 Filtru trece-sus 2 Valori Operator Valori Operator Valori 1 0 -1 1 0 -1 1 0 -1 1 2 1 0 0 0 -1 -2 -1 1 0 -1 2 0 -2 1 0 -1 -3 -3 5 -3 0 5 -3 -3 5 5 5 5 -3 0 -3 -3 -3 -3

1 1 1 1 -2 1 Laplacian -1 -1 -1 1 1 1 1 -2 -1 Laplacian 1 -1 -1 diagonal 1 1 -1 1 -2 -1 Laplacian 1 1 -1 orizontal 0 -1 0 -1 5 -1 Laplacian 0 -1 0 verical 0 -1 0 -1 4 -1 Prewitt 0 -1 0 orizontal

-1 -1 -1 -1 9 -1 Prewitt -1 -1 -1 vertical -1 0 -1 0 4 0 Sobel -1 0 -1 orizontal 0 -1 0 0 2 0 Sobel 0 -1 0 vertical 0 0 0 -1 2 -1 Kirsch 0 0 0 orizontal -1 -1 -1 0 0 0 Kirsch 1 1 1 vertical

f) Pseudocolorarea imaginilor medicale Alegerea culorilor din palet trebuie fcut astfel nct tranziia de la o culoare la alta s fie ct mai lin, fr salturi mari. Alegerile uzuale sunt urmtoarele: a) curcubeu : de la rou la violet cu aceeai luminozitate, b) spirala : de la violet la rou simultan cu creterea luminozitii, sau c) variaia de temperatur : rou, portocaliu, galben, alb, albastru deschis.

2 27

Tabelul urmtor conine o palet propus pentru aplicaiile biomedicale: Gri 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Culoare Negru Albastru R 0 0 0 0 0 0 15 17 19 21 23 25 27 29 26 29 32 35 38 41 44 47 50 53 56 59 48 53 55 57 59 61 G 0 0 0 0 0 0 2 3 3 5 6 7 8 9 0 5 5 5 5 5 5 5 5 5 5 5 24 26 27 28 29 30 B 0 1 2 3 4 5 0 0 0 0 0 0 1 1 0 5 5 5 5 5 5 5 5 5 5 5 9 11 12 13 14 15 Gri 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Culoare Maro deschis Portocaliu nchis R 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 61 62 63 G 31 31 33 35 37 39 41 40 45 47 49 51 53 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 61 62 63 B 16 0 0 0 0 0 0 0 0 0 0 0 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 61 62 63

Maro

Portocaliu Galben nchis

Rou nchis

Rou Maro nchis

Galben deschis Alb

2 28

3. Transformri ale imaginilor


n general, putem spune c transformarea unei imagini se adreseaz ochiului uman, pentru a puta observa mai bine anumite caracteristici ale imaginii studiate, sau prelucrrii automate n scopul recunoaterii formelor. Scopul transformrilor descrise n acest paragraf este de a obine anumite structuri formate din linii i curbe (imagini de tip 3) necesare recunoaterii formelor. n analiza imaginilor, o etap important o constituie extragerea caracteristicilor n scopul descrierii sau interpretrii scenelor, urmat de o alt etap i anume segmentare care presupune printre altele determinatrea conturului.

3.1. Determinarea conturului


Determinarea conturului este transformarea unei imagini de tip 2 (alb-negru) n imagine de tip 3 (format din linii i curbe), dup clasificarea dat n [3]. Muchiile, care caracterizeaz conturul obiectului (conturul fiind descris prin muchii), sunt utile n recunoaterea obiectelor (clasificarea n cazul reprezentrilor codificate). Muchiile sunt locaii de pixeli cu salturi mari de nuan (nivel) de gri. n imaginile alb-negru, muchiile sunt formate din puncte (pixeli) de culoare neagr cu cel puin un punct alb n vecintate. n rezolvarea aceste probleme trebuie precizate urmtoarele : a) Conexitatea, adic definirea vecintii.

Putem considera c un punct P(j,i) are patru vecini ( pe cele patru direcii, r(P), u(P), l(P), d(P) ) din fereastra ecran (VE) : V4(P) = { Q VE / (P,Q) =1 } sau opt vecini : V8(P) = { Q VE / 1 (P,Q) < 2 }

Figura 3.1.1
b) Precizarea apartenenei conturului (Interior sau Exterior). Dac imaginea este alb-negru, atunci vom preciza culoarea fondului i culoarea obiectului. Practic vom preciza o culoare (alb sau negru) care reprezint culoarea punctelor pentru care se verific apartenena la contur (vezi figurile de mai jos, unde conturul poate fi unul din cele dou). 29 2

**********

******************

Figura 3.1.2
De exemplu PConturului dac :

Figura 3.1.3

Culoare(P)=Negru i | {QVv(P) / Culoare(Q)=Alb } | >1

Practic se verific pentru fiecare punct PVE condiiile de tipul celor de mai sus, sau mai simplu, putem spune c P Conturului dac urmtoarea expresie este adevrat: Ob(P) Xor (Ob(u(P)) Or (Ob(d(P))) Or (Ob(P) Xor (Ob(l(P)) Or (Ob(r(P))) , unde Ob(P) = (Culoare(P)= Culoare_Obiect) , Culoare_Obiect { Alb, Negru }. c) Obinerea descrierii conturului prin traversarea punctelor determinate. Mulimea punctelor P determinate anterior se va ordona, prin parcurgerea acestei din vecin n vecin (rezultnd i irul comenzilor de descriere, adic -cuvntul corespunztor) ncepnd cu un punct ales din contur (de exemplu cel mai din stngasus), pn se revine la punctul iniial sau nu se mai poate deplasa. Dac mai exist puncte din contur netraversate se construiete alt cuvnt de descriere i aa mai departe. In final vom avea o mulime de -cuvinte de descriere, deci un -limbaj (aa cum se poate vedea n figura alturat unde vor fi dou cuvinte de descriere).

Figura 3.1.4

30

3.2. Scheletizare
Obiectele sau scenele pot fi descrise prin diverse structuri compuse din diferite elemente (linii, curbe, etc). De exemplu n recunoaterea caracterelor, amprentelor, cromozomilor, a norilor, etc., sunt necesare transformri ale axei mediane n scopul obinerii unei descrieri a obiectului studiat. n cele ce urmeaz vor fi prezentate dou clase de algoritmi i anume: de scheletizare i de subiere. Intuitiv, putem s definim scheletul ca fiind mulimea punctelor n care se ntlnesc cel puin dou tangente la contur care pleac cu aceeai vitez (vezi figura alturat). Practic, scheletul unui obiect Ob este definit ca fiind mulimea punctelor POb pentru care distana pn la cel mai apropiat punct de pe contur (notat cu (P) ) realizeaz un maxim local. Algoritmul de determinare a scheletului unui obiect este urmtorul:

Figura 3.2.1

Calculeaz (P) pentru toate punctele POb: 1. 0(P) = Culoare(P) {0, 1} , POb;

0 = Negru este culoarea fondului iar 1 = Alb este culoarea obiectului; 2. k(P) = Culoare(P) +

QV4(P)

Min k -1(Q) ,

POb,

Figura 3.2.2

k=1,2,...,limea obiectului;

Determin Scheletul = { S Ob / (S) (P) , P V(S) }

Reconstituirea obiectului avnd scheletul acestuia se poate realiza utiliznd formula :

Obr =

{ OVE / d(O,P)< (P) }

PSchel. (practic prin desenarea discurilor de centru P i raz (P), pentru fiecare punct POb)

31

3.3. Subiere
Algoritmii de subiere urmresc transformarea obiectelor ntr-un set de arce digitale aflate de-a lungul axelor mediane (vezi figura 3.3.1). O caracteristic important a acestor algoritmi const n faptul c structura obinut nu depinde de neregularitile mici ale conturului. Strategia acestor algoritmi poate fi urmtoarea: se elemin punctele P Ob Contur(Ob), adic acele puncte de pe marginea sau frontiera obiectului, care ndeplinesc urmtoarele condiii:

au cel puin doi vecini (Ob): |V8(P)Ob| 2 (Nv(P)>1) nu provoac prin eliminare o deconectare a obiectului (rupere a legturilor) : Ob este conex Ob \ {P} este conex. Defini ia 3.3.1

Figura 3.3.1

3 45 32148 567 110 110111000

R este o regiune conex dac pentru P,Q R exist P0=P, P1,...,Pn=Q Ob astefl nct PiV8(Pi-1), i=1,2,...,n. Observaia 3.3.1

Figura 3.3.2

Extremitile arcelor subiri nu trebuie eliminate prin aceti algoritmi. Notaia 3.3.1 Numrul vecinilor punctului P (de culoare alb, Ob) este : Nv(P)::= |{Q/QOb}V8(P)|. Notaia 3.3.2 Numrul tranziiilor de la 0 la 1 n irul punctelor P1, P2 ,..., P8, P9=P1 este: Nt(P) :: = |{i{1,...,8} / PiOb i Pi+1Ob}V8(P)| (vezi figura 3.3.2, unde Nt(P)=2) Propozi ia 3.3.1 Punctul POb se poate elimina dac urmtoarele condiii sunt ndeplinite:

2 Nv(P) 6 ( dac Nv(P)=1 atunci P este extremitate, iar dac Nv(P)>6 atunci P este punct interior, deci nu se poate elimina nici n acest caz); Nt(P)=1 ( pentru a nu deconecta obiectul ).

Algoritmul const n determinarea i eliminarea punctelor care ndeplinesc propoziia 3.3.1. Verificarea condiiilor se repet pn cnd nu mai sunt modificri n imagine.

32

3.4. Transformri morfologice ( Morphological Processing [4])


Termenul de morfologie provine din studiul formelor plantelor i animalelor, dar pentru noi, Morphological Processing ([4]), nseamn determinarea structurii obiectelor din imaginile acestora. Transformrile morfologice constau n operaii prin care un obiect X este modificat de ctre un element structural B rezultnd o form convenabil prelucrrilor ulterioare (recunoaterea formei). Cele dou elemente care interacioneaz (X i B) sunt reprezentate ca mulimi din spaiul Euclidian bidimensional. Majoritatea operaiilor morfologice pot fi definite prin doua operaii de baz, eroziune i dilatare descrise n cele ce urmeaz. Notaia 3.4.1 Translaia lui B n x notat cu Bx, este acea translaie pentru care originea elementului structural B (OB) va coincide cu x (vezi figura alturat). Defini ia 3.4.1 Eroziunea lui X de ctre B, notat cu XO- B, este mulimea tuturor punctelor x pentru care Bx este inclus n X: XO- B = { x / Bx X }. Exemplul 3.4.1
oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo

Bx x X B

OB

o o o oo o oo oo o o o oo o oo oo o o oo o oo o oo o o o oo o oo o o o o o o oo o oo o o o o o oo o oo o o o o oo o oo o o o o o oo o oo oo o o o o oo o oo o

Ooo oo

o oo oo o oo oo o o o oo o oo oo o o o o o oo o oo oo oo oo oo oo o oo o oo o oo o o oo o oo oo oo oo oo oo oo oo o oo oo o oo oo o oo o oo o oo o

O-

oo oo

Se observ c eroziunea este o operaie de micorare a obiectului.

Legend: o - Origine, o - Obiect, o - Fond, o - ters.

33

Defini ia 3.4.2 Dilatarea lui X prin B, notat cu XO+ B, este mulimea acelor puncte x pentru care Bx i X au cel puin un element (punct) comun: XO+ B = { x / Bx X }. Exemplul 3.4.2
ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo ooooooooooooooo

oo o oo oo o o oo o oo oo o o oo o oo oo o o oo o oo o oo o oo o oo o oo o oo o oo oo oo oo o oo oo o o oo o oo oo o o

O+
ooo ooo ooo

o oo o oo oo o oo oo o o o oo o oo oo o oo oo o o o oo o oo oo o oo o oo o o oo o oo oo o oo o oo o o oo o oo oo oo o oo oo o oo o oo oo oo o oo oo o oo o oo oo oo o oo o o o oo o oo oo o oo oo o o o oo o oo o oo oo oo o o o oo oo o oo oo o oo o o o oo oo o oo oo o oo oo o oo oo o oo oo o oo oo o oo o oo oo o oo oo o o o oo o oo oo o oo oo o o

O+

ooo ooo ooo

Se poate observa c dilatarea este o operaie de extindere a obiectului.

Legend: o - Origine, o - Obiect, o - Fond, o - ters, o - Adugat.

Cele dou transformri morfologice de baz prezentate mai sus au urmtoarele proprieti: a) Invariana la translaie (Tr) : - Tr(X) O+ B = Tr(XO+ B) , - Tr(X) O- B = Tr(XO- B) ; b) Nici una nu este inversa celeilalte : c) Distributivitate : - X O+ (BB') = (XO+ B) (XO+ B') , - X O- (BB') = (XO- B) (XO- B') , - (XY) O- B = (XO- B) (YO- B) ; d) Iteraie : - (X O+ B) O+ B' = X O+ (BO+ B') , 34 (X O+ B) O- B X , (X O- B) O+ B X ;

- (X O- B) O- B' = X O- (BO+ B') , e) Incluziune : i Dac XX' Atunci X O- B X' O- B, B , X O+ B X' O+ B, B ; Dac BB' Atunci X; X O- B X O- B',

f) Dualitate (eroziunea i dilatarea sunt duale fa de complementare notat cu XC): - (XC O+ B) = (X O- B)C . n continuare vom prezenta cteva transformri uzuale, derivate din operaiile de baz (eroziune i dilatare) descrise mai sus. Vom vedea c transformrile axei mediane i subierea pot fi descrise i realizate prin astfel de transformri morfologice. a) BCXC: Potrivirea, notat cu XO* B, verific dac o structur BX i - X O* B= (X O- B) (XCO- BC) = (X O- B) (XO+ BC )C = = (X O- BOb) \ (XO+ BBk) (s-a notat B cu BOb, iar BC cu BBk)
*

pentru c dac (XC O+ B) = (X O- B)C (proprietatea f) pentru X i B) rezult c (X O+ BC) = (XC O- BC)C (aplicat pentru XC i BC). (*) BOb trebuie s se potriveasc cu obiectul X, iar BBk cu fundalul (Background); n exemplul de mai jos se caut colurile obiectului pe direcia dreapta-jos:
ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo

O*

ooo ooo ooo

respectiv pe direcia stnga sus:


oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo oooooooooo

O*

ooo ooo ooo

35

b) Deschiderea lui X fa de B, notat cu XB este domeniul baleiat de toate translaiile lui B incluse n X: - XB = (X O- B) O+ B; Netezete conturul (elimin asperitile) i separ insulele mici:
ooooooooo ooooooooo ooooooooo ooooooooo ooo ooo ooo ooooooooo ooooooooo ooooooooo ooooooooo

B
ooooooooo ooooooooo ooooooooo ooooooooo

ooooooooo ooooooooo ooooooooo ooooooooo

XB

XO- B

(XO- B)O+ B

c) nchiderea lui X fa de B, notat cu XB este duala deschiderii: - XB = (X O+ B) O- B; Blocheaz (nchide) calanele nguste i lacurile mici:
ooooooooo ooooooooo ooooooooo ooooooooo ooo ooo ooo ooooooooo ooooooooo ooooooooo ooooooooo

X d) Determinarea Conturlui ( X ): - X = X \ (X O- G);

XB

Determin punctele de pe contur fr a da o ordine a acestora:


ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooo ooo ooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo ooooooooo

Se poate observa n exemplul de mai sus c X O- G reprezint interiorul lui X, pe care dac l eliminm din X vom obine conturul acestuia.

e) Subierea, ca operaie mofologic se definete astfel: 36

- X O B = X \ (X O* B); o - obiect, unde: o - fond, * - neutru.

Elementul structural uzual este B = ooo*o*ooo o * *o

Pentru o subiere simetric se va aplica succesiv operaia descris mai sus, utiliznd ca element structural obiectul B rotit: X O s B = ((((X O B1) O B2) O ) O Bn), unde: B1=B i Bi = Rotit(Bi-1), 1 i n.
oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo

ooo ooo ooo

s XOB

f) ngroarea lui X prin B, notat cu X Oo B este duala subierii i se definete astfel: X Oo B = X (X O* B);
oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo

oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo

ooo ooo ooo

X oB O

g) Scheletul unui obiect X este definit astfel: Fie rDx discul de raz r i centru x; Fie sr(x) mulimea centrelor discurilor de raz r, maximale, coninute n X i care intersecteaz conturul obiectului X n cel puin dou puncte.

Scheletul lui X, notat cu S(X) este mulimea centrelor sr(x): - S(X) =


r >0

sr(x) , iar sr(x) = (X O- rD) \ (X O- rD)drD , unde drD este un disc orict de mic;

Obiectul X reconstituit din scheletul su este: - X=


r >0

[sr(x) O+ rD ] .
ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo ooooooo

Pentru a obine scheletul unui obiect vom nlocui discul rD cu

37

ooo ooo ooo

S(X)

elementul de structur (G) definit de un ptrat de dimensiuni 3x3 aa cum se opate vedea n figura alturat:

n acest mod putem obine

Scheletul lui X:
nmax nmax

- S(X) =
n=0

sn(x) =
n=0

[(X O- nG) \ (X O- nG)G ] ,

unde nmax este cel mai mic n pentru care X O- nG = (erodat succesiv devine vid);

Obiectul X reconstituit:
nmax

- X=
n=0

[sn(x) O+ nG ] .

h) Curare (Prune ), elimin ramurile nedorite, care pot rezulta la o operaie de subiere: - Xpn = X1 [ (X2O+ G)

X ] , unde:

X1 = X O s E ;
8

X2 =
j= 1

[ X1O* E j ] ;
o - obiect, o - fond, * - neutru.

E= ; *** o o ***oooooo

oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo

ooo ooo ooo

oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo oooooooooooooo

Xpn

38

Lucr ri de laborator
1. Reprezentarea imaginilor prin funcii picturale i cuvinte picturale (1.1)

Conversii ntre imagini descrise prin funcii picturale i cuvinte picturale (algoritmii 1.1.1-1.1.3), descrieri prin puncte critice i aproximare Bezier.

2. Reprezentarea imaginilor prin arbori (1.2)

Codificarea i decodificarea unei imagini digitale utiliznd quad arbori i arbori binari.

3. mbun tirea imaginilor - Operaiuni punctuale (2.1)

S se genereze pe ecran o imagine i apoi s se aplice o transformare de mbuntire a imaginilor prin operaiuni punctuale (accentuarea contrastului, reducerea zgomotului i modificarea histogramei).

4. mbun tirea imaginilor - Operaiuni spaiale (2.2)

S se genereze o imagine pe ecran iar apoi s se aplice acesteia o transformare de mbuntire utiliznd operaiuni spaiale (mediere, filtrare i accentuarea conturului).

5. mbun tirea imaginilor - Operaiuni spaiale (2.2)

Dilatarea, mbuntirea i pseudocolorarea unei imagini medicale date de tip 2 (cu nuane de gri).

6. Transform ri ale imaginilor - Determinare contur, Scheletizare, Subiere (3.1-3.3)

Aplicai cele trei transformri (Determinare contur, Scheletizare i Subiere) unei imagini generate pe ecran.

7. Transform ri ale imaginilor (II) - Transformri morfologice (3.4)

Aplicai cele dou transformri de baz (Eroziune i Dilatare), plus nc dou oparaii (de acest tip, la alegere), unei imagini aflate pe ecran.

39

Bibliografie

1. A.K. Jain, Fundamentals of DigitalImage Processing, Prentice-Hall, London, 1989. 2. S. Nedevski, Prelucrarea Imaginilor i Recunoaterea Formelor, Editura Albastr, Cluj-Napoca, 1998. 3. T. Pavlidis, Algorithms for Graphics and Image Processing, Springer-Verlag, Berlin-Heidelberg, 1982. 4. V. Prejmerean, Grafic pe calculator i prelucrri de imagini, Litografia Universitii de Nord Baia Mare, 2000. 5. A. Vlaicu, Prelucrarea digital a imaginilor, Editura Albastr, Cluj-Napoca, 1997. 6. A. Watt, 3D Computer Graphics, Addison-Wesley, Great Britain, 1993.

40