Skip to content

Latest commit

 

History

History
86 lines (52 loc) · 3.82 KB

img_spatial_filter.md

File metadata and controls

86 lines (52 loc) · 3.82 KB

Filtraggio immagini nel dominio spaziale

Il filtraggio spaziale consiste nell'applicare un'operazione su ogni singolo pixel prendendo come riferimento un intorno di quel pixel per calcolare il valore di intensità finale.

Il filtraggio crea quindi un nuovo pixel con le stesse coordinate del centro dell'intorno, e il valore di intensità del pixel invece viene determinato sulla base di un operazione applicata sui valori dei pixel nell'intorno.

Il fitraggio spaziale di un immagine MxN con un filtro mxn è dato da:

Spatial-Filter

m = 2a+1
n = 2b+1

Come è possibile intuire dalla formula, non si tratta di convoluzione ma di correlazione.

Calcolare la correlazione equivale a calcolare la convoluzione su una funzione maschera w(s,t) ruotata di 180°.

Valgono le seguenti relazioni:

Spatial-Corr

Spatial-Conv

L'utilizzo della correlazione o convoluzione per il filtraggio spaziale è indifferente a patto di ruotare la maschera di 180°.

Il concetto che sta dietro a queste operazioni è di sommare i prodotti tra i valori dei pixel vicini e il valore della maschera per quei pixel (e quindi possiamo vederla anche come una somma di coefficienti per i valori dei pixel vicini). Naturalmente si considera pure il valore del pixel stesso.

Filtro di media ponderata

Questo filtro assegna il valore del pixel centrale sulla base di una media pesata dei valori del pixel centrale e dei vicini.

Filtro di media (Box)

Simile alla media ponderata ma con pesi uguali.

Filtri non lineari

Un esempio di filtro non lineare è il filtro mediano che sostituisce il pixel centrale con il valore mediano delle intensità della regione intorno al pixel.

Il filtro mediano è molto comodo per l'eliminazione dei rumori.

Altri filtri utilizzati sono il max e il min.

Smoothing

Smoothing

Lo smoothing è ottenibile tramite filtri lineari come le medie o con filtri non lineari come i mediani.

Sharpening

Sharpening

Lo sharpening nel dominio spaziale avviene tramite metodi che utilizzano derivate del primo e secondo ordine, in modo da amplificare i punti dove si hanno le massime variazioni di intensità.

Unsharp Masking

Un tipico processo utilizzato dall'industria grafica e pubblicitaria per applicare lo sharpening è l'unsharp masking.

Sfochiamo l'immagine originale (smoothing) e creiamo una maschera a partire dalla differenza tra l'immagine originale e la sfocata.

A questo punto avremo una maschera del tipo:

m(x,y) = f(x,y) - fsm(x,y)

Il filtro si applica infine in questo modo:

g(x,y) = f(x,y) + km(x,y)

  • per k = 1 abbiamo un unsharp masking
  • per k > 1 abbiamo un effetto high-boost, ovvero un'amplificazione delle altre frequenze (e quindi delle alte differenze di intensità)
  • per k < 1 il contributo di sharpening si riduce