Filtri - Imaging in Biologia e Medicina

Download Report

Transcript Filtri - Imaging in Biologia e Medicina

Analisi di Immagini e Dati Biologici
Filtri
41
L4-1
Filtri
●
●
●
Trasformazione di un immagine che non si limita alla
trasformazione di intensità di un pixel
Il singolo pixel è ricalcolato in funzione del suo valore
e del valore dei pixel circostanti
La funzione che “modella” la trasformazione è detta
kernel
Filtro di smoothing
Smoothing Filter
●
Un pixel della nuova immagine è ricalcolato come media
dei pixel circostanti
Smoothing Filter
●
La stessa espressione resa per un pixel generico avente coordinate (u,v)
Smoothing Filter
●
Caratteristiche generali
●
●
●
●
Dimensione (size): numero di punti lungo righe & colonne
coinvolti nel filtro
Forma: Il filtro di media è rettangolare. per filtri di
dimensione maggiore si può cercare di approssimare la
forma di un disco
Kernel: funzione che determina i valori dei coefficienti del
filtro
Principale uso:
–
Limitazione del rumore luminoso scorrelato dall'oggetto
Filtri Lineari
●
●
●
Il filtro di media è un esempio di filtro lineare
E' semplice rappresentare l'azione di un filtro lineare attraverso una matrice
La matrice di un filtro di media:
Matrice di un filtro
●
●
Quasi sempre le matrici hanno ordine dispari in modo che
sia univoco il loro centro
Ogni matrice ha un “hot spot”, generalmente il centro
della matrice di un filtro (anche se non necessariamente)
Filtri lineari
●
Modello correlativo del calcolo di un filtro lineare
Filtri lineari
●
Rappresentazione matematica
Filtri Lineari
●
●
Box filter: è il filtro di media.
Gaussian filter: i coefficienti di un filtro gaussiano non sono costanti, ma calcolati
dalla funzione di Gauss in 2-D
Esempi di filtri lineari
Filtri lineari
octave:1> fspecial("average",3)
ans =
0.11111 0.11111 0.11111
0.11111 0.11111 0.11111
0.11111 0.11111 0.11111
octave:2> fspecial("gaussian",3)
ans =
0.011344 0.083820 0.011344
0.083820 0.619347 0.083820
0.011344 0.083820 0.011344
Filtro gaussiano
●
Originale
●
3x3, σ=1
●
5x5,σ=2
Smoothing
Octave: fspecial
-> fspecial(type,arg1,arg2)
●
●
●
Ritorna una matrice basata su un kernel definito dalla
stringa passata come primo argomento (type)
Controllata da 1,2 o 3 argomenti
1) Tipo di filtro da generare
2) Parametro di controllo 1
3) Parametro di controllo 2
Octave: fspecial
●
Filtri di smoothing generati
●
Average: filtro di media
●
Gaussian: filtro con kernel gaussiano
●
Disk: analogo del filtro di media ma con supporto
circolare
Octave: fspecial
●
→ type = “average”
– Filtro di media rettangolare. In assenza di altri argomenti genera un filtro
3x3
– Se il secondo argomento è un intero = N ritorna il filtro di media
rettangolare NxN
– Se è un vettore di 2 elementi allora vengono interpretati per creare una
matrice NxM
octave:1> fspecial("average",5)
ans =
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
octave:2> 0.04*25
ans = 1
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
0.040000
Octave: fspecial
●
→ type = “gaussian”
– Il secondo argomento è interpretato come per il filtro di media “average”
– Il terzo argomento è la dispersione σ (“spread”) della funzione
octave:3> fspecial("gaussian",5)
ans =
6.9625e-08
2.8089e-05
2.0755e-04
2.8089e-05
6.9625e-08
2.8089e-05
1.1332e-02
8.3731e-02
1.1332e-02
2.8089e-05
2.0755e-04
8.3731e-02
6.1869e-01
8.3731e-02
2.0755e-04
2.8089e-05
1.1332e-02
8.3731e-02
1.1332e-02
2.8089e-05
octave:4> sum(sum(fspecial("gaussian",5)))
ans = 1
6.9625e-08
2.8089e-05
2.0755e-04
2.8089e-05
6.9625e-08
Octave: fspecial
●
Il signficato del terzo argomento (opzionale) dipende
dal tipo di filtro che state generando
Per il box-filter (“average”) è la dimensione del
supporto rettangolare del filtro (può essere un
vettore di 2 elementi)
– Per il filtro gaussiano il terzo argomento è la
dispersione del filtro (default = 0.5)
– Per il filtro circolare (“disk”) è il raggio del disco
Provate a confrontare l'output di fspecial per un filtro
gaussiano di ordine 7 cambiando il valore della
dispersione
–
●
Octave's filtering: imfilter(I, f)
●
Funzione di Octave che implementa un filtro lineare
●
J = imfilter(I, f)
– 'I' immagine da filtrare
– 'f' matrice del filtro
– 'J' matrice dell'immagine di output
●
Preserva la classe dell'immagine di input
●
Se l'immagine è RGB agisce separatamente su ogni
piano di colore
Smoothing
octave:1> cd Desktop/
octave:2> ht=imread('halftone.tiff');
octave:3> imshow(ht)
octave:4> figure
octave:5> htf = imfilter(ht,fspecial("gaussian",7,1.5));
octave:6> imshow(htf)
octave:7>
Filtri lineari
●
Convoluzione
Filtri lineari
●
Modello convolutivo
●
La funzione di correlazione con cui si rappresenta l'azione
di un filtro viene più convenientemente espressa come
convoluzione
Filtri lineari
●
Passaggio da convoluzione a correlazione
Filtri non lineari
●
I filtri lineari
●
Pixel di un immagine risultante funzione di NxM pixel
●
Problema del 'blurring' (offuscamento)
Filtri non lineari: max e min
Filtro max e min
Filtro di mediana
●
Il median filter seleziona per ogni pixel dell'immagine di
output il valore della mediana dei valori di un intorno
Filtro di Mediana
Filtro di Mediana
Filtro di Mediana
Filtro di Mediana
Point Spread Function
●
●
●
Funzione di trasferimento ottico del sistema
Un modello lineare della funzione ottica può essere
rappresentato matematicamente come convoluzione
della PSF con una sorgente puntiforme
La PSF rappresenta il modello di tutte le alterazioni che
avvengono nella formazione dell'immagine rispetto al
modello teorico
Filtri Lineari e System identification
●
●
Impulse Response: filtro che lascia l'input intatto
E' rappresentato dalla funzione δ
Determinazione dell PSF
●
La funzione δ preserva una immagine, costituisce cioè
l'identità del prodotto di convoluzione
Determinazione della PSF
●
●
Per correggere il comportamento di un sistema ottico si usano sorgenti puntiformi
Si va ad osservare l'immagine che si forma che è una rappresentazione della PSF
Effetti della PSF
●
Aberrazione sferica
Convoluzione
Esempi di effetti della PSF
●
“Diffraction spikes” nei telescopi
●
●
●
Ogni stella è una sorgente
approssimativamente puntiforme
Il risultato è la somma di sorgenti
“tipo puntiforme”
Ogni sorgente riproduce la PSF
del telescopio che crea l'effetto
delle “diffraction spikes”