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 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 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
1.
2.
3.
4.
Il metodo di Canny e’ stato realizzato mediante i
seguenti passi:
Filtro gaussiano
Norma del gradiente
Thresholding
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