Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de...

90
APIM6 - 1 Reprezentarea si analiza obiectelor

Transcript of Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de...

Page 1: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 1

Reprezentarea si analiza

obiectelor

Page 2: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 2

In cursul de astazi… • Masuratori ale formei obiectelor

• Masuratori ale obiectelor multiple – masuratori globale ale obiectelor

– numararea obiectelor

– obiecte care intersecteaza marginea imaginii

– obiecte suprapuse

– distributia obiectelor

– transformata Hough

• Reprezentarea obiectelor – reprezentarea frontierei obiectelor

– reprezentarea regiunilor

Page 3: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 3

Introducere

• Segmentarea imaginilor = impartirea imaginii in structuri cu un anumit inteles

• Sarcina procesarii imaginii = determinarea unui grup de pixeli dintr-o imagine care sunt uniti intr-un anumit fel

• Grup de pixeli = obiect

• Utilizarea acestui grup de pixeli pentru a face masuratori

• Reprezentarea obiectelor

Page 4: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 4

Conectivitate • obiectul = un set de pixeli conectati

• in 2D: – conectivitate 4 (N4)

– conectivitate 8 (N8)

• in 3D: conectivitate 6, 18 sau 26

conectivitate 4 conectivitate 8

Page 5: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 5

Metrici distanta

• distanta Manhattan (city-block, taxicab) pentru N4

d4(x,y) = |x1-x2| + |y1-y2|

• distanta Chebyshev (chessboard) pentru N8

d8(x,y) = max{|x1-x2|, |y1-y2|}

• distanta euclidiana

Page 6: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 6

Masuratori ale formei obiectului

• Masuratoarea reduce imaginea la un scalar si ascunde detaliile

• Dificultatea = alegerea masuratorii adecvate tipului de aplicatie; alegerea masuratorii care reduce informatia de care avem nevoie la un scalar

• Exista un numar mare de masuratori de baza asupra formei obiectelor

• Deseori nu exista consens in definirea lor matematica

• Majoritatea masuratorilor sunt sensibile la rezolutie

Page 7: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 7

Masuratori ale formei obiectului (2) • aria

• perimetrul

• compactitatea

• rotunjimea

• cea mai lunga coarda

• cea mai lunga coarda perpendiculara

• excentricitatea

• elongatia

• aria minima a dreptunghiului circumscris

• dreptunghiularitatea

• curbura

• etc.

Page 8: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 8

Masuratori ale formei obiectului (3)

• Aria (A) – numararea tuturor pixelilor continuti in obiect

• Perimetrul (l) – lungimea totala a frontierei obiectului

– pasul poate fi 1 sau 2

l = 11.07

l = 14

Page 9: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 9

Masuratori ale formei obiectului (4) • Compactitatea:

– c mic - obiect compact

– c mare - obiect mai putin compact

– c =1 -> cerc

– c>1 pentru celelalte forme

• Rotunjimea =1/c

A

lc

4

2

Page 10: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 10

Masuratori ale formei obiectului (5)

• Cea mai lunga coarda:

– masurata intre pixeli (x1,y1) si (x2,y2) aflati pe frontiera figurii

• Cea mai lunga coarda perpendiculara = lp

• Excentricitatea = lc/lp

12

12

2

12

2

