Università degli Studi di Catania Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica, Secondo Livello ELABORAZIONE DELLE IMMAGINI: EDGE DETECTION Corso di Analisi Numerica Prof.ssa RM Pidatella Viola Rosalba Messina Teresa Morgano Gian Paolo
INTRODUZIONE: COS E UN EDGE DETECTOR Operatore che lavora sulle immagini Estrae i bordi Individua i confini di regione
INTRODUZIONE: COS E UN BORDO I bordi nelle immagini spesso corrispondono a contorni di oggetti Zone nell immagine dove l intensità varia rapidamente
USO DELL EDGE DETECTOR: VANTAGGI l individuazione dei bordi e largamente utilizzata quando si vuole dividere l immagine in aree corrispondenti a oggetti differenti rappresentare un immagine attraverso i suoi bordi permette che la quantità di dati da memorizzare è ridotta significativamente mentre la maggior parte delle informazioni vengono comunque mantenute l individuazione dei bordi costituisce uno stadio preliminare dell analisi delle immagini
USO DELL EDGE DETECTOR: ESEMPIO input output
ESTRAZIONE DEI BORDI (1) i bordi corrispondono a punti con grande variazione di intensità. Tra gli strumenti matematici,per la ricerca degli edge, risulteranno essere utili alcuni operatori diffenziali nella loro versione discreta Consideriamo il segnale in una dimensione S i, con i=1,,n. Il modulo della derivata prima indichera localmente dove siano grandi variazioni
ESTRAZIONE DEI BORDI (2) Nel discreto occorre valutare numericamente il valore di tale derivata e considerare rapporti incrementali. Per esempio per una funzione generica, f, la differenza all indietro fornisce una prima approssimazione.
ESTRAZIONE DEI BORDI (3) Noi possiamo osservare che la posizione del bordo può essere considerata con il massimo della derivata prima o con l intersezione con zero della derivata seconda E possibile calcolare la derivata prima e seconda di un immagine bidimensionale mediante la convoluzione
CONVOLUZIONE (1) è un semplice operatore matematico fornisce il modo di moltiplicare insieme due array di numeri, generalmente di diversa misura, ma della stessa dimensionalità, per produrre un terzo array di numeri della stessa dimensionalità
CONVOLUZIONE (2) Questo procedimento viene utilizzato per l implementazione di operatori sulle immagini che restituiscono in output valori di pixel che sono combinazioni lineari di certi valori di pixel dati in input uno dei due array in input è generalmente un immagine a toni di grigio. L altro array, tipicamente più piccolo e bidimensionale, è noto come kernel
CONVOLUZIONE (3) La convoluzione e ottenuta scorrendo il kernel sull immagine, partendo generalmente dall angolo in alto a sinistra, in maniera tale da muovere il kernel lungo tutte le posizioni dove il kernel calza all interno dei limiti dell immagine. Ogni posizione del kernel corrisponde a un singolo pixel in output, il valore del quale è calcolato moltiplicando insieme il valore del kernel e il valore del pixel dell immagine sottostante per ogni cella presente nel kernel, e sommando tutti questi valori insieme.
CONVOLUZIONE (4)
Convoluzione & Edge Detector Differenti edge detector sono basati sulla possibilita di calcolare la derivata prima di un immagine bidimensionale, calcolando la convoluzione tra l immagine ed un insieme di maschere La tecnica piu utilizzata e quella del gradient edge detection. Le maschere piu comuni per questi tipi di edge detector sono: Sobel, Roberts Cross e Prewitt.
ALGORITMO DI CANNY L operatore di Canny prende in input un immagine a toni di grigio e produce in output un immagine che mostra la posizione delle zone con intensita discontinua, cioè i bordi
ALGORITMO DI CANNY Il metodo di Canny e stato realizzato mediante i seguenti passi: 1. Filtro gaussiano 2. Norma del gradiente 3. Thresholding 4. Thinning Vediamo piu in dettaglio queste fasi
ALGORITMO DI CANNY: FILTRO GAUSSIANO E un operatore di convoluzione a due dimensioni che e usato per sfocare le immagini e per rimuovere qualche dettaglio e rumore. La distribuzione gaussiana ha la seguente forma: rappresenta la deviazione standard della distribuzione
ALGORITMO DI CANNY: FILTRO GAUSSIANO La funzione MATLAB che abbiamo implementato per lo sviluppo del calcolo della maschera con filtro gaussiano è la seguente: function y = gauss(x,std) y = exp(-x^2/(2*std^2)) / (std*sqrt(2*pi));
ALGORITMO DI CANNY: FILTRO GAUSSIANO Fissando x=0, la distribuzione e la seguente: Piu e larga la campana e maggiore sara l effetto dello smoothing
ALGORITMO DI CANNY: FILTRO GAUSSIANO si costruiscono i due filtri Gx e Gy, che costituiscono le due derivate della gaussiana si convolve l immagine di ingresso I con G le immagini Ix e Iy contengono le componenti sui due assi del gradiente di cui vanno cercati i massimi
ALGORITMO DI CANNY: NORMA DEL GRADIENTE Le componenti Ix e Iy vengono combinate insieme per trovare la norma del gradiente. La norma del gradiente è data da: Un difetto consiste nel fatto che tende ad ingrossare i bordi
ALGORITMO DI CANNY: THRESHOLDING Un edge sara un punto caratterizzato da un alto valore della norma In questa fase dell algoritmo determinati i valori massimi e minimi della norma del gradiente e dunque definito un parametro di soglia, i valori dei pixel dell immagine in input sono confrontati con tale valore, e nell immagine in output il pixel corrispondente avrà associato come valore quello massimo
ALGORITMO DI CANNY: THRESHOLDING Il semplice confronto con una soglia non porta a risultati soddisfacenti e inoltre e difficile individuare un corretto valore di soglia
ALGORITMO DI CANNY: THINNING In questa fase va eseguita la ricerca dei massimi locali del gradiente In effetti se un punto appartiene a un bordo, il valore del gradiente in esso è superiore ai valori dei vicini nella direzione del gradiente Se il punto in esame non verifica questa condizione, viene azzerato (nonmaximum suppression)
ALGORITMO DI CANNY: THINNING Per ogni punto bisogna quindi individuare la direzione del gradiente e confrontare il modulo del gradiente, nel punto in esame, con i valori dei vicini al punto e giacenti sulla direzione del gradiente
ALGORITMO DI CANNY: THINNING Per trovare i pixel dove le norme del gradiente sono massimi locali abbiamo applicato l interpolazione; tale funzione in MATLAB è interp2
ALGORITMO DI CANNY: DIPENDENZA DA Il fattore di deviazione standard influisce sulla definizione dei bordi.
BIBLIOGRAFIA & WEBGRAFIA Naldi-Pareschi Matlab Concetti e Progetti Apogeo http://www-dsp.elet.polimi.it/ispg/eti/laboratorio/ sessioni/edge_detection/teoria.html http://giachetti.sc.unica.it/vision/materialeold.html