elaborazione delle immagini - una viola rosaunaviolarosa.altervista.org/files/edge_detection.pdf ·...
TRANSCRIPT
ELABORAZIONE DELLE IMMAGINI:EDGE DETECTIONEDGE DETECTION
Università degli Studi di CataniaFacoltà di Scienze Matematiche,Fisiche e NaturaliCorso di Laurea in Informatica, Secondo Livello
Corso di Analisi NumericaProf.ssa RM Pidatella
Viola RosalbaMessina 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 utilizzataquando si vuole dividere l’immagine in areecorrispondenti a oggetti differenti
� rappresentare un’immagine attraverso i suoi bordipermette che la quantità di dati da memorizzare èridotta significativamente mentre la maggior partedelle informazioni vengono comunque mantenute
� l’individuazione dei bordi costituisce uno stadiopreliminare dell’analisi delle immagini
USO DELL’EDGE DETECTOR:ESEMPIO
input output
ESTRAZIONE DEI BORDI (1)
� i bordi corrispondono a punti con grandevariazione di intensità. Tra gli strumentimatematici,per la ricerca degli edge, risulterannoessere utili alcuni operatori diffenziali nella loroversione discreta
� Consideriamo il segnale in una dimensione Si , 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 bordopuò essereconsiderata con ilmassimo delladerivata prima o con l’intersezionecon zero delladerivata secondaE’ 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 terzoarray di numeri della stessa dimensionalità
CONVOLUZIONE (2)� Questo procedimento viene utilizzato per
l’implementazione di operatori sulle immagini cherestituiscono in output valori di pixel che sonocombinazioni lineari di certi valori di pixel dati in input
� uno dei due array in input è generalmenteun’immagine a toni di grigio. L’altro array,tipicamente più piccolo e bidimensionale, è notocome 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’internodei limiti dell’immagine.
� Ogni posizione del kernel corrisponde a un singolopixel in output, il valore del quale è calcolatomoltiplicando insieme il valore del kernel e il valoredel pixel dell’immagine sottostante per ogni cellapresente nel kernel, e sommando tutti questi valoriinsieme.
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 edgedetection.
� 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 gaussiano2. Norma del gradiente3. Thresholding4. 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, checostituiscono 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 arisultati 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 valoredel gradiente in esso è superiore ai valori dei vicininella 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 ladirezione del gradiente e confrontare ilmodulo 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