• Non ci sono risultati.

Tecniche basate sulle discontinuità

Con questo tipo di approccio la ricerca dei bordi degli oggetti (edge detection) viene effettuata osservando le discontinuità nei livelli di grigio dell’immagine.

1

Ci sono due metodi per definire le relazioni fra due pixel adiacenti: i pixel possono essere 4–connessi, se si considerano solo quei pixel nelle immediate vicinanze del pixel di riferimento (cioè solo quei pixel nelle direzioni nord, est, sud, ovest), oppure 8–connessi, se si considerano tutti i pixel nell’intorno del pixel di riferimento (sono quindi inclusi anche i pixel che toccano gli angoli di quest’ultimo) [49].

L’individuazione degli edge mira, infatti, ad enfatizzare il contrasto fra gli oggetti, poiché è proprio il contrasto (ossia la differenza tra le intensità) che mette in luce maggiormente i bordi. Questo approccio prova a riprodurre la percezione tipica della visione umana, la quale riesce ad individuare il contorno di un oggetto poiché questo ha una diversa intensità rispetto allo sfondo [49]. La ricerca degli edge non genera una vera e propria segmentazione dell’immagine, ma fornisce delle informazioni con cui è possibile ricavare i bordi delle regioni.

Per capire dove avvengono i repentini cambiamenti nei livelli di grigio dell’immagine e, quindi, localizzare gli edge, si possono utilizzare diversi metodi che possono essere raggruppati in due categorie: quelli basati sulla ricerca dei massimi locali della derivata del primo ordine dell’immagine, e quelli che cercano i punti in cui la derivata del secondo ordine passa per lo zero. In entrambi i casi, un’opportuna maschera viene convoluta con l’immagine originale così da ottenere una nuova immagine contenente solo le informazioni sui bordi delle regioni.

2.2.1 Il gradiente dell’immagine

Per i metodi che sfruttano la derivata prima, si utilizza il gradiente per definire l’intensità e la direzione di un edge in un certo punto (x, y). Questo è possibile perché il gradiente è un vettore bidimensionale che punta nella direzione di massima variazione di f partendo dal punto (x, y) [18]. Il gradiente è definito come ∇f =Gx Gy  =   ∂f ∂x ∂f ∂y   (2.1) con modulo |G| =qG2 x+ G2y (2.2)

mentre l’angolo che definisce la direzione lungo la quale si ha la massima variazione di intensità è dato da:

α(x, y) = tan−1Gy Gx



(2.3) Dal momento che il calcolo della derivata prima dell’immagine è un’o- perazione computazionalmente complessa, si ricorre alla discretizzazione del gradiente considerando che nelle immagini digitali la minima distanza apprezzabile corrisponde ad un pixel, cioè dx = ∆x = 1 e dy = ∆y = 1:

xf(x, y) = f(x + dx, y) − f (x, y)

dx = f (x + 1, y) − f (x, y) (2.4) ∇yf(x, y) =

f(x, y + dy) − f (x, y)

dy = f (x, y + 1) − f (x, y) (2.5) da cui si ricavano le maschere di convoluzione seguenti per l’identificazione delle discontinuità, rispettivamente, verticali ed orizzontali:

−1 1 0 0  −1 0 1 0 

Nel corso degli anni sono stati sviluppati diversi operatori di rilevamento degli edge che utilizzano la derivata prima, ognuno con la propria maschera di convoluzione [55, 58, 62]. In particolare, secondo il metodo di Canny [6], avendo calcolato |G| e α(x, y) per ogni punto dell’immagine e avendo trovato i punti di massimo locale nella direzione del gradiente, l’algoritmo attua un processo di sogliatura con due valori T 1 e T 2 (con T 1 < T 2): i pixel di massimo locale il cui valore è maggiore di T 2 sono detti punti di edge forti, i pixel che hanno un valore compreso tra T 1 e T 2 sono considerati punti di edge deboli, mentre tutti gli altri pixel sono classificati come spuri e non appartenenti al bordo. Viene, poi, eseguito il collegamento dei punti di edge forti (edge–linking) includendo anche tutti i punti di edge deboli che sono 8–connessi ai pixel forti.

