Questo articolo รจ una parziale traduzione di quanto trovato in http://homepages.inf.ed.ac.uk/rbf/HIPR2/filtops.htm e nelle pagine correlate.

1. Introduzione

I filtraggi digitali di immagini sono usati principalmente per rimuovere le alte frequenza in unโ€™immagine (come lo smoothing) o le basse frequenza (edge detection). Unโ€™immagine puรฒ essere filtrata sia del dominio spaziale che nel dominio delle frequenze. Nel caso del filtraggio in frequenza, questo prevede prima il passaggio dellโ€™immagine in tale dominio, lโ€™applicazione del filtro ed infine la ritrasformazione nel dominio spaziale. Il filtro deve essere progettato in modo di attenuare alcune frequenze e salvare (o enfatizzare) altre. Lโ€™analogo nel tempo utilizza la convoluzione lโ€™immagine col filtro.

2. Filtro medio (smoothing)

Questo tipo di filtro รจ il piรน semplice metodo per eseguire lo smoothing delle immagini, riducendo cosรฌ la differenza tra lโ€™intensitร  di un pixel e quella dei pixel ad esso adiacenti. Questa รจ lโ€™implementazione piรน semplice di un filtro passa basso.

2.1 Funzionamento

Il filtro funziona semplicemente sostituendo il valore di ogni pixel con la media dei valori del vicinato, includendo se stesso. Cosรฌ facendo si ha lโ€™eliminazione dei valori di pixel che non sono rappresentativi rispetto al loro vicinato. Il filtro medio รจ il piรน semplice tra i filtri di convoluzione, in cui il kernel rappresenta la dimensione del vicinato. Solitamente รจ utilizzato un kernel 3x3, ma anche un kernel 5x5 puรฒ essere usato per avere una sfumatura piรน forte. Il kernel di questo filtro (nello spazio) รจ un rettangolo, conseguentemente, in frequenza, รจ un sinc.

2.2 Applicazioni

Il filtro medio รจ usato comunemente per ridurre il rumore di unโ€™immagine. I problemi di usare questo metodo sono i seguenti:

  • un singolo pixel con valori non rappresentativi per lโ€™immagine puรฒ alterare la media di tutti i pixel nel suo vicinato
  • Quando sono in corrispondenza di un bordo in unโ€™immagine, il filtro eseguirร  lโ€™interpolazione con i pixel al di fuori del bordo ottenendo una notevole sfocatura di questโ€™ultimo.

Entrambi questi problemi sono risolti dal filtro mediano che vedremo nel capitolo seguente, che spesso รจ una soluzione migliore rispetto al filtro medio per ridurre il rumore, ma aumenta il tempo di computazione.

3. Filtro mediano

Analogamente al filtro medio, viene utilizzato per ridurre il rumore allโ€™interno di unโ€™immagine ma, a differenza di questo, fa un lavoro migliore preservando maggiormente i dettagli utili allโ€™interno di questโ€™ultima.

3.1 Funzionamento

Come il filtro medio, il filtro mediamo considera ogni pixel nellโ€™immagine e lo confronta con i vicini per decidere se un pixel รจ o non รจ rappresentativo. La differenza vi รจ sul fatto che, invece di eseguire una semplice sostituzione del valore del pixel con la media del vicinato, lo sostituisce con la valore mediano. Questo valore รจ calcolato prima ordinando i valori dei pixel in ordine crescente e in seguito eseguire una sostituzione del pixel con il pixel a metร  della lista ordinata (se la lista รจ pari, eseguirรฒ la media dei due valori centrali).

3.2 Applicazioni

Come il filtro medio, questo metodo รจ usato principalmente per ridurre il rumore, portando perรฒ i seguenti vantaggi:

  • un pixel non rappresentativo non influenza il valore dei pixel del vicinato
  • Dato che il valore di un pixel viene scelto uguale al valore di uno dei pixel del vicinato, non verrร  mai creato un pixel con un valore non realistico, soprattutto in corrispondenza di un bordo. Questo filtro infatti preserva i bordi.

Il problema principale รจ che รจ relativamente complesso da computare. Per trovare il valore mediano รจ necessario ordinare la lista dei pixel del vicinato e questo รจ computazionalmente pesante, anche usando il quicksort.

4. Smoothing gaussiano

Lo smoothing gaussiano รจ un operatore di convoluzione per eseguire un โ€œblurโ€ dellโ€™immagine rimuovendo allo stesso tempo dettaglio e rumore. In questo senso รจ simile al filtro medio, ma utilizza un kernel diverso, cioรจ una gaussiana.

4.1 Funzionamento

La distribuzione gaussiana รจ descritta dalla seguente formula

Dove gamma รจ la deviazione standard della distribuzione. Questa gaussiana ha media nulla, conseguentemente รจ centrata sullo zero. La forma รจ la seguente

Un esempio di una tipico kernel gaussiano รจ il seguente

Una volte calcolato il kernel, il filtraggio avviene tramite convoluzione dellโ€™immagine con questo kernel analogamente a quanto avviene con il filtro medio.

4.2 Applicazioni

Lโ€™effetto del filtro gaussiano รจ simile al filtro medio, con la differenza che la media non รจ una media โ€œseccaโ€, ma una media pesata che da piรน importanza al pixel centrale e sempre meno importanza mano a mano che mi allontano da questo. Per questo motivo questo metodo fornisce uno smooth migliore e preserva i bordi in maniera migliore. Uno dei motivi principali per usare questo tipo di filtro รจ la sua risposta in frequenza: molti filtri basati su convoluzione agiscono come filtri passa basso, ma lโ€™analisi del kernel nelle frequenza mostra dei limiti. Abbiamo indicato qui sotto la rappresentazione, in frequenza, dei kernel di un filtro medio (rettangolo) e di un filtro gaussiano.

