Trasformazioni di Immagini Filtri L3-2017 51
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
Filtri Lineari Definizione: Kernel di un filtro Funzione di due variabili che determina i valori della matrice H La matrice H è un ‘campionamento’ del kernel
Matrice di un filtro lineare Matrice di bassa dimensione rispetto all’immagine Quasi sempre le matrici hanno ordine dispari in modo che sia determinato il loro centro Per gli elementi del filtro usiamo un sistema di coordinate centrato nel centro della matrice H(i,j) La forma di un filtro è determinata dal supporto del filtro (l’insieme degli elementi della matrice diversi da 0)
Hot Spot di un filtro lineare 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
Filtro di smoothing
Filtro di smoothing Un pixel della nuova immagine è ricalcolato come media dei pixel circostanti Il numero dei pixel dipende dalla dimensione del filtro Il modo in cui viene calcolata la media dipende dal kernel del filtro
Filtro di Smoothing Principale uso: Limitazione del rumore luminoso scorrelato dall'oggetto Costruzione di immagini della distribuzione della luminosità media Rimozione di variazioni del background Preparazione per operazioni di esaltazione del contrasto locale (rafforzamento dei bordi)
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
Filtro di Media Esempio per R=1 e H(i,j)=1/9 (kernel = costante)
Azione di un box-filter 10 11 9 1 2 99 I = X 10 1 1 1 1 1 1 H = 1/9 1 1 1 (10x1 + 11x1 + 10x1 + 9x1 + 10x1 + 11x1 + 10x1 + 9x1 + 10x1) / 9 = 10
Azione di un box-filter 10 11 10 1 X X X X X X 9 10 11 1 1 10 7 4 1 X X 10 9 10 2 1 X X I 11 10 9 9 11 X X 10 9 10 11 9 99 11 X X 10 9 9 11 10 10 X X X X X X 1 1 1 1 1 1 H = 1/9 1 1 1 (10x1 + 0x1 + 0x1 + 11x1 + 1x1 + 0x1 + 10x1 + 0x1 + 2x1) / 9 = 34 = 3.7778 ~ 4 (assumendo l’immagine rappresentata come uint8)
Filtri di media gaussiana Gaussian filter: filtro di media ponderata con i coefficienti calcolati dalla funzione di Gauss in 2-D
Esempi di filtri lineari
Filtro di Media Il filtro è di media aritmetica 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
Funzione fspecial di Matlab Filtro con supporto a ‘disco’ >> fspecial("disk",5) ans = 0 0 0 0.0012 0.0050 0.0063 0.0050 0.0012 0 0 0 0 0.0000 0.0062 0.0124 0.0127 0.0127 0.0127 0.0124 0.0062 0.0000 0 0 0.0062 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0062 0 0.0012 0.0124 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0124 0.0012 0.0050 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0050 0.0063 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0127 0.0063
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
Immagine come Mosaico Un’immagine digitale (ideale) è il risultato della composizione di NxM sorgenti individuali Ogni sorgente è responsabile dell’emissione della luce assorbita da un singolo fotosito (quindi rappresentata da un pixel) In un sistema di formazione dell’immagine ideale ogni sorgente più piccola della risoluzione massima deve ‘accendere’ solo un pixel
Immagine di una funzione δ
Filtro lineare
Azione di un filtro su una δ Ad ogni colore associamo un numero Assumiamo che I quadrati più scuri siano 0 I quadrati più scuri sono 1 Il quadrato verde al centro è l’hot spot
Applicazione del filtro alla δ Applicazione di un filtro 3x3 alla funzione delta
Applicazione del filtro alla δ
Filtri Lineari e System Identification Sistema ‘reale’ di imaging Le alterazioni rispetto al comportamento ideale sono rappresentate da una funzione Questa funzione è la risposta del sistema di imaging ad uno stimolo elementare Per un sistema di imaging ottico lo stimolo elementare è una sorgente δ
Point Spread Function 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
Immagine di stelle
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 (introducing Lena Söderberg)
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