Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Metriche Discrete e Morfologia Matematica
04/12/2018 Metriche Discrete e Morfologia Matematica Virginio Cantoni Laboratorio di Visione Artificiale Università di Pavia Via A. Ferrata 1, Pavia :32
2
Sommario Metriche discrete Morfologia binaria Trasformata distanza
04/12/2018 Sommario Metriche discrete Morfologia binaria Trasformata distanza Medial Axis Transform Rappresentazioni binarie
3
Definizioni Preliminari
04/12/2018 Definizioni Preliminari Definiamo F={1} ed F*={0} i due insiemi costituenti una immagine binaria digitalizzata su griglia quadrata. Chiameremo rispettivamente tali insiemi immagine e sfondo. Dati due pixel p e q di coordinate (i,j) e (h,k) le funzioni distanza d4 (city block) e d8 (chessboard) sono definite come: d4 (p,q) = |i-h|+|j-k| d8 (p,q) = max {|i-h|, |j-k|} p q
4
Definizioni Preliminari
04/12/2018 Definizioni Preliminari I vicini di un pixel p sono i pixel aventi da p distanza unitaria L’insieme dei vicini di p costituisce l’intorno di p. Si parla di intorno N4 (p) oppure di N8 (p) a seconda della metrica usata Un percorso di lunghezza n da p a q è una sequenza di pixel p=p0, p1, p2, …..pn=q è tale che con la metrica scelta pi è un vicino di pi+1, 1in Un sottoinsieme di F (o di F*) è connesso se presi una copia dei suoi pixel esiste un percorso tra questi interamente costituito da pixel di F (o di F*). Il contorno C di una figura F è il sottoinsieme di F i cui punti hanno distanza unitaria da F*.
5
04/12/2018 4- and 8- Connectivity
6
Il Codice di Herbert Freeman
04/12/2018 Il Codice di Herbert Freeman 4-contorno con 102 codici 8-contorno, con 81 codici
7
Il Codice di Freeman: caratteristiche
04/12/2018 Il Codice di Freeman: caratteristiche La lunghezza del contorno è pari al numero di codici in N4 e dalla formula: L8 = npari + √2 ndispari in N8 L’ascissa e l’ordinata al codice k-esimo sono rispettivamente: L’area è data da: Condizione di chiusura: n7+n0+n1=n3+n4+n5; n5+n6+n7=n1+ n2+ n3. Cx1=Cx2=Cx3=Cy7=Cy0=Cy1= 1 Cx5=Cx6=Cx7=Cy3=Cy4=Cy5=-1 Cx0=Cx4=Cy2=Cy6=0
8
Concavità e Convessità
04/12/2018 Concavità e Convessità
9
Morfologia Matematica
04/12/2018 Morfologia Matematica La Morfologia Matematica nasce negli anni ’60 in Francia (P. Serra, Ecole des Mines) e in USA in forma diversa col nome di Algebra delle Immagini (S. R. Sternberg, Michigan University).
10
Definizioni preliminari
04/12/2018 Definizioni preliminari A A En, t En Traslazione di A rispetto ad un vettore t At = { cEn | c=a+t, aA } Riflessione di A Ar= { c | c=-a, aA } Complemento di A Ac = En -A A(2,1) Ar Ac
11
Somma di Minkowski (Dilation)
04/12/2018 Somma di Minkowski (Dilation) AB = { cEn | c=a+b, aA, bB } AB = Ab , bB Si dimostra facilmente: AB = BA A B= { (0,0), (1,0) } A(0,0) A(1,0) AB
12
Dilation L’insieme B viene normalmente definito elemento strutturante
04/12/2018 Dilation L’insieme B viene normalmente definito elemento strutturante B= {(-1,0), (1,0) } A A(-1,0) A(1,0) AB
13
Dilation A B AB
14
Dilation A B AB
15
Dilation A B AB
16
Dilation A B AB
17
Dilation A B C ABC
18
Dilation A B C ABC
19
Differenza di Minkowski (Erosion)
04/12/2018 Differenza di Minkowski (Erosion) AB = { cEn | c + bA, per ogni bB } AB = A-b bB AB = { cEn | Bc A A B= { (0,0), (1,0) } A(-1,0) A-B
20
Erosion A B AB
21
Erosion A B AB
22
Erosion A B AB
23
Erosion A B AB
24
Erosion A B AB
25
Erosion A B AB
26
Proprietà di Dilation (+) e Erosion (-)
04/12/2018 Proprietà di Dilation (+) e Erosion (-) A + {} = A - {} = A A + {a} = A - {a} = Aa traslazione A + B = (Ac – B)c A – B = Ac + B c (A+B)c=Ac -Br A+Bt=(A+B)t A-Bt=(A-B)-t Scomposizione: B=B1+B2 +B3 +….+Bn (le forme convesse sono sempre scomponibili) A+B = (…(((A+ B1)+B2 )+B3) +….)+Bn A-B = (…(((A- B1)-B2 )-B3) -….)-Bn
27
Proprietà di Dilation (+) e Erosion (-)
04/12/2018 Proprietà di Dilation (+) e Erosion (-) (A+B)+C=A+(B+C) (A-B)-C=A-(B+C) (AB)+C=(A+C)(B+C) (A B)-C=(A-C) (B-C) A+(BC)=(A+B)(A+C) A-(BC)=(A-C)(B-C) A B(A+C) (B+C) AB(A-C) (B-C) BC(A-B) (A-C) (AB)+C (A+C)(B+C) (A B)-C (A-C) (B-C) A-(BC)(A-C)(B-C
28
Chiusura C(A, K) = (A+K)-K AC(A,K)=C(C(A,K),K) K A A+K (A+K)-K
04/12/2018 Chiusura C(A, K) = (A+K)-K AC(A,K)=C(C(A,K),K) K A A+K (A+K)-K
29
04/12/2018 Chiusura C(A, K) = (A+K)-K K A A+K (A+K)-K
30
04/12/2018 Chiusura C(A, K) = (A+K)-K K A A+K (A+K)-K
31
04/12/2018 Chiusura K A A+K (A+K)-K
32
Chiusura C(A, K) = (AK)K K A AK (AK)K
33
Chiusura C(A, K) = (AK)K K A AK (AK)K
34
Chiusura C(A, K) = (AK)K K A AK (AK)K
35
Chiusura C(A, K) = (AK)K K A AK (AK)K
36
Chiusura C(A, K) = (AK)K K A AK (AK)K
37
Chiusura C(A, K) = (AK)K K A AK (AK)K
38
Chiusura C(A, K) = (AK)K K A AK (AK)K
39
Chiusura C(A, K) = (AK)K K A AK (AK)K
40
Chiusura C(A, K) = (AK)K K A AK (AK)K
41
Chiusura C(A, K) = (AK)K K A AK (AK)K
42
Chiusura C(A, K) = (AK)K K A AK (AK)K
43
Chiusura C(A, K) = (AK)K K A AK (AK)K
44
Apertura O(A, K) = (A-K)+K O(O(A,K),K)=O(A,K)A K A A-K (A-K)+K
04/12/2018 Apertura O(A, K) = (A-K)+K O(O(A,K),K)=O(A,K)A K A A-K (A-K)+K
45
04/12/2018 Apertura O(A, K) = (A-K)+K K A A-K (A-K)+K
46
Proprietà di Apertura e Chiusura
04/12/2018 Proprietà di Apertura e Chiusura È possibile scambiare F con F* scambiando gli operatori: (A B) c = Ac • B (A • B) c = Ac B Idempotenza: (A B) B = A B (A • B) • B = A • B Monotonicità: A B A C B C A B A • C B • C
47
Esempi Applicativi Propagazione Contorno
04/12/2018 Esempi Applicativi Propagazione C = { X }; C = immagine in evoluzione do D = C F = immagine iniziale C = (C K)F while(DC) Contorno Interno: A-(AK) Esterno: (A K)Ā oppure (A K)-A Doppio: (A K)(A K) = (A K)-(AK)
48
Hit or Miss A(J,K) = (A-J)(Ac-K)
04/12/2018 Hit or Miss A(J,K) = (A-J)(Ac-K) con il vincolo JK= Permette di trovare strutture regolari (template matching)
49
Hit or Miss Ricerca di punti isolati (8-connessi) A-J=A J K A Ac
04/12/2018 Hit or Miss Ricerca di punti isolati (8-connessi) A-J=A J K A Ac Risultato finale Ac-K
50
Hit or Miss Ricerca di punti isolati (4-connessi) A-J=A K J A Ac
04/12/2018 Hit or Miss Ricerca di punti isolati (4-connessi) A-J=A J K A Ac Risultato finale Ac-K
51
04/12/2018 Hit or Miss J e K possono essere visti come una unica maschera con tre tipi di valori Punti necessariamente di immagine Punti di background Punti non rilevanti M
52
Hit or Miss Pixel compatibili con la maschera di background
04/12/2018 Hit or Miss Pixel compatibili con la maschera di background Pixel compatibili con la maschera per l’immagine
53
04/12/2018 Trasformata Distanza La trasformata distanza di F rispetto a F* è una replica di F in cui i pixel sono etichettati con il valore della loro distanza da F*, calcolata secondo una data metrica. Un massimo locale è un pixel di F che nella trasformata distanza di F è caratterizzato da una distanza p da F* maggiore o uguale della distanza da F* dei suoi vicini ni
54
04/12/2018 Trasformata distanza La trasformata distanza è una funzione da una immagine binaria ad una a livelli di grigio Nella immagine prodotta i pixel di sfondo rimangono a 0, i pixel della figura vengono etichettati con la loro distanza dallo sfondo La distanza dipende dal tipo di connessione che si assume per la figura (4/8 connessione)
55
Trasformata Distanza TD
04/12/2018 Trasformata Distanza TD Una possibile implementazione è tramite una successione di operazioni di erosione e di somma dell’immagine ottenuta (il risultato dipende dalla scelta dell’elemento strutturante) R = R = immagine in evoluzione while(A<>) do infine TD R = R+A A = RQK done
56
Trasformata distanza 04/12/2018 1 1 1 1 1 1 2 2 2 2 2 1 1 2 3 3 3 2 1
57
DT - algoritmo sequenziale
04/12/2018 DT - algoritmo sequenziale Si effettuano due scansioni dell’immagine La prima dall’alto al basso e da sinistra a destra ogni pixel della figura è uguale al valore minore fra i vicini già considerati o fondo incrementato di 1 La seconda dal basso all’alto, da destra a sinistra ogni pixel della figura è uguale al minimo fra i vicini già considerati o fondo incrementato di 1 ed il pixel stesso
58
DT - algoritmo sequenziale
04/12/2018 DT - algoritmo sequenziale 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 2 2 2 2 1 1 2 3 3 3 3 2 1 2 3 3 3 2 1 1 2 3 4 4 4 4 2 1 1 2 3 4 4 4 3 2 1 1 2 3 4 5 5 5 3 2 1 2 2 3 3 3 3 2 1 1 2 3 4 5 6 4 3 1 1 2 2 2 2 2 1 1 2 3 4 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 2 2 2 1 1 1 2 2 3 2 2 1 1 2 2 3 2 2 1 1 1 2 3 3 3 2 1 1 1 1 2 3 3 3 2 1 1 1 1 2 2 3 4 3 2 2 1 1 2 2 2 3 2 2 1 1 2 3 3 4 3 3 1 1 1 1 2 2 2 1 1 1 2 3 4 4 1 1 1 1 1
59
04/12/2018 DT - massimi locali I massimi locali sono una rappresentazione compatta della figura Possono essere utilizzati per ricostruire la figura: è l’unione dei dischi aventi per dimensione il valore del massimo 2 2 2 4 4 4 2 3 2 3 3 3 3 1 1 2 3
60
Dischi in 4 e 8 connettività
04/12/2018 Dischi in 4 e 8 connettività 5 5
61
Dischi massimi Ad ogni massimo locale si associa un disco massimo
04/12/2018 Dischi massimi Ad ogni massimo locale si associa un disco massimo Il disco massimo non è mai contenuto completamente da un altro disco associato ad un disco della DT La forma dei dischi dipende dall’elemento strutturante Si ottiene iterando una operazione di dilation tramite l’elemento strutturante (realizzando cosi una DT inversa) L’inseme dei dischi massimi forma una rappresentazione compatta della forma 1 1 1 1 1 1 1 2 2 2 1 1 2 1 3 1 2 3 2 1 1 2 3 2 1 3 3 3 1 1 2 2 2 1 1 2 1 1 2 3 1 1 1 1 1 1
62
Trasformata Distanza e MAT
04/12/2018 Trasformata Distanza e MAT
63
Approssimazioni Progressive della MAT
04/12/2018 Approssimazioni Progressive della MAT
64
Calcolo distanza Distanza fra due punti (X, Y )
04/12/2018 Calcolo distanza Y X 4 1 5 8 3 2 6 7 9 F D Distanza fra due punti (X, Y ) A = { X }; D = A A= immagine in evoluzione while(YA) do F= immagine iniziale A = (A K)F Y= componente connessa D = D + A done Seguendo la direzione del massimo gradiente si ottiene anche il percorso più breve (non è detto sia unico) K
65
Calcolo distanza Se A (A K)F
04/12/2018 Calcolo distanza Se A (A K)F allora se non è ancora coperto, Y non è raggiungibile da X F non è connesso Il metodo può essere pesante computazionalmente (si pensi ad una spirale)
66
Trasformata distanza pesata
04/12/2018 Trasformata distanza pesata La distanza di ogni vicino non è unitaria ma pesata (w) Algoritmo sequenziale Scansione diretta val = mini {pi+wi} (i vicini precedenti) Scansione inversa new-val = mink {pk+wk} (k vicini successivi) Esempio (per una migliore approssimazione della distanza euclidea, si ottiene circa il doppio) 3 2 3 2 2 3 2 3
67
Trasformata distanza pesata
04/12/2018 Trasformata distanza pesata 2 2 3 2 2 3 5 3 2 3 2 3 2 3 5 6 5 3 2 2 2 3 2 3 2 3 5 3 2 2 3 2 2
68
04/12/2018 Paradossi topologici Il contorno di una figura secondo la 4 connessione è solo 8 connessa Il contorno di una figura secondo la 8 connessione è 4 connessa Si noti che una tassellazione esagonale non provoca paradossi 1 1 1 1 1 1 2 2 2 2 2 1 1 2 3 3 3 2 1 1 2 3 4 4 4 3 2 1 1 2 2 3 3 3 3 2 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 2 2 3 2 2 1 1 1 2 3 3 3 2 1 1 1 1 2 2 2 3 2 2 1 1 1 1 2 2 2 1 1 1 1 1 1 1
69
04/12/2018 Scheletro Lo scheletro di F è un sottoinsieme di F caratterizzato dalle seguenti proprietà: È connesso se F è connessa e ha o stesso ordine di molteplicità di F, ovvero hanno lo stesso numero di componenti connesse Ha ovunque spessore unitario È centrato in F Include i massimi locali di F
70
04/12/2018 Scheletro da TD e MAT
71
04/12/2018 8-Convex Hull
72
Rappresentazione con Quadtree
04/12/2018 Rappresentazione con Quadtree
73
Umbra Insieme A Top di A Umbra di A
04/12/2018 Umbra Estensione alle immagini a più livelli di grigio o colore A En, FEn-1, xF, yE Top di un insieme A: T[A](x) = max { y | (x, y) A } Umbra di f: U[f] = { (x, y) F E | y f(x) } Insieme A Top di A Umbra di A
74
04/12/2018 Umbra - Proprietà T[A] A U[A] En U[U[A]] U[ A]
75
Dilation a più livelli di grigio
04/12/2018 Dilation a più livelli di grigio Dati: F,KEn-1 , f:FE, k:KE Si definisce dilation di f tramite k f k = T{U[f]U[k]} Si dimostra che una definizione equivalente è: (f k)(x) = max{f(x-z)+k(z) | zK, x-zF} Dal punto di vista computazionale la complessità è equivalente ad una convoluzione
76
Esempio - dilation k f U[f] U[k] fk = T[U[f]U[k]] U[f]U[k]
04/12/2018 Esempio - dilation k f U[f] U[k] fk = T[U[f]U[k]] U[f]U[k]
77
04/12/2018 Esempio - dilation (f k)(6) = max{f(6-0)+k(0), f(6-1)+k(1), f(6-2)+k(2)}= max{f(6)+k(0), f(5)+k(1), f(4)+k(2)}= max{5+0, 6+1, 5+0} = 7 x f k fk 1 1 1 3 1 3 2 5 5 3 3 6 4 5 5 5 6 6 6 5 7 7 6 8 5
78
04/12/2018 Esempio - dilation (f k)(5) = max{f(5-(-1))+k(-1), f(5-0)+k(0), f(5-1)+k(1)}= max{f(6)+k(-1), f(5)+k(0), f(4)+k(1)}= max{5-1, 6+0, 5-1} = 6 x f k fk -1 -1 1 2 1 3 -1 4 2 5 5 3 3 4 4 5 5 5 6 6 6 5 5 7 4
79
04/12/2018 Esempio - dilation
80
Gray scale erosion Dati: F,KEn-1 , f:FE, k:KE
04/12/2018 Gray scale erosion Dati: F,KEn-1 , f:FE, k:KE Si definisce erosion di f tramite k fk = T{U[f]U[k]} Si dimostra che una definizione equivalente è: (fk)(x) = min{f(x+z)-k(z) | zK, x+zF}
81
04/12/2018 Esempio - erosion (fk)(5) = min{f(5-(-1))-k(-1), f(5-0)-k(0), f(5-1)-k(1)}= min{f(6)-k(-1), f(5)-k(0), f(4)-k(1)}= min{5+1, 6-0, 5+1} = 6 x f k f-k -1 -1 1 1 3 -1 2 2 5 4 3 3 3 4 5 4 5 6 6 6 5 7
82
04/12/2018 Esempio - erosion
83
04/12/2018 Esempio - opening
84
04/12/2018 Esempio – closing
85
04/12/2018 Esempio
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.