Nell'elaborazione delle immagini e nell'elaborazione numerica dei segnali il blur gaussiano o sfocatura gaussiana è il risultato della sfocatura di un'immagine mediante una funzione gaussiana che prende il nome dal matematico e scienziato Carl Friedrich Gauss. Funziona pertanto come un filtro.
Si tratta di un effetto ampiamente utilizzato nei software di computer grafica, tipicamente per ridurre il rumore presente in un'immagine. L'effetto visivo di questa tecnica è una sfocatura uniforme che ricorda quella che si ottiene guardando l'immagine attraverso uno schermo traslucido o un vetro satinato ed è pertanto nettamente diversa dall'effetto bokeh prodotto da un obiettivo fuori fuoco o dall'ombra di un oggetto in condizioni di illuminazione normali.
Il blur gaussiano viene utilizzato anche come fase di pre-elaborazione negli algoritmi di visione artificiale per migliorare le strutture dell'immagine a diverse scale. Introduzione formale
L'effetto di blur gaussiano viene tipicamente generato convolgendo un'immagine con un filtro la cui risposta di impulso è gaussiana. Matematicamente, applicare una sfocatura gaussiana a un'immagine di dimensioni e equivale ad applicare una convoluzione tra l'immagine ed il filtro. Questa operazione è anche il caso bidimensionale della trasformata di Weierstrass. Il risultato non è da confondere con quello ottenuto con la convoluzione con un cerchio (ovvero, una sfocatura circolare) che invece riprodurrebbe in modo più accurato l'effetto bokeh. In generale:
in cui è il prodotto di convoluzione in 2 dimensioni:
.
Poiché la trasformata di Fourier di una gaussiana è un'altra gaussiana, l'applicazione del blur ha l'effetto di ridurre le componenti ad alta frequenza dell'immagine fingendo da filtro passa basso e per questo riduce il rumore, dato che il suo spettro di potenza è diffuso su tutte le frequenze.
La sfocatura gaussiana è un tipo di filtro di sfocatura dell'immagine che utilizza una funzione gaussiana per calcolare la trasformazione da applicare a ciascun pixel dell'immagine. La funzione gaussiana in una dimensione è:
in cui con indichiamo il raggio della campana (filtro), che coincide con la deviazione standard della distribuzione di probabilità associata.
In due dimensioni, è il prodotto di due funzioni gaussiane di questo tipo, una in ciascuna dimensione dato che:
dove è la distanza dall'origine sull'asse orizzontale, è la distanza dall'origine sull'asse verticale e è la deviazione standard della distribuzione gaussiana. L'origine su questi assi si trova al centro . Applicata in due dimensioni, questa formula produce una superficie i cui contorni sono cerchi concentrici con una distribuzione gaussiana a partire dal punto centrale.
Kernel I parametri di questa distribuzione vengono utilizzati per costruire una matrice che viene applicata all'immagine originale, eseguendo di fatto una covoluzione in 2 dimensioni. La matrice che per comodità denotiamo con è costruita come approssimazione discreta della campana in modo tale che il nuovo valore di ciascun pixel di è calcolato come la media pesata dei valori dei pixel circostanti. Il valore del pixel situato nell'origine riceve il peso maggiore (avendo il valore gaussiano più alto) e i pixel vicini ricevono pesi minori man mano che aumenta la loro distanza dal punto centrale. Di conseguenza i pixel più vicini al contorno tendono ad essere molto più simili agli stessi dell'immagine originale rispetto a quelli centrali. Se supponiamo una dimensione allora è così definita:
In teoria, la funzione gaussiana in ogni punto dell'immagine sarà diversa da zero, il che significa che l'intera immagine dovrebbe essere inclusa nei calcoli per ogni pixel. In pratica, quando si calcola un'approssimazione discreta della funzione gaussiana, come conseguenza della disuguaglianza di Čebyšëv, i pixel a una distanza superiore a ricevono un peso trascurabile e possono essere considerati praticamente nulli tali da essere ignorati. Tipicamente, un programma di elaborazione delle immagini deve solo calcolare una matrice con dimensioni ossia la parte intera della deviazione standard per garantire un risultato estremamente vicino a quello teorico.
Proprietà Oltre ad essere a simmetria circolare, la sfocatura gaussiana può essere applicata a un'immagine bidimensionale come due procedimenti unidimensionali indipendenti, ed è quindi definita un filtro separabile: si applica una serie di convoluzioni discrete nella direzione orizzontale e poi nella direzione verticale. Indicando con l'immagine di partenza e con il filtro, dal punto di vista della complessità computazionale la separazione della matrice in insieme di vettori rappresenta un vantaggio, in quanto l'intero algoritmo di blurring viene effettuato in un tempo:
in cui rappresenta la dimensione orizzontale dell'immagine di partenza e la dimenisione verticale. Il kernel rappresenta la matrice di convoluzione discreta che viene suddivisa in una serie di vettori riga e poi colonna rispettivamente di dimensione e . In pratica facendo una serie di convoluzioni discrete unidimensionali per ciascuna delle 2 dimensioni si completa l'algoritmo in un tempo strettamente minore, qualsiasi siano le dimensioni dell'immagine e del filtro.
Applicare due sfocature gaussiane successive e a un'immagine ha lo stesso effetto dell'applicazione di una singola sfocatura gaussiana con deviazione maggiore, il cui raggio è la radice quadrata della somma dei quadrati dei raggi di sfocatura.
Ad esempio, applicare sfocature gaussiane successive con raggi di 6 e 8 produce gli stessi risultati dell'applicazione di una singola sfocatura gaussiana di raggio 10, poiché .
A causa di questa relazione, non è possibile risparmiare tempo di elaborazione simulando una sfocatura gaussiana con sfocature successive di minore entità: il tempo necessario sarà almeno pari a quello richiesto per eseguire un'unica sfocatura di grandi dimensioni.
Approssimazione della varianza Per un filtro gaussiano con deviazione standard applicato a un'immagine di pixel in scala di grigi con deviazione standard , la deviazione standard ridotta dell'immagine filtrata può essere approssimata come:
.
Applicazioni
Prefiltro nel riconoscimento dei contorni Il blur gaussiano è comunemente utilizzato come prefiltro nel riconoscimento dei contorni. La maggior parte degli algoritmi di rilevamento dei bordi è sensibile al rumore e l'utilizzo del un filtro prima dell'algoritmo del rilevamento dei bordi mira a ridurne il livello nell'immagine, migliorando così il risultato del successivo algoritmoquesto perché il filtro laplaciano 2D, costruito a partire da una discretizzazione dell'operatore di Laplace, è particolarmente sensibile agli ambienti rumorosi. La serie di filtri è nota come filtro Laplaciano del Gaussiano, o LoG.
Downsampling Il blur gaussiano è comunemente utilizzato per ridurre le dimensioni di un'immagine (downsampling). Quando si ridimensiona un'immagine, è infatti frequente applicare un filtro passa-basso prima di ricampionarla: questo serve a garantire che le informazioni spurie ad alta frequenza non compaiano nell'immagine ridimensionata e quindi il filtro funge da antialiasing. La sfocatura gaussiana presenta alcune caratteristiche positive, come l'assenza di bordi netti, e quindi non introduce artefatti di ringing nell'immagine filtrata.
Fotografia Le fotocamere digitali più economiche, comprese molte fotocamere per cellulari di fascia bassa, utilizzano comunemente la sfocatura gaussiana di default per mascherare il rumore dell'immagine causato da sensibilità alla luce più elevate.
La sfocatura gaussiana viene applicata automaticamente come parte dell'elaborazione successiva dell'immagine da parte del firmware della fotocamera, portando a una perdita irreversibile di dettagli.
Note
Voci correlate Differenza di Gaussiane Rumore dell'immagine Filtro gaussiano Risposta impulsiva infinita (IIR) Filtro mediano Trasformata di Weierstrass
Collegamenti esterni Implementazione in GLSL di un filtro di sfocatura gaussiana separabile . Esempio di sfocatura gaussiana (filtro passa-basso) applicata a una xilografia e a un'incisione per rimuovere i dettagli e consentire il confronto tra le immagini.
Funzione GaussianFilter di Mathematica.
Categoria:Elaborazione digitale delle immagini Categoria:Elaborazione numerica dei segnali