Luigi Cinque Cinque@di.uniroma1.it Contorni e regioni Luigi Cinque Cinque@di.uniroma1.it
Binarizzazione La convoluzione Operatori di rango Contorni e regioni Binarizzazione La convoluzione Operatori di rango
Segmentazione Ricerca di contorni Accrescimento di regioni Inseguimento di contorni Contorni e regioni
Binarizzazione Vi sono applicazioni che per loro natura possono essere considerate binarie: Stampati, dattiloscritti Parti meccaniche piatte di superficie omogenea Immagini microscopiche di cellule, cromosomi ... Difatti spesso appaiono numerosi livelli di grigio a causa di: Rumore elettrico generato dalla telecamera Illuminazione non omogenea della scena Ineguale sensibilità dell'obiettivo al centro e ai bordi Contorni e regioni
Distribuzione bimodale Possibili approcci: Ricerca del minimo Criteri statistici Contorni e regioni
Binarizzazione a soglia costante È la soluzione più semplice y(x) = 0 se x < S y(x) = 255 altrimenti il problema è la scelta della soglia (threshold) S Contorni e regioni
Esempio pezzo Contorni e regioni
Esempio Vela Soglia = 140 Contorni e regioni
Esempio Orso Contorni e regioni
Esempio Cerchio Contorni e regioni
Estrazione di contorni Operatori differenziali Template matching Contorni e regioni
Operatori differenziali Ricerca di discontinuità (un cambiamento brusco di valore) Il problema viene affrontato tramite l'analisi della derivata In generale il problema della differenziazione risulta mal posto Un problema è ben posto se la sua soluzione: Esiste È unica Dipende con continuità dai dati iniziali Contorni e regioni
Operatori differenziali Nel continuo una regione di transizione viene evidenziata dall'andamento della derivata prima Dovendo scegliere un punto preciso si può prendere il massimo (minimo) della derivata prima o lo zero (punto di attraversamento dell'asse x) della derivata seconda Contorni e regioni
Operatori differenziali f(x) è l'intensità dell'immagine Contorni e regioni
Derivata discreta La derivata può essere approssimata tramite una differenza Lo stesso approccio vale per la derivata seconda In uno spazio bidimensionale al posto della derivata si ha il gradiente (si noti che il gradiente è un vettore) Contorni e regioni
Convoluzione g(x0,y0) = ò f(x0-x, y0-y) I(x,y) dx dy g(x,y) = S f(x-i, y-j) I(i,j) La convoluzione è un operatore lineare Contorni e regioni
La convoluzione (maschera) La convoluzione nel discreto avviene su un supporto limitato nello spazio (template) Può essere considerata una finestra che si muove sull'immagine Contorni e regioni
La convoluzione (scomposizione) La convoluzione è una operazione pesante dal punto di vista computazionale 1 4 6 4 1 4 16 24 16 4 6 24 36 24 6 per eseguire una convoluzione con la maschera precedente occorrono 25 moltiplicazioni per ogni pixel; spesso maschere complesse possono essere scomposte in più maschere semplici La convoluzione precedente può essere scomposta in due convoluzioni successive con le due maschere: 1 4 6 4 1 e 1 4 6 1 in questo caso sono sufficienti 10 (5+5) moltiplicazioni per pixel Contorni e regioni
Approssimazioni del gradiente Il gradiente è un vettore (ha due componenti) Gli operatori differenziali nel discreto sono realizzati tramite maschere a somma nulla: l'applicazione a una regione uniforme deve dare risultato zero Contorni e regioni
Operatore di Roberts È la soluzione più semplice Si sfruttano due maschere M1 e M2 per ottenere due componenti ortogonali del gradiente G1=M1*I,G2=M2*I È molto sensibile al rumore Il modulo del gradiente risulta: Gm = sqrt(G12,G22) la fase: Gf = arctan(G2/G1)+p/4 1 -1 1 -1 Contorni e regioni
Operatore isotropico Si sfruttano due maschere Mx e My per ottenere le due componenti ortogonali del gradiente Gx=Mx*I,Gy=My*I Il modulo del gradiente risulta: Gm = sqrt(Gx2,Gy2) la fase: Gf = arctan(Gy/Gx) In C e Java: phi = atan2(Gy,Gx) -1 1 -2 2 -1 1 1 2 1 -1 -2 -1 Contorni e regioni
Operatore di Sobel Per evitare i problemi di calcolo con i numeri reali, l'operatore isotropico viene normalmente approssimato: Prewitt Sobel -1 1 1 1 1 -1 1 -1 1 -1 -1 -1 -1 1 1 2 1 -2 2 -1 1 -1 -2 -1 Contorni e regioni
Operatore di Sobel Normalmente si utilizza l'operatore di Sobel, approssimando il modulo con la somma dei valori assoluti Gm = |Gx|+|Gy| 0 0 0 1 1 1 1 0 0 0 0 0 0 4 4 0 0 -4 -4 0 0 0 Gx 0 0 0 0 0 0 0 0 0 0 0 Gy Attenzione nell'implementazione delle convoluzioni, se l'immagine assume valori fra 0 e 255, le componenti del gradiente assumono valori fra -255*4 e 255*4 Contorni e regioni
Operatore di Sobel Il colore indica il segno del risultato -1 1 -2 2 1 -2 2 -1 1 1 2 1 -1 -2 -1 Contorni e regioni Il colore indica il segno del risultato
Operatore di Sobel G28 f=arctg(-13/15) 1 2 -1 -2 2 -2 1 -1 1 2 -1 -2 1 2 -1 -2 Maschera per contorni verticali Vengono create due nuove immagini 2 -2 1 -1 Maschera per contorni orizzontali 1 2 -1 -2 2 14 9 -2 -6 Gx=15 G28 f=arctg(-13/15) Contorni e regioni 2 -2 1 -1 10 -16 2 -9 -2 Gy=-13
Operatore di Sobel Colori diversi rappresentano angoli diversi È il negativo del risultato Contorni e regioni
Esempi Contorni e regioni
Inibizione laterale Nella retina i recettori sfruttano un meccanismo di inibizione laterale Da un punto di vista computazionale l'inibizione laterale può essere ottenuta tramite la differenza di due maschere di differente ampiezza (generalmente gaussiane) Lo zero-crossing indica il punto di transizione uno dei vantaggi dello zero-crossing è che produce contorni chiusi Contorni e regioni
L'operatore DOG L'operatore descritto viene spesso chiamato Difference Of Gaussians Il risultato migliore lo si ottiene se la maschera esterna è quanto più larga possibile, senza che includa due bordi adiacenti La maschera interna deve essere tanto larga quanto la zona di transizione Scene complesse devono perciò essere analizzate con un insieme di differenti operatori di ampiezza variabile Contorni e regioni
L'operatore DOG Contorni e regioni
L'operatore DOG Contorni e regioni
Template matching Sfrutta un modello di contorno ideale e tende ad evidenziare i punti dell'immagine in accordo con il modello La precisione nella valutazione dell'orientamento è bassa Contorni e regioni
Template matching Operatore di Kirsh Operatore Compass Contorni e regioni
Operatore tre su nove 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Contorni e regioni
Operatore tre su nove Pi,k è il massimo fra gli 8 parametri Pi,j i coefficienti 1.5 e 0.333 servono per normalizzare il risultato e renderlo a media nulla Una opportuna soglia serve per selezionare i punti di contorno dal resto Contorni e regioni
Operatori di rango Sono operatori non lineari Si considerano ancora i valori su una finestra locale, si riordinano e si usa come risultato quello in una posizione particolare Gli operatori più comuni sono: Massimo (il massimo locale) Minimo (il minimo locale) Mediano (il valore nella posizione n/2 nel vettore riordinato) Contorni e regioni
Operatore mediano È utilizzato per eliminare il rumore da una immagine Rispetto ad una media locale ha il vantaggio di essere meno sensibile rispetto al rumore salt & pepper (sale & pepe) e di non introdurre nuovi valori Esempio considerando i valori: 1, 3, 5, 7, 14 Media=6 Mediana=5 Contorni e regioni
Operatore mediano Immagine originale Immagine con rumore Salt & pepper Contorni e regioni
Operatore mediano Filtro medio Filtro mediano Contorni e regioni
Operatori di rango Generalizzando: Si riordinano i valori Si considerano quelli in un certo intervallo Per esempio si escludono il 10% dei valori più grandi e il 10% dei valori più piccoli Si calcola la media dei rimanenti Contorni e regioni
Filtro di Nagao Assegna al pixel in esame il valor medio calcolato sull' intorno in cui viene riscontrata la varianza minore È utilizzato per eliminare il rumore Per esempio, preso in esame una porzione 5x5 dell' immagine i nove intorni sono: Contorni e regioni