12 )()(

xx

yytg

yyxxlc

Page 11: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 11

Masuratori ale formei obiectului (6) • Aria minima a dreptunghiului circumscris – Am

– aprox. Am = lclp

• Dreptunghiularitatea = A/Am

– este 1 pentru dreptunghi

– este <1 pentru toate celelalte forme

Page 12: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 12

Masuratori ale formei obiectului (7)

• Elongatia = lb/sb

– sau A/t2, unde t este grosimea obiectului (se poate obtine prin

erodare)

Page 13: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 13

Masuratori ale formei obiectului (8) • Curbura

– unghiul dintre liniile care se intersecteaza pe frontiera in punctul i, linii ce pornesc din al n-lea pixel de pe frontiera de o parte si de alta a pixelului i

– curbura globala a obiectului= cs/ct, unde ct este numarul de pixeli de pe frontiera obiectului si cs numarul de pixeli unde curbura depaseste o anumita valoare de prag

– creste n -> scade sensitivitatea curburii locale

Page 14: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 14

Masuratori ale formei obiectului (9)

• Energia constrictoare - un alt mod de ingloba curbura

locala intr-o valoare globala

– unde l este perimetrul si α este unghiul definit pentru curbura

Page 15: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 15

Exemple

Cercuri de doua

dimensiuni -> aria Cercuri si elipse ->

excentricitatea

Elipse orientate in

doua directii ->

orientarea celei mai

lungi corzi

Page 16: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 16

Exemple

Cercuri si patrate ->

dreptunghiularitate sau

compactitate

Patrate si octogoane ->

dreptunghiularitate sau

compactitate

Page 17: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 17

Masuratori bazate pe schelet (1) • Pana acum masuratorile au fost efectuate luand in

considerare pixelii de pe frontiera obiectului

• Se pot face masuratori utilizand scheletul si functia quench

• Numarul de goluri (h) dintr-un obiect:

– unde: b – numarul de ramuri

e – numarul de puncte finale

Page 18: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 18

Masuratori bazate pe schelet (2)

h=1+(b-e)/2 -> e=2+b-2h;

e =2

e= 2 + b

e = 2 + b – 2h

Page 19: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 19

Masuratori bazate pe schelet (3) • Grosimea obiectului –data de functia quench

– functia quench -> metoda scheletului pe baza sferelor maxime -> discontinuitati si ramnificari false -> util. subtierii

Page 20: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 20

Transformata distanta • Asociaza fiecarui pixel al obiectului distanta sa pana

la cel mai apropiat pixel al fundalului

Imaginea Transformata sa distanta euclidiana

Page 21: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 21

Transformata distanta (2) • in general se utilizeaza doar numere intregi ->

distanta Manhattan

AB = 3

CD = 4

CE = 5

DE = 9

Page 22: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 22

Transformata distanta (3) • Transformata distanta a unui obiect dintr-o imagine

binara f este o suma de eroziuni cu elementul structural ’+’ de 3x3:

– unde n este suficient de mare astfel incat εn(f) sa fie o imagine goala

Page 23: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 23

Transformata distanta (4)

Page 24: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 24

Transformata distanta (5) • utilizarea eroziunii este ineficienta

• exista mai multi algoritmi

• un algoritm in doi pasi:

– se seteaza valorile pixelilor fundalului la 0 si valorile pixelilor obiectului la ;

– se parcurge imaginea de la stanga la dreapta si de sus in jos si se inlocuieste valoarea fiecarui pixel (x,y) cu valoarea:

v(x,y) = min{ v(x-1,y-1)+2, v(x,y-1)+1, v(x+1,y-1)+2, v(x-1,y)+1, v(x,y) };

– se parcurge imaginea de la dreapta la stanga si de jos in sus si se inlocuieste valoarea fiecarui pixel (x,y) cu valoarea: v(x,y) = min{v(x,y), v(x+1,y)+1,

v(x-1,y+1)+2, v(x,y+1)+1, v(x+1,y+1)+2};

Page 25: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 25

Transformata distanta (6) • uneori in loc de +1 si +2 se utilizeaza alte valori

(de ex. 3 si 4) daca se cere o aprox. mai buna a distantei euclidiene

• se pot utiliza urmatoarele nuclee

• inlocuirea se face direct in imagine si calculul valorii urmatorului pixel se face pe baza noii valori a pixelului anterior

Page 26: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 26

Exemplu

Page 27: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 27

Exemplu

Imaginea originala Transformarea ei

distanta

Scheletul obtinut

Page 28: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 28

Exemplu

Inmultirea transformatei

distanta cu scheletul

Transformata

distanta Scheletul obtinut

Page 29: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 29

Masuratori pe baza momentului (1)

• intr-o imagine binara aria este:

• coordonatele medii ale obiectului (coordonatele centrului de greutate sau centroidul) sunt:

Page 30: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 30

Exemplu

Page 31: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 31

Masuratori pe baza momentului (2)

• momentul de ordin p al functiei f(x):

• pentru 2D momentul de ordin p+q al functiei f(x,y):

• pentru o imagine f(x,y):

Page 32: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 32

Masuratori pe baza momentului (3) • pe baza definitiei momentului:

• momentul central μpq al functiei f(x,y):

• momentul central de ordinul doi ->axa momentului de inertie (echivalenta cu axa lungime a obiectului)

Page 33: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 33

Masuratori pe baza momentului (4) • excentricitatea:

• exemplu

Page 34: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 34

Exemplu

Page 35: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 35

Exemplu

Page 36: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 36

Determinarea dreptunghiului circumscris • o buna aproximare este dreptunghiul orientat dupa

unghiul θ definit anterior:

–schimbam sistemul de coordonate;

– cautam pixelii unde x' sau y' au valori maxime sau minime.

Page 37: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 37

Determinarea elipsei circumscrise • Centrul elipsei este in centrul de masa al obiectului

si axa sa cea mai lunga este aliniata cu θ:

–Excentricitatea:

Page 38: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 38

Momentele valorilor de gri Momentul mpq:

si momentul central μpq al functiei f(x,y):

au aceleasi ecuatii, apare doar suma ponderata a valorilor lui f(x,y)

Page 39: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 39

Exemplu

Page 40: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 40

Momentele valorii de gri (2) • Pot fi calculate in doua moduri:

– aplicand direct formulele momentului asupra imaginii

– utilizand un model hibrid binar/gri

Page 41: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 41

Momentele valorii de gri (3) • Utilizate la localizarea pozitiei exacte a unor

spoturi neclare datorita achizitiei imaginii

Page 42: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 42

Masuratori globale ale obiectelor • este util sa obtinem masuratori ce caracterizeaza la nivel

global obiectele dintr-o imagine

• cel mai simplu este sa obtinem masuratori individuale pe

care sa le compunem

• aria medie a unui obiect:

• eroarea medie patratica a ariei:

Page 43: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 43

Masuratori globale ale obiectelor (2)

• histograma masuratorilor -> examinarea distributiei statistice

Histograma

rectangularitatii

Histograma

excentricitatii

Page 44: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 44

Masuratori globale ale obiectelor (3)

• uneori nu e necesara obtinerea unor masuratori

individuale

• ex. distributia dimensionala a obiectelor

granulometria deschiderilor extinderea curbei (x pixeli in 103) cu inchiderile

Page 45: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 45

Masuratori globale ale obiectelor (4)

• ex. determinarea orientarii obiectelor

– determinarea imaginii modulului transformatei Fourier

– determinarea elipsei circumscrise obiectului din

imaginea Fourier -> orientarea axei lungi a elipsei

– mai putine calcule

• multe posibilitati -> dependente de aplicatii

Page 46: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 46

Numararea obiectelor

• Pentru imagini binare (f(x,y)=1 pentru pixelii (x,y) apartinand obiectului: 1. se seteaza numarul de obiecte la 0

2. se parcurge imaginea pana cand se intalneste un pixel care apartine unui obiect (f(x,y)=1)

– se incrementeaza numarul de obiecte cu 1

– se determina toti pixelii conectati cu pixelul (x,y)

– se sterge obiectul din imagine setand pixelii la 0

3. se continua parcurgerea imaginii (pasul 2) pana se ajunge la sfarsitul imaginii

Page 47: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 47

Numararea obiectelor (2)

• exemplu:

nr.de ob.=0 nr.de ob.= nr.de ob+1 cont. verificarea imag.

Page 48: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 48

Numararea obiectelor (3)

• un algoritm alternativ:

1. se aplica eroziunea finala asupra imaginii initiale f

2. daca este necesar se reduc markerii la puncte

izolate (prin subtiere); Imaginea obtinuta g contine

atatea obiecte izolate cate obiecte au fost in

imaginea initiala f

3. se numara punctele izolate din g: g(x,y)

Page 49: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 49

Numararea obiectelor (4)

• alg. original modificat-> permite asocierea unei etichete fiecarui obiect: 1. se seteaza numarul de obiecte la 0

2. se parcurge imaginea pana se intalneste un pixel care apartine unui obiect (f(x,y)=1)

– se incrementeaza numarul de obiecte cu 1

– se determina toti pixelii conectati cu pixelul

– se seteaza toti pixelii obiectului la valoarea nr.de ob.+1

3. se continua parcurgerea imaginii (pasul 2) pana se ajunge la sfarsitul imaginii

Page 50: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 50

Numararea obiectelor (5)

• dupa aplicarea alg. modificat obiectele vor fi

numerotate {2,…, n+1}

• selectarea unui obiect i pentru masuratori =

selectarea tuturor pixelilor care au valoarea i

Page 51: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 51

Obiecte care intersecteaza marginea

imaginii

• la efectuarea masuratorilor -> atentie la obiectele care intersecteaza marg. imag.

• tratare diferita, in functie de masuratoare – numarul de obiecte pe unitatea de suprafata -> nu se

numara ob. care intersecteaza marg. din dreapta si de jos a imaginii

– densitatea obiectelor -> raportul dintre aria obiectelor si cea a imaginii -> se considera toate obiectele

– masuratori de forma -> numai ob. care nu intersecteaza frontiera

Page 52: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 52

Obiecte care inters. marg. imag. (2)

• se ia o imag mai mica -> toate

obiectele care intersecteaza

marg. stanga si sus a imag.

mici

• obiecte care intersecteaza atat

marg. stanga si sus a figurii

orig cat si a fig. mici -> mas.

neconcludente

Page 53: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 53

Obiecte suprapuse

• genereaza masuratori incorecte

• numararea obiectelor suprapuse-> eroziuni

succesive -> separarea obiectelor

linia de separare

Page 54: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 54

Obiecte suprapuse (2)

• separarea obiectelor -> utila pentru eliminarea unor

deviatii introduse in masuratori

Imaginea imaginea+SKIZ

Page 55: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 55

Obiecte suprapuse (3)

• Segmentarea Watershed

Page 56: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 56

Obiecte suprapuse (4)

Page 57: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 57

Obiecte suprapuse (4)

• Prin segmentare watershed unele obiecte care se suprapun

prea mult raman neseparate

Page 58: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 58

Distributia obiectelor

• asezarea obiectelor unele fata de altele:

– grupate

– uniform distribuite

– distribuite aleator

Page 59: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 59

Distributia obiectelor (2)

• histograma distantelor celui mai apropiat obiect:

– de la frontiera pana la frontiera

– de la centroid la centroid

• histograma:

– distante mici -> ob. grupate

– distante de o valoare fixa -> ob. uniform distribuite

– mai dispersata -> ob. distribuite aleator

Page 60: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 60

Distributia obiectelor (3)

• O aproximatie buna = transformata distanta a

scheletului fundalului -> distanta pana la cel mai

apropiat obiect = dublul transf. distantei unui ob.

Page 61: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 61

Transformata Hough

• det. liniile dintr-o imagine

• spatiu (x,y), linie y=ax+b -> spatiu (a,b); o line in

spatiul (x,y) -> un punct in spatiu (a,b)

• nu pot modela liniile verticale

y=x si y= -0.5x+1 (1,0) si (-0.5, 1)

Page 62: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 62

Transformata Hough (2) • Algoritm:

– se creeaza o imagine goala H

– pentru fiecare pixel al obiectului determinam (a,b) corespunzator dreptei care trece prin pixel si marim valoarea lui H(a,b) pentru perechile respective (a,b)

• Alg. modificat: – selectam un set de valori discrete pentru a si b (ex. a

{0,0.1,0.2,0.3,…,100} si b {0,1,2,…100}

– se creeaza o imagine goala H

– pentru fiecare pixel p al obiectului pentru fiecare ai din set determinam b a.i. dreapta sa treaca prin pixel;rotunjim b la cea mai apropiata val din set, bj; H(ai,bj) = H(ai,bj)+1

Page 63: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 63

Transformata Hough (3)

Page 64: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 64

Transformata Hough (4) • in practica caract. liniilor prin a si b nu e eficienta –>

distanta de la centru la dreapta si unghiul sau fata de

abscisa

Page 65: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 65

Transformata Hough (5)

• util. pentru detectarea laturilor drepte -> calculeaza

imaginea cu laturi si apoi alg.:

a) calc. imaginii cu laturi (de ex. Sobel)

b) binarizarea imag. folosind o val. de prag

c) aplicarea transformatei Hough pe imag. binarizata

