Morphological Image processing Morfologia matematica
Transcript
Morphological Image processing Morfologia matematica
Morphological Image processing
Caponetti
Morfologia matematica
La parola morfologia comunemente denota una
parte della biologia che tratta con la forma e la
struttura di organismi
In analogia al termine biologico gli operatori
morfologici matematici effettuano elaborazioni sulla
forma di un oggetto
Caponetti
1
Morfologia matelatica
Nell’ambito dell’image processing il termine morfologia
matematica denota lo studio della struttura geometrica
dell’immagine
Fornisce uno strumento per estrarre in una immagine
componenti utili nella rappresentazione e descrizione della
forma di una regione, quali contorni, scheletro, ecc.
E’ uno strumento matematico definito inizialmente su immagini
binarie ma facilmente estensibile ad immagini a toni di grigio e
quindi a colori.
Caponetti
Image analysis
Analisi della forma di una regione
Obiettivo: Distinguere le informazioni
significative sulla forma da quelle irrilevanti
Ad esempio estrazione di un profilo
Caponetti
2
Image analysis
L’analisi di una immagine può richiedere l’estrazione
di misure caratteristiche delle sue regioni
Ad esempio misure geometriche quali
posizione di un “oggetto”
orientazione
area e perimetro
Caponetti
Definizioni preliminari
Il linguaggio della morfologia matematica è la teoria degli
insiemi
L’insieme dei pixel di una immagine si può vedere come un
elemento dello spazio degli interi Z2 oppure Z3
Immagini binarie (0 = black, 1 = white): una immagine è
descritta come un insieme A di coppie di coordinate (x,y),
di pixel di valore ad esempio 1. L’insieme A è definito in Z2
Immagini a toni di grigio: una immagine è descritta
come un insieme di triple di interi, cioè le coordinate (x,y)
del pixel ed il corrispondente valore di intensità- L’ insieme A
è definito in Z3
Caponetti
3
Operatori logici
Caponetti
Definizioni preliminari
Se un elemento di A è definito come a=(a1,a2) sono
ben definite le seguenti espressioni:
a ∈ A a appartiene all’ insieme A
a ∉ A a non appartiene all’ insieme A
A ⊆ B A è incluso in B
C = A ∪ B Unione
C = A ∩ B Intersezione
Ac = {w| w ∉ A} Complementare di A
A- B = {w| w ∈ A,w ∉ B}= A ∩ Bc Differenza
Caponetti
4
Riflessione e traslazione
A
A ⊆ Z2, t ∈Z2
Traslazione di A rispetto ad un vettore z=(z1, z2)
Az = { w∈Z2 | w=a+z, a∈A }
La traslazione di A rispetto z è l’insieme dei punti
di A le cui coordinate (x,y) sono sostituite con
(x+z1, y+z2)
Riflessione di A
Ar= { w | w=-a, a∈A }
La riflessione di A è l’insieme dei punti di A le cui
coordinate (x,y) sono sostituite con (-x,-y)
A(2,1)
Ar
Caponetti
Riflessione e traslazione
Siano A e B insiemi in Z2
Caponetti
5
Operatori fondamentali
La struttura dell’immagine viene “sondata” con un insieme, di
forma definibile dall’utente, (elemento strutturante)
solitamente codificato da un piccola immagine raster (3×3 o
5×5).
Vengono definiti 5 operatori principali: Dilation, Erosion,
Opening, Closing, Hit-or-Miss transform, che combinati
con diversi elementi strutturanti B trasformano un “oggetto” A
in vario modo.
Erosione e Dilatazione sono gli operatori elementari
Operatori più complessi sono definiti come combinazioni di
questi ultimi.
Caponetti
Dilation
L’effetto dell’operatore su una immagine binaria è di
allargare gradualmente i contorni delle regioni di
pixel non di background (tipicamente i pixel chiari)
In questo modo l’area dei pixel foreground cresce in
dimensione, mentre i vuoti in queste regioni
diventano più piccoli
Caponetti
6
Somma di Minkowski (Dilation)
A⊕B = { w∈Z2 | w=a+z, a∈A, z∈B }
A⊕B = U Az , z∈B
Si dimostra facilmente: A⊕B = B⊕A
B= { (0,0), (1,0) }
A
Caponetti
A(0,0)
A(1,0)
A⊕B
Dilation
Supponiamo che A sia l’insieme delle coordinate dei pixel di una
immagine binaria A e B l’insieme delle coordinate dell’elemento
strutturante
Il risultato dell’operatore è l’insieme delle posizioni z tali che (B^)z
interseca almeno un elemento di A
(B^)z è l’insieme ottenuto dopo una riflessione e una traslazione
L’elemento strutturante viene ribaltato rispetto alla sua origine,
attraverso l’operazione di riflessione, e shiftato di z posizioni
attraverso una traslazione
Caponetti
7
Dilation
L’insieme B è l’ elemento strutturante.
B= {(-1,0), (1,0) }
A
A(1,0)
A(-1,0)
A⊕B
Caponetti
Dilation
Per calcolare la dilatazione di una immagine binaria A
mediante un elemento strutturante sovrapponiamo
l’elemento strutturante sulla immagine in modo tale
che l’origine della matrice coincida con il pixel in
esame
Se il pixel centrale della matrice coincide con un
foreground pixel nella immagine A allora il pixel in
esame è posto a 1
1 1 1
1
1
Caponetti
1
1
1
1
Structuring element
8
L’effetto dell’operatore è dovuto all’applicazione di B
vicino ai bordi
Effetto della dilatazione utilizzando un elemento
strutturante quadrato 3×3: i vuoti tra le 2 regioni
vengono riempiti
Caponetti
Dilation
Caponetti
9
Dilation
Dilatazione: l’effetto dell’operatore su una immagine binaria è di
allargare gradualmente i contorni delle regioni di pixel – non di
background (tipicamente i pixel chiari)
In questo modo l’area dei pixel foreground cresce in dimensione,
mentre i vuoti in queste regioni diventano più piccoli
L’elemento strutturante determina l’effetto dell’operatore di
dilatazione sulla immagine
Gli operatori di dilatazione:
Espandono gli oggetti in una immagine
Riempono le lacune di piccola dimensione
Connettono oggetti separati da una distanza minore della
dimensione della matrice dell’elemento strutturante
Caponetti
Dilation - esempio
Input image
Edge image
After dilation
L’operatore dilation è applicato ad una immagine binaria avente :
1- regione background, 0 - regione foreground
Caponetti
10
Erosion (Differenza di Minkowski)
AΘB = { w∈Z2 | w+z∈A, per ogni z∈B }
AΘB = ∩ Az z∈B
A
A(-1,0)
B= { (0,0), (-1,0) }
A-B
Caponetti
Erosion
L’effetto della erosione è dovuto al fatto che quando l’elemento
strutturante B viene traslato vicino ai bordi esso non è
completamente contenuto in A
Caponetti
11
Erosion
L’effetto dell’operatore su una immagine binaria è di
di erodere i contorni delle regioni dei pixel
foreground (tipicamente i pixel bianchi)
L’area dei pixel foreground pixels si restringe in
dimensioni e i buchi si allargano
Caponetti
Erosion
Per calcolare l’erosione di una immagine binaria A mediante un
elemento strutturante sovrapponiamo l’elemento strutturante
sulla immagine su ogni pixel della immagine A
1
1
1
1
1
1
1
1
1
Structuring element
L’elemento strutturante è sovrapposto a ogni foreground pixel
della immagine A. Se tutti i pixel sotto l’elemento strutturante
sono foreground pixels allora l’input pixel trattiene il suo valore.
Ma se uno dei pixel è un background pixel allora l’input pixel
prende il valore del background
Caponetti
12
Effetto della erosione usando un elemento strutturante
quadrato 3×3: alcuni dettagli della immagine sono stati
eliminati
Caponetti
An example:
Caponetti
13
Erosion
Caponetti
Erosion - esempio
Input image
Binary edge image After erosion
L’operatore erosion è applicato ad una immagine binaria avente :
1- regione background, 0 - regione foreground
Caponetti
14
Proprietà
Caponetti
Opening – Rimozione di punte
L’operatore opening è costituito da una erosione seguita da una
dilatazione utilizzando lo stesso elemento strutturale
L’effetto dell’opening è di preservare il più possibile regioni di
forma simile all’elemento strutturante, e di eliminare quelle
differenti
E’ un filtro di smoothing, il cui effetto è determinato dalla forma
e dalle dimensioni di B
Caponetti
15
Un opening è definito da una erosione seguita da una
dilatazione mediante lo stesso elemento strutturante
Effect of opening using a 3×3 square structuring element
Caponetti
Caponetti
16
Opening
Caponetti
Opening
Per eliminare le lineee nella immagine si può applicare una
operazione di opening
In questo caso viene utilizzato un elemento strutturale a forma
sferica di raggio pari a quello dei cerchi da preservare che è
maggiore dello spessore delle linee
Caponetti
17
Caponetti
Closing – Riempimento di cavità
Una dilatazione seguita da un erosione utilizzando lo stesso
elemento strutturale
L’effetto del closing è di chiudere gli eventuali buchi interni
Caponetti
18
Closing
Caponetti
Hit-and-Miss Transform
La trasformata hit-and-miss è una operazione
generale della morfologia binaria che può essere
usata per cercare particolari patterns costituiti da
pixel del foreground o del background
La trasformata hit-and-miss costituisce uno
strumento di base per il processo di shape detection,
basato su 2 concetti:
Hit object -Colpisci l’oggetto
Miss background –manca il background
Caponetti
19
Hit-and-Miss Transform
Gli elementi strutturanti usati in questa
trasformazione sono una estensione delle maschere di
1 usate nelle operazioni di dilation, erosion etc.
Gli elementi strutturanti possono contenere
foreground e background pixels, piuttosto che
soltanto foreground pixels
L’elemento strutturante B=(B1, B2)
B1 è l’insieme formato dagli elementi di B associati ad un
oggetto
B2 è l’insieme formato dagli elementi di B associati allo
sfondo corrispondente
B2 = B- B1 denota l’insieme differenza
Caponetti
Hit-and-Miss Transform
A ⊗ (B1,B2) = (A Θ B1)∩(Ac Θ B2)
con il vincolo B1∩B2=∅
Intersezione della erosione di A attraverso B1 e Ac attraverso B2
Assumiamo che l’origine di ogni forma coincida con il suo centro di gravità
L’insieme risultante contiene tutti i pixel – origine - per cui simultaneamente B1
ha trovato un match in A e B2 in Ac - complemento di A
L’elemento strutturante B è sovrapposto su ciascun pixel della immagine di
input:
Se si ha un match esatto tra i pixel foreground e background dell’elemento
strutturante e della immagine allora il pixel di input in corrispondenza della
origine dell’elemento strutturante è posto uguale al valore del foreground
pixel
Altrimenti il pixel di input è sostituito con il valore del background
Caponetti
20
A ⊗ B = ( A ⊕ B1 ) ∩ ( AC ⊕ B2 )
Caponetti
Esempi
Quattro elementi strutturanti utilizzati per trovare i
corner in una immagine binaria mediante la hit-andmiss transform
Caponetti
21
Operatori complessi
La combinazione degli operatori di base consente di
eseguire altre operazioni complesse quali
estrazione contorno
riempimento regioni
componenti connesse
“guscio” convesso
thinning
thickening
pruning
Caponetti
Estrazione di contorni
Il bordo di un insieme A, indicato con β(A), si può
ottenere mediante
L’erosione di A attarverso un elemento
strutturante B
L’insieme differenza tra A ed il risultato della
erosione di A
β(A) = A – (A Θ B)
Lo spessore del contorno dipende dalla dimensione
dell’elemento strutturante B
Caponetti
22
Esempio
Caponetti
Estrazione del contorno
leaf
erosion
leaf – inv erosion
Caponetti
23
Estrazione di particelle dal background
1: J1 = J
/* steps performed on J1 */
2: Apply Sobel gradient – per individuare i contorni
3: Make Binary
4: Kill Borders on right and left borders – pulizia dei
bordi
5: Apply dilation - dilatazione
6: Fill Holes –
7: Open-Close – smoothing dei contorni
8: J2 = J1 - J;
Caponetti
embryos.jpg
Caponetti
24