Filtri lineari nel dominio spaziale basati su convoluzione (operazioni

Transcript

Filtri lineari nel dominio spaziale basati su convoluzione (operazioni
Filtri lineari nel dominio spaziale basati su
convoluzione
(operazioni “locali”)
I ' (i, j ) =
∑ h(k , l ) I (i − k , j − l ) ≡ h * I (i, j )
N
k ,l = 0
Kernel o template o maschera
I ' (i, j ) =
∑ h(k , l ) I (i − k , j − l ) ≡ h * I (i, j )
N
k ,l = 0
h(k,l)
I(i,j)
Tipi di filtri
La convoluzione di una immagine con un
filtro corrisponde nel dominio delle frequenze a una moltiplicazione
tra la FT del filtro e la FT dell’immagine.
A seconda di come viene modificato il contenuto armonico dell’immagine,
i filtri nel dominio spaziale seguono la stessa terminologia di
quelli nel dominio delle frequenze, ovvero passa-basso, passa alto…
Filtro passa basso (smoothing)
Usato anche per rimuovere il rumore di fondo
Esempio
Esempio
Esempio: passa alto per
“sharpening”
originale
Filtrata passa-alto
sharpening
Passa Alto come
1-passabasso
I’=I-h*I
Edge detection
Sono un tipo di filtro passa-alto basati su approssimazione di derivate
prime (Gradiente) o seconde (Laplaciano) spaziali. Servono per mettere
in evidenza dove l’immagine varia fortemente ovvero per mettere
in risalto i contorni per esempio.
Horizontal edge Vertical edge
-1 -2 -1
-1
0
1
1
-1
0
1
0
0
2
0
-2
1
0
2
Sobel (gradiente)
0 -1
-1
0
4 -1
0 -1
0
laplaciano
Detettore di punto
(laplaciano)
Esempio edge detection con
gradienti (filtro di Sobel)
Gx-gradient
|Gx|+|Gy|
Gy-gradient
Unsharp masking
Un filtraggio passaalto si puo’ ottenere
da originale sottratta a immagine filtrata
passabasso:
I'= I − g * I
Si possono ulteriormente amplificare le
alte frequenze, ovvero passaalto con boost
modificando leggermente il filtro come
I ' = (1 + α ) I − αg * I
α >1
noto come unsharp-masking.
Il Filtro e’ una rozza approssimazione di derivata seconda ( laplaciano) e
amplifica i dettagli amplificando le alte frequenze.
Esempio Unsharp-masking
I ' = (1 + α ) I − αg * I
α >1
Passa alto normale
Passa-alto con boost
Passa-banda
Zoom