d) localizarea maximului local in imag. transformata si calcularea liniilor corespunzatoare din imag. originala

Page 66: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 66

Transformata Hough (6)

Page 67: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 67

Transformata Hough (7)

• in imaginile in nuante de gri la valoarea lui H(a,b) se adauga

valoarea de gri a pixelului respectiv

• este o tehnica robusta <- insensibila la zgomot

Page 68: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 68

Extensia transformatei Hough • se pot detecta si alte forme parametrizate

• de ex. spatiul (x,y) -> spatiul cercurilor (a,b,r) unde

(a,b) este centrul cercului si r este raza lui:

(x-a)2+(y-b)2=r2 0r

1r

0 0( , )a b

1 1( , )a b

0 0( , )x y

Page 69: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 69

Extensia transformatei Hough (2)

• algoritm asemanator:

– selectam un set de valori discrete pentru a, b si r

– se creeaza o imagine goala tridimensionala H(a,b,r)

– pentru fiecare pixel p al obiectului determinam a,b si r

din seturi a.i. cercul sa treaca prin pixel -> H(ai,bj,rj) =

H(ai,bj,rj) + 1

– se cauta maximele locale -> cercurile din imaginea

initiala

Page 70: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 70

Extensia transformatei Hough (3)

0r

1r

0 0( , )a b

