A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with 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.

Left: original image. Right: image processed with bilateral filter

Definition

edit

The bilateral filter is defined as[1][2]

 

and normalization term,  , is defined as

 

where

  is the filtered image;
  is the original input image to be filtered;
  are the coordinates of the current pixel to be filtered;
  is the window centered in  , so   is another pixel;
  is the range kernel for smoothing differences in intensities (this function can be a Gaussian function);
  is the spatial (or domain) kernel for smoothing differences in coordinates (this function can be a Gaussian function).

The weight   is assigned using the spatial closeness (using the spatial kernel  ) and the intensity difference (using the range kernel  ).[2] Consider a pixel located at   that needs to be denoised in image using its neighbouring pixels and one of its neighbouring pixels is located at  . Then, assuming the range and spatial kernels to be Gaussian kernels, the weight assigned for pixel   to denoise the pixel   is given by

 

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

After calculating the weights, normalize them:

 

where   is the denoised intensity of pixel  .

Parameters

edit
  • As the range parameter σr increases, the bilateral filter gradually approaches Gaussian convolution more closely because the range Gaussian widens and flattens, which means that it becomes nearly constant over the intensity interval of the image.
  • As the spatial parameter σd increases, the larger features get smoothened.

Limitations

edit

The bilateral filter in its direct form can introduce several types of image artifacts:

  • Staircase effect – intensity plateaus that lead to images appearing like cartoons[3]
  • Gradient reversal – introduction of false edges in the image.[4]

There exist several extensions to the filter that deal with these artifacts, like the scaled bilateral filter that uses downscaled image for computing the weights.[5] Alternative filters, like the guided filter,[6] have also been proposed as an efficient alternative without these limitations.

Implementations

edit

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. The free G'MIC plugin Repair → Smooth [bilateral] for GIMP adds more control.[7] A simple trick to efficiently implement a bilateral filter is to exploit Poisson-disk subsampling.[1]

edit

The bilateral filter has been shown to be an application of the short time kernel of the Beltrami flow [8] [9] [10] that was introduced as an edge preserving selective smoothing mechanism before the bilateral filter.

Other edge-preserving smoothing filters include: anisotropic diffusion,[11] weighted least squares,[12] edge-avoiding wavelets,[13] geodesic editing,[14] guided filtering,[15] and domain transforms.[16]

See also

edit

References

edit
  1. ^ a b Banterle, F.; Corsini, M.; Cignoni, P.; Scopigno, R. (2011). "A Low-Memory, Straightforward and Fast Bilateral Filter Through Subsampling in Spatial Domain". Computer Graphics Forum. 31 (1): 19–32. doi:10.1111/j.1467-8659.2011.02078.x. S2CID 18288647.
  2. ^ a b Tomasi, C; Manduchi, R (1998). Bilateral filtering for gray and color images (PDF). Sixth International Conference on Computer Vision. Bombay. pp. 839–846. doi:10.1109/ICCV.1998.710815. Archived from the original (PDF) on 2008-08-29. Retrieved 2009-11-18.
  3. ^ Kornprobst, Pierre (2007). "Limitations? - A Gentle Introductionto Bilateral Filteringand its Applications" (PDF). Retrieved 7 May 2017.
  4. ^ He, Kaiming; Sun, Jian; Tang, Xiaoou. "Guided Image Filtering" (PDF). Archived from the original (PDF) on 9 December 2017. Retrieved 7 May 2017.
  5. ^ Aswatha, Shashaank M.; Mukhopadhyay, Jayanta; Bhowmick, Partha (December 2011). "Image Denoising by Scaled Bilateral Filtering". 2011 Third National Conference on Computer Vision, Pattern Recognition, Image Processing and Graphics. pp. 122–125. doi:10.1109/NCVPRIPG.2011.33. ISBN 978-1-4577-2102-1. S2CID 25738863.
  6. ^ He, Kaiming. "Guided Image Filtering". Archived from the original on 19 December 2017. Retrieved 7 May 2017.
  7. ^ "G'MIC - GREYC's Magic for Image Computing: An Open and Full-Featured Framework for Image Processing". gmic.eu. Archived from the original on 2014-12-27.
  8. ^ R. Kimmel, R. Malladi, and N. Sochen. Images as embedding maps and minimal surfaces: Movies, color, and volumetric medical images. IEEE CVPR'97, pp. 350-355, Puerto Rico, June 17–19, 1997. https://www.cs.technion.ac.il/~ron/PAPERS/cvpr97.pdf
  9. ^ R. Kimmel, R. Malladi, and N. Sochen. Images as Embedded Maps and Minimal Surfaces: Movies, Color, Texture, and Volumetric Medical Images. International Journal of Computer Vision, 39(2):111-129, Sept. 2000. https://www.cs.technion.ac.il/~ron/PAPERS/KimMalSoc_IJCV2000.pdf
  10. ^ N. Sochen, R. Kimmel, and A.M. Bruckstein. Diffusions and confusions in signal and image processing, Journal of Mathematical Imaging and Vision, 14(3):195-209, 2001.https://www.cs.technion.ac.il/~ron/PAPERS/SocKimBru_JMIV2001.pdf
  11. ^ Durand, Frédo and Dorsey, Julie. "Fast Bilateral Filtering for the Display of High-Dynamic-Range Images" In ACM Transactions on Graphics, Volume 21, Issue 3, pp 257–266. https://people.csail.mit.edu/fredo/PUBLI/Siggraph2002/DurandBilateral.pdf
  12. ^ Farbman, Zeev, Raanan Fattal, Dani Lischinski, and Richard Szeliski. "Edge-preserving decompositions for multi-scale tone and detail manipulation." In ACM Transactions on Graphics, vol. 27, no. 3 (2008): 67. http://www.cs.huji.ac.il/~danix/epd/
  13. ^ Fattal, Raanan. "Edge-avoiding wavelets and their applications." In ACM Transactions on Graphics vol. 28, no. 3 (2009): 22. http://www.cs.huji.ac.il/~raananf/projects/eaw/
  14. ^ Criminisi, Antonio, Toby Sharp, Carsten Rother, and Patrick Pérez. "Geodesic image and video editing." In ACM Transactions on Graphphics (TOG), vol. 29, no. 5 (2010): 134. http://research.microsoft.com/apps/pubs/default.aspx?id=81528
  15. ^ He, Kaiming, Jian Sun, and Xiaoou Tang. "Guided image filtering." In Computer Vision–ECCV 2010, pp. 1-14. Springer Berlin Heidelberg, 2010. http://kaiminghe.com/eccv10/index.html Archived 2017-12-19 at the Wayback Machine
  16. ^ Gastal, Eduardo S. L., and Manuel M. Oliveira. "Domain transform for edge-aware image and video processing." In ACM Transactions on Graphics, vol. 30, no. 4 (2011): 69. http://inf.ufrgs.br/~eslgastal/DomainTransform/