470 likes | 689 Views
REPREZENTAREA SI DESCRIEREA IMAGINILOR (1/2). Reprezentarea granitelor Descriptori de granite. S egmentare a unei imagini => regiuni reprezenta re pentru prelucrari ulterioare: -prin caracterisitici externe (granite) intereseaza formele;
E N D
REPREZENTAREA SI DESCRIEREA IMAGINILOR(1/2) Reprezentarea granitelor Descriptori de granite
Segmentarea unei imagini => regiuni reprezentarepentru prelucrari ulterioare: -prin caracterisitici externe (granite) intereseaza formele; -prin caracterisitici interne (pixelii regiunii) intereseaza proprietatile (culoare, textura). Uneori: ambele reprezentari. In continuare: o regiune descrisa prin caracterisitici (exemplu: prin granita granita descrisa prin caracterisitici: lungime, orientarea liniei drepte care uneste punctele extreme, numar de concavitati).
REPREZENTAREA GRANITELOR Coduri de inlantuire In general o imagine: spatieri egale pe orizontala si pe verticala => cod de inlantuire prin urmarirea granitei (exemplu: in sens orar) si asignarea unei directii segmentelor conectand fiecare pereche de pixeli. Dezavantaje: -cod prea lung; -orice perturbare pe granita (zgomot, segmentare imperfecta) => modificari in cod (nu apartin formei granitei). Solutie: utilizarea unei retele de spatiere mai largi. Exemplu: (a) cod de inlantuire cu 4 directii; (b) cod de inlantuire cu 8 directii; (c) granita; (d) rezultatul dupa reesantionare; (e,f) codurile de inlantuire corespunzatoare.
a) b)
c) d)
e) f) Codul = f(punct de start) normalizare: tratarea codului ~ secventa circulara si redefinirea punctului de start astfel incat secventa de valori sa formeze un numar intreg minim. Normalizare pentru rotatie: considerand diferentele dintre valori succesive (schimbarile de directie).
Aproximatii poligonale Granita ~ poligon. O curba inchisa ~ poligon: numar de laturi = numarul de pixeli (o latura este definita de o pereche de puncte adiacente) => problema mare consumatoare de timp. Tehnici de aproximare poligonala de complexitate mai mica si cerinte mai modeste de prelucrare.
Poligoane de perimetru minim Exemplu. O granita incadrata cu un set de celule concatenate => poligonul de perimetru minim care se incadreaza in geometria data de setul de celule. Analogie: granita ~ banda elastica se strange => poligonul de perimetru minim. In cazul in care fiecare celula incadreaza un singur pixel de pe granita, eroarea maxima (distanta) dintre granita si poligon = (diagonala celulei, d fiind pasul de esantionare).
Tehnici de fuzionare ("merging techiques") Criteriulde baza de tipul eroare medie: sunt fuzionate puncte pana cand eroarea medie patratica (segmentul poligonului fata de punctele de pe granita) depaseste un prag => -parametrii segmentului memorati; -eroarea initializata cu 0; -procedura se repeta cu urmatoarele puncte de pe granita. => segmentele adiacente formeaza varfurile poligonului! Dezavantaj: varfurile poligonului nu corespund intotdeauna cu inflexiunile (colturile) granitei initiale. Solutie: utilizarea fuzionarii cu despicarea.
Tehnici de despicare ("splitting techniques") Un segment divizat succesiv in doua parti pana cand este satisfacut un anumit criteriu (exemplu: distanta perpendiculara maxima de la un segment de granita la linia unind capetele segmentului respectiv sa nu depaseasca un prag. Daca depaseste pragul => punctul de pe granita cu distanta cea mai mare devine un varf, impartind segmentul initial in doua segmente). Granita inchisa: puncte de plecare pentru primul segment = cele doua puncte extreme (aflate la distanta maxima). Exemplu: => patrulater (valoarea de prag =1/4 din lungimea segmentului initial ab).
Semnaturi Semnatura = reprezentare functionala 1-D a unei granite. Generare: diferite cai. 1) Solutie simpla: reprezentarea distantei de la centru la granita ca o functie de unghi => o functie 1-D, mai simplu de descris decat o functie 2-D.
Exemple. In primul caz r(θ)=const, iar in al doilea caz r(θ)=A/cos(θ) pentru 0≤ θ ≤π/4 si r(θ)=A/sin(θ) pentru π/4≤ θ ≤π/2.
Semnaturile generate prin aceasta metoda: -invariante la translatii; -depind de rotatii si scalari. Normalizare privind rotatia: selectarea punctului de start pentru generarea semnaturii, indiferent de orientarea formei: -punctul cel mai indepartat de centru (daca este punct unic); -punctul cel mai indepartat de centru de pe axele "eigen”. Normalizare a valorilor: cuprinse intre [0,1] => sensibilitate la zgomote, care afecteaza valorile maxima si minima. 2) Alta solutie de generare de semnaturi: memorarea unghiului facut de tangenta in fiecare punct de pe granita cu o linie de referinta => informatii despre forma conturului (ex: unghi constant ~ linie dreapta). Varianta de semnatura: functia de densitate a pantei (este o histograma a valorilor unghiului tangentei la granita).
Segmente de granita Descompunerea granitei in segmente: => reduce complexitatea granitei; => simplifica procesul de descriere. Util: cand granita contine una sau mai multe concavitati continand informatii despre forma. Eficient: sa se utilizeze invelitoarea convexa a unei regiuni inchise de granita. Definitii. Invelitoarea convexa H a unui set arbitrar S= setul convex cel mai mic continand pe S. Deficienta convexa a setului S = multimea diferenta H-S.
Aplicatie. (a) set S (obiect) si deficienta sa convexa (reprezentata umbrit). (b) Granita regiunii: urmarind conturul lui S si marcand punctele de tranzitie de intrare sau iesire in cadrul deficientei convexe. • b) • Metoda: independenta de dimensiunea si orientarea regiunii. • Zgomotul tinde sa introduca o serie de segmente mici nesemnificative => filtrare inainte de partitionare.
Schelete Forma structurala a unei regiuni: reducerea la un graf => scheletul (pe baza unui algoritm de subtiere, scheletizare). Aplicatii: inspectia automata a circuitelor imprimate, numararea fibrelor de asbest din filtrele de aer, etc). Scheletizarea prin morfologie => schelet neconectat => alt algoritm! Scheletul unei regiuni: transformarea de axa mijlocie (MAT – "medial axis transformation") propusa de Blum. MAT-ul unei regiuni R cu granita B: pentru fiecare punct p din R se cauta cel mai apropiat vecin in B. Daca p are cel putin doi astfel de vecini, atunci p apartine axei mijlocii (mediane) a lui R (skeletonului).
Exemple: utilizeaza distanta euclidiana pentru a gasi vecinii cei mai apropiati.
Ilustrare intuitiva a scheletului = foc in preerie: -se aprinde granita; -focul inainteaza uniform in interiorul regiunii; -scheletul = multimea de puncte in care ajung in acelasi moment de timp doua sau mai multe focuri. Determinarea scheletului: volum mare de calcule! Algoritmii de subtiere sterg iterativ puncte de pe contur daca: -nu sunt sterse puncte terminale; -nu se intrerupe conectivitatea; -nu produce erodarea excesiva a regiunii.
Algoritm de subtiere pentru regiuni binare (regiunea are pixeli 1 si fondul pixeli 0). Un pixel se afla pe contur daca are valoarea 1 si are cel putin un vecin de dimensiune 8 (intr-o vecinatate 3x3) cu valoarea 0. Pas 1) Un punct de contur p1 este marcat pentru stergere daca: (a) 2 ≤ N(p1) ≤ 6 (b) T(p1) = 1 (c) p2 ∙ p4 ∙ p6 = 0 (d) p4 ∙ p6 ∙ p8 = 0 unde N(p1) este numarul de vecini nenuli ai lui p1: N(p1) = p2 + p3 + ... + p8 + p9 iar T(p1) este numarul tranzitiilor 0-1 din secventa ordonata p2 , p3 , ... , p8 , p9 , p2. Exemplu: N(p1) = 4, T(p1) = 3 .
Pas 2) Conditiile (a) si (b) raman neschimbate, dar (c) si (d) se modifica: (a) 2 ≤ N(p1) ≤ 6 (b) T(p1) = 1 (c') p2 ∙ p4 ∙ p8 = 0 (d') p2 ∙ p6 ∙ p8 = 0 Aplicarea algoritmului iterativ! La o iteratie: -executa pasul 1 pentru toate punctele de pe granita, marcand punctele pentru stergere daca indeplinesc toate conditiile (a)-(d) (punctele sunt doar marcate si nu sterse pentru a nu modifica forma regiunii); -sterge punctele marcate; - executa pasul 2 pentru toate punctele de pe granita, marcand punctele pentru stergere daca indeplinesc toate conditiile (a)-(d'); -sterge punctele marcate. Incheiere: dupa o iteratie nu sunt sterse puncte noi =>scheletul regiunii.
Analiza conditiilor. Conditia (a) incalcata ~ p1 are un vecin sau 7 vecini dim-8 cu valoarea 1(al 8-lea trebuie obligatoriu sa fie de fond): -daca unul => p1 este punct terminal => nu trebuie sters! -daca 7 => nu trebuie sters!(ar produce erodarea in interiorul regiunii) Conditia (b): impiedica deconectarea segmentelor scheletului (stergerea p1cuT(p1) > 1=> unificarea a doua zone de fond => fragmentarea scheletului).
Conditiile (c) si (d) satisfacute simultan: (p4 = 0 SAU p6 = 0) SAU (p2 = 0 SI p8 = 0). Conditiile(a), (b), (c) si (d): p1= punct de pe granita S sau E / punct de colt NV. Conditiile (c’) si (d’) satisfacute simultan: (p2 = 0 SAU p8 = 0) SAU (p4 = 0 SI p6 = 0). Conditiile(a), (b), (c’) si (d’): p1= punct de pe granita N sau V / punct de colt SE. => punctul trebuie sters! Observatii: -punct de colt NE satisface p2 = 0 SI p4 = 0 => (c) si (d), (c') si (d'); -punct de colt SV satisface p6 = 0 SI p8 = 0 => (c) si (d), (c') si (d').
Aplicatie: os uman =>in partea superioara dreapta doua linii de schelet, in loc de una singura!
DESCRIPTORI DE GRANITE Descriptori simpli Lungimea unei granite = numarul de pixeli de pe granita. Exemplu: curba reprezentata prin cod de inlantuire cu spatiere unitara in ambele directii => lungimea = numarul de componente orizontale + numarul de componente verticale + x numarul de componente diagonale. Diametrul unei granite: D= masura a distantei; pi,pj= puncte de pe granita. Axa majora a granitei = segmentul unind cele doua puncte extreme care identifica diametrul => orientarea axei.
Axa minora= perpendiculara pe axa majora avand lungimea astfel incat dreptunghiul determinat include complet granita => dreptunghi de baza. Excentricitatea granitei = raportul dintre lungimile axelor majora si minora. Curbura= rata de schimbare a pantei (diferente intre pantele segmentelor succesive de pe granita). Parcurgerea pantei in sens orar: un punct p apartine unui segment convex daca schimbarea pantei este nenegativa, altfel segmentul este concav.
Numere de forma ("Shape numbers") Diferenta intai a unei granite reprezentata prin cod de inlantuire depinde de punctul de start! Numarul de forma al granitei pe baza codului cu 4 directii: = diferenta intai a magnitudinii celei mai mici. Ordinul n al unui numar de forma = numarul de cifre din reprezentarea sa: -n par pentru o granita inchisa; -n limiteaza numarul posibil de forme diferite.
Exemplu. Toate formele de ordin 4, 6 si 8, reprezentarile prin coduri de inlantuire, diferentele intai si numerele corespunzatoare de forme. Parcurgerea: sens orar. Dupa obtinerea unui numar de forma rotit => valoarea minima.
Exemplu. Cod de inlantuire cu 8 directii. Parcurgere: sens antiorar =>numarul de forma (fiecare cifra fiind chiar valoarea corespunzatoare din cod).
Practic: pentru un ordin dorit de forma se cauta dreptunghiul de ordin n a carui excentricitate aproximeaza cel mai bine dreptunghiul de baza => se utilizeaza acest dreptunghi pentru a stabili dimensiunea gridului. Exemplu: n = 12 => toate dreptunghiurile de ordin 12 (avand perimetrul egal cu 12): 2x4, 3x3 si 1x5. Cea mai buna potrivire: excentricitatea dreptunghiului 2x4 => grid 2x4 centrat pe dreptunghiul de baza => codul de inlantuire.
Aplicatie. (a) granita avand specificat n=18. (b) => deptunghiul de baza. (c) cel mai apropiat dreptunghi de ordin 18 = 3x6 => impartirea dreptunghiului de baza in subdiviziuni. (d) codul de inlantuire diferentele intai => numarul de forma. a) b)
c) d)
Descriptori Fourier Granita de K puncte in planul xy, incepand de la un punct de start arbitrar (x0,y0), in sens orar: (x0,y0), (x1,y1), (x2,y2), ... , (xK-1,yK-1) Coordonatele:s(k) = [x(k), y(k)], pentru k = 0, 1, 2, ... , K-1. Fiecare coordonata ~ numar complex: s(k) = x(k) + jy(k) pentru k = 0, 1, 2, ... , K-1. => axa x~ axa reala =>axay~ axa imaginara. Avantajul: reducerea problemei 2-D problema 1-D.
Transformata Fourier discreta (DFT) a secventei s(k): pentru u = 0, 1, 2, ... , K-1. Coeficientii a(u): descriptorii Fourier ai granitei. Transformata Fourier inversa reface s(k): pentru k = 0, 1, 2, ... , K-1.
La refacerea s(k): -toti coeficientii Fourier => refacere exacta; -primii P coeficienti ~ a(u) = 0 pentru u > P-1=> aproximare a lui s(k): pentru k = 0, 1, 2, ... , K-1(chiar daca se utilizeaza doar P termeni k ia valori de la 0 la K-1). => frecventele inalte ~ detalii mici ale granitei; =>frecventele joase ~ forma generala. Observatie. P scade => se pierd detalii din granita. Aplicatie. Granita patrata de K = 64 puncte => reconstructia granitei pentru diferite valori ale lui P. -P= 8 ~ patrat ; -P = 56 ~ colturile; -P = 61 ~ laturi drepte.
Cerinta: descriptorii sa nu fie sensibili (pe cat posibil) la: • -translatie; • -rotatie; • -scalare; • -punctul de start. • Descriptorii Fourier depind de aceste modificari geometrice • modificarile parametrilor legate de transformari simple ale descriptorilor. • Rotatia cu un unghi θ in jurul originii complexe ~ inmultirea cu eiθ => la fel cu toate punctele => intreaga secventa s(k) se roteste cu eiθ. • Secventa rotita s(k) eiθ are descriptorii Fourier: u = 0, 1, 2, ... , K-1(toti coeficientii afectati in mod egal printr-un factor eiθ).
Modificarea descriptorilor Fourier de rotatie, translatie, scalare si schimbarea punctului de start:
unde Δxy = Δx + j Δy => st(k) = s(k) + Δxy ~ st(k) = [x(k) + Δx] + j [y(k) + Δy] sp(k) = s(k – k0)~ sp = x(k – k0) + jy(k – k0) (schimba punctul de start al secventei de la k = 0 la k = k0). Schimbarea punctului de start afecteaza toti descriptorii intr-o mod diferit, dar cunoscut (factorul care inmulteste a(u) depinde de u).
Momente statistice Forma segmentelor de granita ~ momente statistice simple (media, varianta si momente de ordin superior). Exemplu. (a) segment dintr-o granita. (b) segmentul ca o functie 1-D g(r), de o variabila arbitrara (conectarea punctelor terminale si rotatia liniei obtinute pana la orizontala) => coordonatele rotite cu acelasi unghi. a) b)
Amplitudinea lui g~ variabila aleatoare v => histograma de amplitudini p(vi), i = 0, 1, 2, ... , A-1, (A= numarul de amplitudini discrete in care se poate imparti scara de amplitudini). p(vi)= estimata a probabilitatii valorii vi=> momentul de ordin n a lui v fata de media sa: unde m= valoarea medie a lui v; μ2= varianta. In general sunt necesare numai primele cateva momente pentru a distinge intre semnaturi ale unor forme evident distincte!
Alta solutie: normalizarea lui g(r) la arie unitara ~histograma => g(ri)~ probabilitatea de aparitie a valorii ri => r~ variabila aleatoare => momentele: unde (K= numarul de puncte de pe granita)=>μn(r) direct legat de forma lui g(r). Momentele permitinterpretare fizica a formei granitei.Exemplu: -μ2(r) masoara imprastierea curbei in jurul valorii medii a lui r; -μ3(r) masoara simetria sa fata de medie. Avantaj: reducerea descrierii curbei la functii 1-D.