1 1( , )a b

y

x

a

br

0r r

0 0( , )x y

0 0( , )x y

1 1( , )x y

1 1( , )x y

0 0 0( , , )a b r

Page 71: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 71

Extensia transformatei Hough (4) a

b

0r

1r

0 0( , )a b

1 1( , )a b

y

x

1r r

0 0( , )x y

1 1( , )x y

0 0( , )x y

1 1( , )x y

1 1 1( , , )a b r

Page 72: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 72

Reprezentarea obiectelor

• utila descrierea obiectelor atat in binar cat si intr-o reprezentare ce descrie marginile obiectului

• este o forma mai compacta a imag. originale

• retine toate informatiile legate de forma obiectului original

• skeletul impreuna cu functia quench este o alta reprezentare compacta a obiectelor

Page 73: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 73

Coduri inlantuite

• o reprezentare a frontierelor obiectului

• algoritm:

1. se alege un pixel de pe frontiera ca punct de pornire

2. se cauta directia in care se afla pixelul vecin de pe frontiera

3. se considera acest pixel vecin ca pixel curent, daca pixelul este diferit de pixelul de pornire atunci se revine la pasul 2, daca pixelul este chiar pixelul de pornire atunci alg. se opreste

Page 74: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 74

Coduri inlantuite (2)

