410 likes | 587 Views
Filtri. Analisi di Immagini e Dati Biologici. L4-1. 41. 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
E N D
Filtri Analisi di Immagini e Dati Biologici L4-1 41
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
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
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
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 • Tipo di filtro da generare • Parametro di controllo 1 • 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 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*25 ans = 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
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)
Filtro di mediana • Il median filter seleziona per ogni pixel dell'immagine di output il valore della mediana dei valori di un intorno
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
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”