Filtraggio Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Tecniche di calcolo e sistemi operativi e informatica anno accademico 2017 2018 Filtraggio Il termine filtraggio fa riferimento ad una tecnica sviluppata per il dominio delle frequenze. Le rapide variazioni di intensità possono essere associate a componenti ad alta frequenza, mentre quelle le variazioni più lente sono associate a componenti a bassa frequenza. Filtrare significa attenuare o esaltare le componenti di un determinato intervallo di frequenza. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 1
Filtraggio spaziale Effetti simili possono essere ottenuti nel dominio dello spazio: tecniche di questo genere si definiscono filtraggio spaziale. In generale, le tecniche di filtraggio spaziale operano su una immagine considerando i valori di intensità di un appropriato intorno di un pixel. Per ogni pixel dell immagine originale, viene calcolato il valore di intensità del pixel corrispondente dell immagine filtrata. La regola di trasformazione viene spesso descritta da una matrice di valori, chiamata filtro, avente le stesse dimensioni dell intorno considerato. Se la regola di trasformazione è una funzione lineare dei valori di intensità dell intorno considerato, la tecnica viene chiamata filtraggio spaziale lineare (altrimenti, non lineare). Filtraggio lineare Il pixel (x, y) dell immagine filtrata, g, viene ottenuto come media pesata dei pixel dell immagine originale, f, di un opportuno intorno di (x, y): g(x, y) = a b s= a t= b w(s, t) f (x + s, y + t) La matrice dei pesi, w, viene detta filtro. O anche maschera (mask), template, window. Per comodità, viene di solito usata una matrice con un numero dispari di righe, 2a + 1, e colonne, 2b + 1. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 2
Esempio Il pixel (x, y) dell immagine filtrata, g, viene ottenuto come media pesata dei pixel dell immagine originale, f, di un opportuno intorno di (x, y): g(x, y) = a b s= a t= b w(s, t) f (x + s, y + t) La matrice dei pesi, w, viene detta filtro. O anche maschera (mask), template, window. Per comodità, viene di solito usata una matrice con un numero dispari di righe, 2a + 1, e colonne, 2b + 1. Correlazione e convoluzione Correlazione g(x, y) = w(x, y) f (x, y) = a b w(s, t) f (x +s, y +t) s= a t= b Convoluzione g(x, y) = w(x, y) f (x, y) = a b w(s, t) f (x s, y t) s= a t= b Rappresentazione vettoriale mn R = w 1 z 1 + + w mn z mn = w k z k = w T z k=1 Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 3
Creazione dei filtri Devono essere specificati i coefficienti del filtro. Il loro valore dipende dall effetto che si vuole ottenere. Specifica diretta: R = 1 9 9 z i w i = 1 9, i i=1 Specifica basata su funzione: h(x, y) = e x2 +y 2 2σ 2 w(s, t) = h(s, t) Specifica algoritmica Filtri non lineari e.g., filtro max Filtri di smoothing Producono sfocature dell immagine originale. Rimozione di piccoli dettagli risalto a grandi oggetti colmatura di interruzioni riduzione del rumore A seconda del modello di rumore, il filtro può essere lineare o non lineare. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 4
Filtri di smoothing lineari Filtri media (o low pass) Media aritmetica Media ponderata Effetti dello smoothing (1) Immagine originale e filtraggio con filtro media 3 3 Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 5
Effetti dello smoothing (2) Filtraggio con filtro media 5 5 e 9 9 Effetti dello smoothing (3) Filtraggio con filtro media 15 15 e 35 35 Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 6
Esempio di cancellazione di dettagli Filtri non lineari Consideriamo alcuni filtri basati su statistiche Filtro mediano Filtri Max e Min Filtri basati su percentili Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 7
Esempio di filtraggio mediano Cancellazione rumore sale-e-pepe Immagine originale, filtro media 3 3 e filtro mediano 3 3. Sharpening Il termine sharpening (nitidezza) si riferisce alle tecniche utilizzate per esaltare le transizioni di intensità. Nelle immagini, i bordi tra oggetti differenti sono visibili perché l intensità luminosa cambia: un immagine appare nitida se la transizione di intensità è netta. Le transizioni di intensità tra pixel adiacenti sono legate alle proprietà differenziali dell immagine. Si è quindi interessati ad operatori (possibilimente esprimibili come filtri lineari) capaci di calcolare le derivate di un immagine. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 8
Derivata prima di un immagine Poiché l immagine è una funzione discreta, la tradizionale definizione di derivata non può essere applicata. Deve quindi essere definita un opportuno operatore che rispetti le principali proprietà della derivata: 1. vale zero nelle aree di intensità costante; 2. è diverso da zero per un gradino (o una rampa) di intensità; 3. è costante su rampe di inclinazione costante. Pare naturale scegliere come operatore di derivata prima la differenza di intensità tra pixel adiacenti. Per semplicità, si consideri il caso monodimensionale: f x = f (x + 1) f (x) Poiché f x viene definito usando il pixel successivo: non si può calcolare sull ultimo pixel di una riga; è diverso da zero nel pixel che precede un gradino. Derivata seconda di un immagine Analogamente, si può definire l operatore derivata seconda di un immagine come: 2 f = f (x + 1) f (x) (f (x) f (x 1)) x 2 = f (x + 1) 2f (x) + f (x 1) Questo operatore gode delle seguenti proprietà: 1. vale zero nelle aree di intensità costante; 2. è diverso da zero all ingresso di un gradino (o una rampa) di intensità; 3. vale zero su rampe di inclinazione costante. Poiché viene 2 f definito usando il pixel precedente e quello x successivo: 2 non si può calcolare sul primo e l ultimo pixel di una riga; è diverso da zero nel pixel che precede e in quello che segue un gradino. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 9
Derivate di un immagine: esempio Nota: in corrispondenza del gradino, la derivata seconda cambia di segno (zero crossing). Laplaciano Tipicamente i filtri di sharpening usano operatori del secondo ordine. Un operatore derivativo del secondo ordine è più sensibile alle variazioni di intensità. Inoltre, nelle immagini vengono considerate le derivate parziali. La derivata in un punto dipende dalla direzione lungo la quale si calcola la variazione. Operatori invarianti alla rotazione vengono detti isotropici. Ruotare e filtrare ha lo stesso effetto di filtrare e ruotare. Il laplaciano è il più semplice operatore derivativo isotropico rispetto alle direzioni principali: 2 f = 2 f x 2 + 2 f y 2 Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 10
Filtro laplaciano In una immagine digitale, le derivate seconde rispetto a x e y si calcolano come: 2 f x 2 = f (x + 1, y) 2f (x, y) + f (x 1, y) 2 f y 2 = f (x, y + 1) 2f (x, y) + f (x, y 1) Quindi, il laplaciano risulta essere: 2 f (x, y) = f (x + 1, y) + f (x 1, y) + f (x, y + 1) +f (x, y 1) 4f (x, y) Si possono aggiungere le derivate lungo le diagonali: 2 f (x, y) + f (x 1, y 1) + f (x + 1, y + 1) + f (x 1, y + 1) + f (x + 1, y 1) 4f (x, y) Filtro laplaciano 2 Filtro laplaciano invariante a rotazioni di 90 Filtro laplaciano invariante a rotazioni di 45 Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 11
Filtro laplaciano: esempio Il laplaciano assume spesso valori negativi. Per essere visualizzato, deve essere opportunamente scalato nell intervallo di rappresentazione [0,..., L 1]. Filtro laplaciano: esempio (2) Il laplaciano assume valori positivi all ingresso di un gradino e valori negativi all uscita. Sottraendo il laplaciano (o una sua frazione) all immagine, si aumenta l altezza del gradino. (a) (b) (c) (a) Immagine originale, (b) con laplaciano, (c) con laplaciano con diagonali. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 12
Unsharp masking L unsharp masking è uno dei metodi usati in grafica per rendere percettivamente più nitide le immagini. Esso consiste nel: 1. sfuocare l immagine originale; 2. ottenere la maschera come differenza tra l immagine originale e la copia sfuocata; 3. aggiungere la maschera all immagine originale. Il procedimento si può riassumere nella formula: g = f + k (f f h) dove f è l immagine originale, h è un filtro di smoothing e k è una costante per regolare il contributo della maschera. Se k > 1, il procedimento viene detto filtraggio highboost. Unsharp masking (2) Immagine originale Immagine sfuocata Maschera di unsharp Immagine unsharp Immagine highboost Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 13
Gradiente Il gradiente di una funzione è il vettore formato dalle derivate parziali. Per una funzione bidimensionale, f (x, y): [ ] gx f grad(f ) = g y f x f y Il vettore gradiente punta nella direzione della maggiore variazione. La magnitudo del gradiente, M(x, y) è: M(x, y) = mag( f ) = gx 2 + gy 2 Viene detta immagine gradiente. Spesso approssimata come M(x, y) gx + g y. Operatori derivata g x (x, y) = f (x + 1, y) f (x, y) g y (x, y) = f (x, y + 1) f (x, y) Operatori di Roberts: g x (x, y) = f (x + 1, y + 1) f (x, y) g y (x, y) = f (x, y + 1) f (x 1, y) Operatori di Sobel: g x (x, y) = f (x 1, y 1) 2f (x 1, y) f (x 1, y + 1) + f (x + 1, y 1) + 2f (x + 1, y) + f (x + 1, y + 1) g y (x, y) = f (x 1, y 1) 2f (x, y 1) f (x + 1, y 1) + f (x 1, y + 1) + 2f (x, y + 1) + f (x + 1, y + 1) Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 14
Operatori derivata (2) Operatori di Roberts: Operatori di Sobel: Applicazioni basate su gradiente L applicazione dei filtri di Sobel riduce la visibilità delle regioni in cui l intensità varia poco, permettendo di evidenziare i difetti (e di facilitarne il rilevamento mediante procedimenti automatici). Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 15
Metodi combinati Spesso, l utilizzo di una singola tecnica non è sufficiente per ottenere l effetto desiderato. Per esempio, l immagine (a) è affetta da rumore e poco dettagliata. (a) (b) L applicazione di un filtro laplaciano (b) migliora i dettagli, ma amplifica anche il rumore. Il gradiente è meno sensibile al rumore del laplaciano (che è del secondo ordine). Metodi combinati (2) Il gradiente, smussato da un filtro di smoothing per eliminare il rumore, può essere usato per pesare il contributo del laplaciano. Nell immagine (c) è riportato il gradiente ottenuto mediante i filtri di Sobel, convoluto con un filtro 5 5. (c) (d) Moltiplicando la maschera per il laplaciano, si ottiene l immagine (d). Le variazioni di intensità sono preservate, ma il rumore è stato filtrato. Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 16
Metodi combinati (3) L immagine (d) può essere sommata all immagine originale, ottenendo l immagine (e). Il range dinamico può essere aumentato applicando una trasformazione di potenza (e). La trasformazione di intensità ha reso più visibile il rumore, ma ha evidenziato altri dettagli, quali i tessuti intorno allo scheletro. (e) (f) Stefano Ferrari Tecniche di calcolo e sistemi operativi e informatica a.a. 2017/18 17