# Filtro bilaterale

Un filtro bilaterale è un filtro digitale non lineare che riduce il rumore delle immagini preservando i contorni. Assegna ai pixel dei pesi che dipendono sia dalla loro vicinanza in termini di distanza geometrica (dominio), che di somiglianza fotometrica (codominio).

## Filtraggio sul dominio

L'idea su cui si basano molti filtri per la rimozione del rumore è che le immagini variano lentamente, ovvero pixel vicini tendono ad avere valori simili. Risulta, quindi, intuitivo che facendone la media si può facilmente eliminare il rumore, mantenendo pressoché inalterato il segnale originale.
Ad esempio un filtro applicato all'immagine $I(x)$, può essere definito come:
$h(x)={\frac {1}{w_{d}}}\iint _{-\infty }^{\infty }I(\xi )d\left(\xi ,x\right)\,d\xi ,$
dove $d\left(\xi ,x\right)$ è una misura di distanza geometrica tra i pixel $x$ e $\xi$, mentre $w_{d}={\begin{matrix}\iint _{-\infty }^{\infty }d\left(\xi ,x\right)\,d\xi \end{matrix}}$ è la componente di normalizzazione necessaria a mantenere il guadagno in continua del filtro.
Questa idea, però, si rivela decisamente sbagliata in corrispondenza dei contorni di oggetti, presso i quali il segnale varia bruscamente. Un filtro che opera solo nel dominio di un'immagine, pesando i valori assunti dai pixel esclusivamente secondo la loro distanza, risulta inadeguato e comporta lo smussamento dei contorni presenti nell'immagine.

## Filtraggio sul codominio

Anziché prendere in considerazione solo la distanza geometrica dei pixel, si può esaminare anche la loro somiglianza in termini di vicinanza dei valori assunti da ciascun pixel (intensità di colore, profondità, ecc...).
Definendo:
$h(x)={\frac {1}{w_{r}}}\iint _{-\infty }^{\infty }I(\xi )s\left(I(\xi ),I(x)\right)\,d\xi ,$
si può ottenere la combinazione delle due strategie ottenendo un filtri bilaterale:
$h(x)={\frac {1}{w}}\iint _{-\infty }^{\infty }I(\xi )d\left(\xi ,x\right)s\left(I(\xi ),I(x)\right)\,d\xi ,$
dove $s\left(I(\xi ),I(x)\right)$ è una misura di distanza fotometrica tra i valori assunti dai pixel $x$ e $\xi$, mentre $w_{r}={\begin{matrix}\iint _{-\infty }^{\infty }s\left(I(\xi ),I(x)\right)\,d\xi \end{matrix}}$ e $w={\begin{matrix}\iint _{-\infty }^{\infty }d\left(\xi ,x\right)s\left(I(\xi ),I(x)\right)\,d\xi \end{matrix}}$.
Il filtraggio sul codominio non è altro che una trasformazione della mappa colore (o mappa di profondità, ecc...) dell'immagine e, da sola, risulterebbe di scarso interesse. In combinazione con il filtraggio sul dominio, però, si ottiene una rimappatura che varia nei diversi punti dell'immagine, consentendo di ottenere un buon filtraggio anche in prossimità dei contorni.

## Caso gaussiano

Un caso di particolare interesse è quello in cui le funzioni di distanza $d\left(\xi ,x\right)$ e di somiglianza $s\left(I(\xi ),I(x)\right)$ sono gaussiane. Ovvero:
$d\left(\xi ,x\right)=e^{-{\frac {1}{2}}\left({\frac {\left\|\xi -x\right\|}{\sigma _{d}}}\right)^{2}}$
$s\left(I(\xi ),I(x)\right)=e^{-{\frac {1}{2}}\left({\frac {\left\|I(\xi )-I(x)\right\|}{\sigma _{r}}}\right)^{2}}$

## Limiti

Soprattutto per alti valori dei parametri $\sigma _{d}$ e $\sigma _{r}$, possono emergere degli effetti indesiderati, il principale dei quali è l'effetto cartoon (o staircase effect). Aumentando il potere di smoothing, infatti, si possono formare aree di colore omogeneo simili a quelle presenti nei fumetti o nei cartoni animati.
In certe situazioni questo è un effetto desiderato e può essere riprodotto con efficacia iterando più volte l'applicazione del filtro bilaterale.