![]() | ||
A bilateral filter is a non-linear, edge-preserving and noise-reducing smoothing filter for images. The intensity value at each pixel in an image is replaced by a weighted average of intensity values from nearby pixels. This weight can be based on a Gaussian distribution. Crucially, the weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g. range differences, such as color intensity, depth distance, etc.). This preserves sharp edges by systematically looping through each pixel and adjusting weights to the adjacent pixels accordingly.
Contents
- Parallel bilateral filtering using opencl
- Parameters
- Limitations
- Implementations
- Related models
- References

The bilateral filter is defined as

where the normalization term

ensures that the filter preserves image energy and

As mentioned above, the weight

where σd and σr are smoothing parameters and I(i, j) and I(k, l) are the intensity of pixels

where
Parallel bilateral filtering using opencl
Parameters
Limitations
The bilateral filter in its direct form can introduce several types of image artifacts:
There exist several extensions to the filter that deal with these artifacts. Alternative filters, like the guided filter [3], have also been proposed as an efficient alternative without these limitations.
Implementations
Adobe Photoshop implements a bilateral filter in its surface blur tool. GIMP implements a bilateral filter in its Filters-->Blur tools; and it is called Selective Gaussian blur.
Related models
The Bilateral filter was shown to be an application of the short time kernel of the Beltrami flow . See also.
With similar goal as the Bilateral filter, the class of edge-preserving smoothing filters also includes: anisotropic diffusion, the Weighted Least Squares framework, the Edge-Avoiding Wavelets, Geodesic editing, Guided filtering, and the Domain Transform framework.