Analisi di Immagini Filtri L3-2017
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 I valori dei parametri del filtro sono un campionamento della funzione di kernel
Filtro di smoothing
Esempio: Filtro di Media Il più semplice esempio di smoothing filter Un pixel della nuova immagine è ricalcolato come media dei pixel circostanti In questo caso si tratta della media aritmentica dei primi vicini
Smoothing Filter Principale uso: La stessa espressione resa per un pixel generico avente coordinate (u,v) Principale uso: Limitazione del rumore luminoso scorrelato dall'oggetto Costruzione di immagini della distribuzione della luminosità media
Filtri Lineari Il filtro di media è un esempio di filtro lineare E' semplice rappresentare l'azione di un filtro lineare attraverso una matrice
Filtri Lineari Rappresentazione matematica per un filtro di ordine 3 Per gli elementi del filtro usiamo un sistema di coordinate centrato nel centro della matrice Quindi le coordinate dei vicini sono anche negative
Filtri di media Box filter: è il filtro di media aritmetica. Per esso la matrice H(i,j) ha valori costanti che dipendono dalla dimensione del filtro Gaussian filter: filtro di media ponderata con i coefficienti calcolati dalla funzione di Gauss in 2-D I simboli rappresentano le distanze dall’hot-spot lungo gli assi
Riduzione del Rumore Modello di corruzione da rumore L’immagine rappresentata è la somma di una ipotizzata immagine “vera” indicata da All’immagine incontaminata si somma un rumore scorrelato dall’immagine stessa Il valore medio atteso del rumore è zero Le coordinate u,v all’esterno dell’operatore di media indicano la media spaziale
Riduzione del Rumore L’azione di un filtro di media su questo modello tende a sostituire un pixel con la media dei vicini riducendo il rumore R è legato alla dimensione della matrice di media Negli esempi di media aritmetica delle slide precedenti R = 1 Se valori di intensità dell’immagine sono indipendenti dal rumore
Filtri Lineari 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 La forma è determinata dal supporto del filtro (l’insieme degli elementi della matrice diversi da 0) Kernel: funzione che determina i valori dei coefficienti del filtro
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
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 di Media Effetto di blurring su un immagine Il filtro è di media aritmetica Le dimensioni delle matrici sono 3,5,9,15,25,35,45 L’immagine originale è nell’angolo in alto a sx
Applicazione Filtro Gaussiano Originale 3x3, σ=1 5x5, σ=2
Filtro Gaussiano Immagine Originale Immagine + rumore “Sale&Pepe” Immagine + rumore Gaussiano Stesse Immagini dopo l’applicazione di un filtro gaussiano 3x3
Filtro Gaussiano Eliminazione delle alterazioni di luminosità genarate da digitalizzazione di una stampa 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>
Filtro Gaussiano Originale Filtrato Questo tipo di rumore con natura pediodica viene filtrato con miglior efficacia intervenendo sulla struttura della sua Fourier Transform
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/Matlab: 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/Matlab: 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/Matlab: 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
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 Formulazione convolutiva
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 δ
Filtri lineari e System Identification La funzione δ preserva una immagine, costituisce cioè l'identità del prodotto di convoluzione
Funzione di trasferiemento Il comportamento ideale di un sistema preserverebbe l'immagine formata da una semplice δ Per poter preservare l'immagine di una tale funzione di prova il sistema deve esso stesso comportarsi come una funzione δ Ogni deviazione introduce alterazioni nella formazione dell'immagine
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 (lineare) di tutte le alterazioni che avvengono nella formazione dell'immagine rispetto al modello teorico
Point Spread Function
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
Esempio di PSF Aberrazione sferica
Esempi di 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
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
Confronto tra smoothing filter e filtro di Mediana
Filtro di Mediana