1 / 43

REPREZENTAREA SI DESCRIEREA IMAGINILOR (1/2)

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;

sai
Download Presentation

REPREZENTAREA SI DESCRIEREA IMAGINILOR (1/2)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. REPREZENTAREA SI DESCRIEREA IMAGINILOR(1/2) Reprezentarea granitelor Descriptori de granite

  2. 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).

  3. 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.

  4. a) b)

  5. c) d)

  6. 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).

  7. 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.

  8. 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).

  9. 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.

  10. 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).

  11. 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.

  12. Exemple. In primul caz r(θ)=const, iar in al doilea caz r(θ)=A/cos(θ) pentru 0≤ θ ≤π/4 si r(θ)=A/sin(θ) pentru π/4≤ θ ≤π/2.

  13. 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).

  14. 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.

  15. 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.

  16. 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).

  17. Exemple: utilizeaza distanta euclidiana pentru a gasi vecinii cei mai apropiati.

  18. 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.

  19. 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 .

  20. 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.

  21. 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).

  22. 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').

  23. Aplicatie: os uman =>in partea superioara dreapta doua linii de schelet, in loc de una singura!

  24. 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.

  25. 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.

  26. 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.

  27. 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.

  28. Exemplu. Cod de inlantuire cu 8 directii. Parcurgere: sens antiorar =>numarul de forma (fiecare cifra fiind chiar valoarea corespunzatoare din cod).

  29. 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.

  30. 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)

  31. c) d)

  32. 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.

  33. 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.

  34. 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.

  35. 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θ).

  36. Modificarea descriptorilor Fourier de rotatie, translatie, scalare si schimbarea punctului de start:

  37. 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).

  38. 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)

  39. 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!

  40. 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.

More Related