Tra i vari problemi del metodo della sogliatura con il gradiente vi è la difficoltà nello stabilire dei valori di soglia che non siano né troppo alti (per non perdere alcuni punti di edge) né troppo bassi (per evitare di includere anche i pixel affetti da rumore). Per ovviare a questi problemi è possibile utilizzare i metodi che sfruttano la derivata seconda.

2.2.2 Ricerca degli zero–crossing

Anche la derivata seconda applicata all’immagine originale rileva i cambia- menti di intensità improvvisi, e lo fa producendo un attraversamento dello zero (zero–crossing) in corrispondenza del bordo dell’oggetto. La Figura 2.1 mostra il comportamento della derivata prima e della derivata seconda in presenza di un edge nell’immagine originale: la derivata prima, f0(x), mostra

un picco in corrispondenza della discontinuità e poi torna a valere zero nelle zone in cui f(x) è omogenea, mentre la derivata seconda, f00(x), ha un picco

positivo (salita della derivata prima) e un picco negativo (discesa della de- rivata prima) separati da un attraversamento dello zero in corrispondenza dell’edge.

Uno degli operatori più semplici per il calcolo della derivata secon- da dell’immagine è il Laplaciano. Data in ingresso f(x, y), il Laplaciano dell’immagine è dato da

Figura 2.1: Descrizione della derivata prima e seconda in presenza di una discontinuità nell’immagine f(x). ∇2f(x, y) = ∂ 2f(x, y) ∂x2 + ∂2f(x, y) ∂y2 (2.6)

Operando lo stesso tipo di discretizzazione effettuata per il gradiente, le derivate seconde possono essere scritte nel modo seguente:

∂2f(x, y)

∂x2 = f (x + 1, y) − 2f (x, y) + f (x − 1, y) (2.7)

∂2f(x, y)

∂y2 = f (x, y + 1) − 2f (x, y) + f (x, y − 1) (2.8)

che combinate insieme permettono di ricavare la tipica maschera di convolu- zione per il Laplaciano

  0 1 0 1 −4 1 0 1 0  

Uno dei vantaggi dell’operatore Laplaciano è il fatto di essere isotropico, per cui ha le stesse proprietà in ciascuna direzione; purtroppo, però, è molto sensibile al rumore e questo lo rende praticamente inutilizzabile nella maggior parte dei casi. Tuttavia, questo problema è in parte eliminabile se si considera l’approccio seguito da Marr e Hildreth [45]. Prendiamo la funzione gaussiana h(r) = −e−2σ2r2 (2.9)

(dove r2= x2+y2e σ è la deviazione standard) che, convoluta con l’immagine,

effettua uno smoothing su quest’ultima; allora il Laplaciano di tale funzione sarà: ∇2h(r) = −hr 2− σ2 σ4 i e−2σ2r2 (2.10)

chiamato, per ovvie ragioni, Laplaciano di Gaussiana (LoG). Tale operatore, quindi, effettua una prima operazione di smoothing sull’immagine per elimi- nare il rumore, e poi ne calcola il Laplaciano per andare ad individuare gli zero–crossing.

Un vantaggio nell’usare il LoG è che in questo modo si ottengono dei contorni chiusi che non sono, invece, ottenibili con gli operatori che utilizzano la derivata prima (con questi ultimi è sempre necessario un successivo edge– linking). Il problema principale, però, è che, aumentando l’apertura σ della gaussiana per eliminare gli edge spuri dovuti al rumore, si rischia di rendere l’immagine sempre più sfocata, con i contorni delle strutture che diventano sempre più spessi, tanto da non farci apprezzare i dettagli più fini.