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