Filtri

I filtri combinano il valore di un pixel con quello dei suoi vicini. Ad esempio l’effetto blur calcola la media dell’intensità di un blocco di pixel.

Ci sono cose che le operazioni puntuali non possono fare, ma i filtri si.

Sharpening

Opposto del blurring.

Pattern artistici

Pattern artistici che combinano pixel.

Filtro spaziale

Operatore che combina l’intensità di ogni pixel () con quella dei pixel vicini.

Media

Ci sono molti parametri che si possono applicare al filtro, ad esempio

  • si può cambiare la dimensione del filtro (5x5, 7x7, …)
  • si può cambiare la forma, che può essere quadrata, rettangolare, tonda…
  • si può cambiare il peso del filtro, dando pesi differenti ai pixel diversi
  • si può cambiare la funzione, che può essere lineare o non lineare

La funzione identità lascia l’immagine come è.

Filtri lineari

  1. Si sovrappone la matrice H all’immagine, per ogni pixel
  2. Si moltiplicano tutti i coefficienti
  3. Si sommano tutti i risultati, e si applica il valore al pixel iniziale.

equivale a:

Non si può sovrascrivere immediatamente il nuovo valore del pixel nell’immagine iniziale, perché se no si andrebbero a modificare anche i valori degli altri pixel. Quindi

  • si fa una copia dell’immagine iniziale e si campiona quella, sovrascrivendo l’originale
  • oppure si scrivono i nuovi risultati in una immagine nuova, e si campiona l’immagine originale, sovrascrivendola alla fine

Weighted filters

Filtri di smoothing più efficaci possono essere implementati con i filtri pesati, in modo da dare più importanza ai pixel più vicini al pixel centrale.

Filter range

Come funziona quando il filtro convolutivo è vicino ai bordi? Il risultato non si riesce a calcolare per tutti i pixel dell’immagine, perché non si riesce a mettere il kernel, perché si uscirebbe dall’immagine.

In output quindi si avrà una immagine più piccola.

La dimensione del bordo che si perde è la di mensione del filtro.

Ci sono delle strategie per evitare di perdere questo bordo, ma normalmente si perde.

Cosa si può fare per questo bordo?

Per il bordo ci sono 4 possibilità:

  1. Crop. Si può tagliare il bordo a cui non viene applicato il filtro
  2. Pad. Si può inserire un bordo all’esterno dell’immagine così da non perdere il bordo, e avere un’immagine di destinazione con le stesse dimensioni dell’immagine di partenza
  3. Extend. Come il padding, solo che si riflette quello che si ha nell’immagine di partenza
  4. Wrap. Si ripete l’immagine su tutti i bordi.

Estensione e wrapping sono i migliori da utilizzare.

Smoothing filters

Esistono due grandi classi:

  • Smoothing: coefficienti positivi (weighted average). Eg. box, gaussian
  • Difference: pesi sia positivi che negativi. Eg. laplacian

Filtro di gauss

dove è la larghezza (deviazione standard) e è la distanza dal centro.

Difference filters

I coefficienti possono essere sia positivi che negativi.

Proprietà matematice della convoluzione

In pratica è una somma con , quindi .

La convoluzione () è:

  • Commutativa.
  • Lineare. Attenzione però:
  • Associativa:

I filtri vengono anche usati per rimuovere il rumore.

I filtri lineari sfocano tutti i punti strutturali dell’immagine, bordi e linee, riducendo la qualità dell’immagine. Per questo i filtri lineari non sono usati per rimuovere il rumore.

Filtri non lineari

Per rimuovere il rumore si utilizzano filtri non lineari, che fanno un lavoro migliore e in loco rispetto ai filtri lineari.

I pixel nel range dei filtri sono combinati con funzioni non lineari. I filtri min e max sono due filtri non lineari.

I filtri non lineari rimuovono il rumore mantenendo però la struttura.

Un filtro mediano agisce in questo modo:

Convoluzione come prodotto

Per applicare un filtro ad un dato pixel, si fa la moltiplicazione tra l’immagine e un vettore.

sva_s05