Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Giovanni Mettivier » 10.Filtraggio nel Dominio Spaziale - parte seconda


Filtri Sharpening

I filtri spaziali di sharpening sono utilizzati per aumentare il contrasto locale dell’immagine, in modo da arricchire i dettagli fini, o per evidenziare i contorni degli oggetti (edge crispening).
A tal fine questi filtri lavorano aumentando le differenze tra i pixel vicini esaltando il contenuto delle componenti ad alta frequenza spaziale presenti nell’immagine. Per cui queste operazioni sono dei filtraggi passa-alto. Sono pertanto complementari ai filtri di smoothing.
Possono quindi provocare l’aumento del rumore presente nell’immagine, per cui la loro azione va spesso compensata con quella di un filtro per la riduzione del rumore.

Filtri Derivativi

È interessante il comportamento delle derivate in corrispondenza di particolari andamenti del livello di grigio f(x).
Poiché i contorni nelle immagini digitali sono di questo tipo (più o meno lenti) a causa dell’effetto di blurring indotto dal campionamento, si può concludere che la derivata prima produce edge piuttosto spessi, mentre la derivata seconda dà luogo a edge più sottili ma “doppi”.

Rappresentazione del processo di derivata prima e seconda applicata ad una funzione a rampa.

Rappresentazione del processo di derivata prima e seconda applicata ad una funzione a rampa.


Filtri Derivativi (segue)

Questa caratteristica viene sfruttata negli algoritmi di estrazione dei contorni (edge detection), come vedremo.
Riassumendo, in generale:

  • Le derivate prime danno luogo a contorni più spessi;
  • Le derivate seconde hanno una risposta più forte ai dettagli fini;
  • Le derivate prime hanno una risposta più forte agli edge ripidi;
  • Le derivate seconde producono una risposta doppia agli edge.

Filtri Derivativi (segue)

Da queste considerazioni, emerge come l’uso della derivata seconda appaia in realtà più adeguato per operazioni di miglioramento di qualità, soprattutto se l’immagine contiene dettagli fini.
Entrambe le operazioni trovano peraltro la loro applicazione principale, da sole o in combinazione con altre, nella estrazione dei contorni.

Una definizione usuale di derivata prima di una f(x) discreta è semplicemente la differenza (fig.1).
Una definizione di derivata seconda di una f(x) discreta è la differenza (fig.2).

fig.1 Derivata prima di una f(x) discreta.

fig.1 Derivata prima di una f(x) discreta.

fig.2 Derivata seconda di una f(x) discreta.

fig.2 Derivata seconda di una f(x) discreta.


Filtro Gradiente

Una comune implementazione della derivata prima nell’ambito dell’image processing è costituita dal modulo del gradiente.
Ricordiamo che data una funzione f(x,y), il gradiente di f in (x,y) è il vettore (vedi figura).

Le componenti del gradiente non sono isotrope, mentre il modulo lo è. L’approssimazione mediante somma dei valori assoluti delle componenti rende computazionalmente meno oneroso il calcolo del gradiente, ma in generale fa perdere la proprietà di isotropia.

Filtro gradiente.

Filtro gradiente.


Filtro Gradiente (segue)

La maniera più semplice di generare una approssimazione discreta del gradiente prende in considerazione la differenza mobile (running difference) dei pixel nelle due direzioni.

La maniera più semplice di generare una approssimazione discreta del gradiente prende in considerazione la differenza mobile (running difference) dei pixel nelle due direzioni.


Filtro Gradiente (segue)

L’implementazione di queste equazioni può essere effettuata usando le seguenti maschere:

I valori assoluti delle risposte delle due maschere vengono sommati per determinare Vf.

Più comune è tuttavia l’impiego di maschere, che rendono più semplici le operazioni di filtraggio.

Esempi di maschere per l’applicazione del filtro gradiente.

Esempi di maschere per l'applicazione del filtro gradiente.


Filtro Gradiente (segue)

