Analisi di Immagini e Dati Biologici Filtri L4-1 35

Preview:

Citation preview

Analisi di Immagini e Dati Biologici

Filtri

L4-135

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

Filtri

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

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 Il centro di una matrice di un filtro, anche se

non necessariamente, è il suo “hot spot”

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

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

Effetto di smoothing

Filtri lineari

Filtro di differenza: modelli di filtri la cui risposta tende ad esaltare i bordi (salti di intensità)

I filtri per differenza hanno alcuni dei coefficiente della matrice negativi

Esempi di filtri lineari

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

Convoluzione

Filtri lineari Dimostrazione del passaggio da convoluzione a

correlazione

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

Point Spread Function Se una legge di trasformazione può essere

rappresentata con un modello lineare allora può essere scritta come convoluzione

La PSF rappresenta il modello lineare di tutte le alterazioni che avvengono nella formazione dell'immagine rispetto al modello teorico Distorsioni Aberrazioni Diffusioni

Se la PSF segue una legge lineare è possibile in linea di principio correggere i suoi effetti

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

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

Octave's filtering related functions

Funzioni di Octave che generano filtri 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

Octave: fspecial

-> fspecial(type,arg1,arg2) Funzione per generazione della matrice di

diversi filtri 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

→ 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 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:2> 0.04*25ans = 1

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 6.9625e-08 2.8089e-05 2.0755e-04 2.8089e-05 6.9625e-08

octave:4> sum(sum(fspecial("gaussian",5)))ans = 1

Filtro gaussiano

5x5,σ=2 3x3, σ=1 Originale