= o lista de 17 cifre -> 17 x 3 = 51 biti

Page 75: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 75

Coduri inlantuite (3)

= o lista de 22 cifre -> 22 x 2 = 44 biti

Page 76: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 76

Coduri inlantuite (4)

• conectivitate 4 pentru obiect -> conect. 8 pt. fundal

• conectivitate 8 pentru obiect -> conect. 4 pt. fundal

Page 77: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 77

Coduri inlantuite (5)

• chiar si atunci cand pixelul obiectului are conectivitate 8 -> descriem frontiera exterioara utilizand 4 directii

Page 78: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 78

Coduri inlantuite (6) • un simplu lant {0,3,2,1} sau {3,2,1,0} sau

{2,1,0,3}

• compararea a doua obiecte: se roteste codul inlantuit astfel incat numarul format de toate cifrele sa fie minim

• utilizarea directiei relativa la directia anterioara: – aceeasi directie (0) – la stanga (1) – inapoi (2) – la dreapta (3)

{3,3,3,3} -> se scad valorile succesive {i,j} (j-i)%4 sau %8

Page 79: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 79

Coduri inlantuite (7) • Perimetrul:

– conectiv. 4 -> nr. de cifre din lant

– conectiv. 8 ->

• Aria: 1. seteaza A=0 si y=0 2. pentru fiecare cifra din lant:

