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).