Come si puรฒ notare, la rappresentazione in frequenza del filtro medio รจ un sinc, mentre del filtro gaussiano รจ ancora un gaussiano. Entrambi agiscono come filtro passa basso ma, mentre il filtro gaussiano elimina completamente le frequenza alte, il sinc invece, per la sua natura oscillatoria, fornisce risultati meno attendibili. Un filtro gaussiano fornisce risultati certi sulle frequenze dellโ€™immagine dopo il filtraggio, il filtro medio no. Questo risultato รจ utile per alcune tecniche di edge detection.

5. Smoothing conservativo

Lo smoothing conservativo รจ una tecnica di riduzione del rumore che, come dal nome โ€œconservativoโ€, sacrifica la completa riduzione del rumore al fine di preservare i dettagli dellโ€™immagine ad alta frequenza (sharp edges). Eโ€™ stato implementato in modo da ridurre i noise spikes (pixel isolati con frequenza molto alta o bassa) e non il rumore additivo (come il rumore gaussiano).

5.1 Funzionamento

Lo smoothing conservativo si assicura che lโ€™intensitร  di ogni pixel sia limitata da un range di pixel definito dai suoi vicini. Per prima cosa quindi viene trovato il valore minimo e massimo di intensitร  tra tutti i pixel nel vicinato, se lโ€™intensitร  del pixel centrale รจ allโ€™interno di questo range allora non viene cambiato, altrimenti รจ settato al valore massimo (se maggiore) o minimo (se minore) del range.

5.2 Applicazioni

Questo filtro conserva maggiormente i bordi dellโ€™immagine sia rispetto al filtro medio che mediano. Come scritto sopra, questo filtro funziona bene solo sul rumore impulsivo (salt and pepper) e non sul rumore additivo (rumore gaussiano).

6. Filtraggi in frequenza

I filtri in frequenza sono una categoria di filtraggi in cui lโ€™applicazione del filtro avviene nel dominio delle frequenze e non nel dominio spaziale. Lโ€™immagine conseguentemente subisce una trasformazione di Fourier, viene moltiplicata con il filtro e poi ritrasformata nel dominio spaziale. Applicare un filtro passa basso fornisce uno smooth dellโ€™immagine attenuando i bordi, un filtro passa alto invece gli enfatizza. Dato che la moltiplicazione in frequenza รจ la convoluzione nello spazio, teoricamente ogni filtro in frequenza puรฒ essere applicato anche nello spazio. In pratica invece, i filtri nello spazio spesso possono essere solo delle approssimazioni dei filtri in frequenza. Esistono tre diverse tipologie di filtro:

  • Passabasso: attenua le alte frquenze rendendo i bordi piรน morbidi e diminueando il rumore;
  • Passaalto: aumenta i bordi (utile per lโ€™edge detection);
  • Passabanda: migliora i bordi attenuando le basse frequenza riducendo allo stesso modo il rumore.

7. Filtro Laplaciano

Quiesto filtro viene utilizzato per enfatizzare le regioni di rapido cambiamento nei valori dei pixel e conseguentemente viene comunemente utilizzato per lโ€™edge detection. Il laplaciano viene usato su immagini in scala di grigi che hanno subito prima uno smoothing (con un filtro gaussiano per esempio) al fine di ridurre la sua sensibilitร  al rumore.

7.1 Funzionamento

Il laplaciano di unโ€™immagine I(x,y) รจ dato da

E questo puรฒ essere calcolato utilizzando la convoluzione. Due esempi di kernel comunemente usati che approssimano bene tale relazione sono i seguenti

Dato che questi kernel sono unโ€™approssimazione di una derivata seconda, sono molto sensibili al rumore. Per risolvere questo problema spesso sullโ€™immagine in ingresso viene applicato un filtro gaussiano passa basso. Eโ€™ importante sottolineare che, dato che la convoluzione รจ unโ€™operazione associativa, possiamo eseguire una convoluzione del filtro gaussiano con il filtro Laplaciano e poi convolvere questo filtro ibrido (chiamato filtro LoG) per lโ€™immagine per ottenere il risultato desiderato. Usare questo metodo porta ai seguenti vantaggi:

  • Visto che sia il kernel gaussiano che laplaciano sono molto piรน piccoli dellโ€™immagine, questo metodo รจ molto piรน veloce della doppia convoluzione con lโ€™immagine stessa
  • Visto che il kernel LoG (Laplacian of Gaussian) puรฒ essere precalcolato in anticipo, solo una convoluzione deve essere eseguita in runtime sullโ€™immagine

7.2 Applicazioni

Lโ€™operatore LoG effettua una derivata seconda sullโ€™immagine, questo significa che nelle aree in cui lโ€™immagine ha intensitร  costante il LoG sarร  zero. Nelle vicinanze di un cambio di intensitร  la risposta LoG sarร  positiva nella zona piรน scura e negativa nella zona piรน chiara. Conseguentemente considerando un bordo relativamente intenso che si pone tra due zone ad intensitร  costante ma diversa, la risposta LoG sarร :

  • zero distante dal bordo;
  • Positiva da un lato;
  • Negativa dallโ€™altro;
  • Zero in qualche punto tra le due aree, o nello stesso bordo.

Per esempio con la seguente immagine in ingresso

Ottengo il seguente output

Eseguendo una combinazione lineare tra questo output e lโ€™immagine in ingresso (per esempio in questo caso eseguendo unโ€™addizione, ma in altri casi una sottrazione).