Analisi di Immagini e Dati Biologici Filtri 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
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 octave:2> fspecial("gaussian",3) 0.011344 0.083820 0.011344 0.083820 0.619347 0.083820
Filtro gaussiano Originale 3x3, σ=1 5x5,σ=2
Smoothing
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>
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 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 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
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
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 Lineari e System identification Impulse Response: filtro che lascia l'input intatto E' rappresentato dalla funzione δ
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
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”
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