– cifra=0 -> A=A-y – cifra=1 -> y=y-1 – cifra=2 -> A=A+y – cifra=3 -> y=y+1

Page 80: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 80

Coduri inlantuite (8) • Aria:

1. seteaza A=0 si y=0 2. pentru fiecare cifra din lant:

– cifra=0 -> A=A-y – cifra=1 -> y=y-1 – cifra=2 -> A=A+y – cifra=3 -> y=y+1

Page 81: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 81

Coduri inlantuite (9) • Centrul de greutate:

1. seteaza suma=0, x=0 si val=0 2. pentru fiecare cifra din lant:

– cifra=0 -> x=x+1,val=val+(x-1/2) – cifra=1 -> suma=suma-val – cifra=2 -> val=val-(x-1/2), x=x-1 – cifra=3 -> suma=suma+val

3. x=sum/A

Page 82: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 82

Coduri inlantuite (10) • Centrul de greutate:

1. seteaza suma=0, x=0 si val=0 2. pentru fiecare cifra din lant:

– cifra=0 -> x=x+1,val=val+(x-1/2) – cifra=1 -> suma=suma-val – cifra=2 -> val=val-(x-1/2), x=x-1 – cifra=3 -> suma=suma+val

3. x=sum/A

Page 83: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 83

Distanta fata de centrul de greutate • distanta fiecarui pixel fata de centrul de greutate

• caracterizeaza forma obiectului->comparatii

Page 84: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 84

Distanta fata de centrul de greutate(2)

Page 85: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 85

Distanta fata de centrul de greutate(3)

•normalizare (valori

intre 0 si 1)

•pt. comparare -> se

deplaseaza graficul

pana cand minimul

global este localizat

la θ=0

Page 86: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 86

Distanta fata de centrul de greutate(4) • discretizarea -> obiectul este dependent de

orientarea sa

Page 87: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 87

Distanta fata de centrul de greutate(5) • pt. un unghi pot exista valori multiple

Page 88: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 88

Descriptori Fourier • pixelii de pe frontiera (x(k),y(k)) unde k=0,..,n-1

-> u(k)=x(k)+iy(k) -> descriptorii Fourier ai frontierei:

– unde v=0,..,n-1

• utilizati pentru comparatii

Page 89: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 89

Coduri “Run-length” • reprezentarea regiunilor (compresie)

• regiunile sunt compuse din randuri de pixeli -> codul este format din pixelul de start urmat de numarul de pixeli

• lungimea zonelor negre si albe

Page 90: Reprezentarea si analiza obiectelorusers.utcluj.ro/~simona/apim/apim6.pdf–schimbam sistemul de coordonate; – cautam pixelii unde x' sau y' au valori maxime sau minime. APIM6 -

APIM6 - 90

Arbori cu 4 ramuri (quadtrees) • reprezentarea regiunilor (compresie si vizualizare)