Porta in evidenza le variazioni di intensità lungo una direzione specifica, che ha l’effetto di evidenziare i bordi e rivelando i testi.

Il kernel ha un asse di simmetria che corre tra i coefficienti positivi e negativi e l’elemento centrale. Questo asse fornisce l’orientazione .

Asse di simmetria = 135°

Asse di simmetria = 135°


Filtro Gradiente (segue)

Esempi dell’applicazione di diversi filtri gradiente ad una immagine.

Esempi dell'applicazione di diversi filtri gradiente ad una immagine.


Operatori Prewitt e Sobel

Gli operatori di gradiente sicuramente più diffusi, in grado di effettuare simultaneamente la differenziazione lungo una direzione e una media spaziale lungo la direzione ortogonale, che riduce la sensibilità al rumore, sono:
Operatori di Prewitt
Gx=(z7+z8+z9)-(z1+z2+z3)
Gy=(z3+z6+z9)-(z1+z4+z7)

Operatori di Sobel
Gx=(z7+2z8+z9)-(z1+2z2+z3)
Gy=(z3+2z6+z9)-(z1+2z4+z7)

Esempi di maschere per l’applicazione Prewitt (in alto) e Sobel (in basso).

Esempi di maschere per l'applicazione Prewitt (in alto) e Sobel (in basso).


Filtro Prewitt

Maschere per l’applicazione del filtro Prewitt.

Maschere per l'applicazione del filtro Prewitt.


Filtro Sobel

Maschere per l’applicazione del filtro Sobel.

Maschere per l'applicazione del filtro Sobel.


Filtro Laplaciano

Si tratta innanzitutto di definire il filtro, a partire da una formulazione discreta dell’operazione di derivata seconda.
Il modo più semplice di effettuare le operazioni di derivata seconda di una f(x,y) in un punto è quello di calcolare il laplaciano in quel punto, definito come (vedi figura).

Si tratta di una operazione isotropa, la cui risposta è pertanto indipendente dalla direzione delle discontinuità presenti nell’immagine.
Il modo più semplice di definire il laplaciano nel caso discreto consiste nel calcolare le derivate seconde rispetto alla due direzioni, e sommare i risultati.

Filtro Lapaciano.

Filtro Lapaciano.


Filtro Laplaciano (segue)

Sommando le componenti: (fig.1)

L (x,y) = f (x+1,y) + f (x-1,y) + f (x,y+1) + f (x,y-1) + 4 f (x,y)

Il laplaciano si può quindi implementare con la seguente maschera, nota come laplaciano dei 4-vicini: (fig.2).

Il filtro è isotropo per rotazioni effettuate con step di 90°.

Fig.1

Fig.1

Fig.2

Fig.2


Filtro Laplaciano (segue)

Il laplaciano si può rendere isotropo per rotazioni di 45° prendendo in considerazione le derivate seconde lungo le direzioni diagonali, definite in modo analogo a quanto fatto per le due direzioni principali.
Ne deriva la maschera in figura.

Filtro Lapaciano.

Filtro Lapaciano.


Filtro Laplaciano (segue)

Le immagini filtrate con il laplaciano perdono completamente l’informazione di sfondo: questo risultato è pienamente giustificato dal comportamento della derivata seconda.
Il fatto che l’uscita del laplaciano presenti valori diversi da 0 solo in corrispondenza dei dettagli evidenziati suggerisce un metodo per il ripristino (parziale) dell’informazione di sfondo: sommare all’uscita del laplaciano l’immagine originale, naturalmente tenendo conto della definizione di laplaciano adoperata.

Filtro Laplaciano (segue)


Filtro Laplaciano

  • Se x = 2(|a| + |b| + |c| + |d|) estrae i contorni
  • Se x ≥ 2(|a| + |b| + |c| + |d|) evidenzia i contorni
Filtro Lapaciano.

Filtro Lapaciano.


Filtro Laplaciano

Applicazione del filtro laplaciano su una immagine di test.

Applicazione del filtro laplaciano su una immagine di test.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93