Non-local means

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Non-local means is an algorithm in image processing for image denoising. Unlike "local mean" filters, which take the mean value of a group of pixels surrounding a target pixel to smooth the image, non-local means filtering takes a mean of all pixels in the image, weighted by how similar these pixels are to the target pixel. This results in much greater post-filtering clarity, and less loss of detail in the image compared with local mean algorithms.[1]

If compared with other well-known denoising techniques, non-local means adds "method noise" (i.e. error in the denoising process) which looks more like white noise, which is desirable because it is typically less disturbing in the denoised product.[2] Recently non-local means has been extended to other image processing applications such as deinterlacing[3], view interpolation[4], and depth maps regularization [5].


Suppose is the area of an image, and and are two points within the image. Then, the algorithm is:[6]

where is the filtered value of the image at point , is the unfiltered value of the image at point , is the weighting function, and the integral is evaluated over .

is a normalizing factor, given by:

Common weighting functions[edit]

The purpose of the weighting function, , is to determine how closely related the image at the point is to the image at the point . It can take many forms.


The Gaussian weighting function sets up a normal distribution with a mean, and a variable standard deviation:[7]

where is the filtering parameter (i.e., standard deviation) and is the local mean value of the image point values surrounding .

Discrete algorithm[edit]

For an image, , with discrete pixels, a discrete algorithm is required.

where is given by:

Then, for a Gaussian weighting function,

where is given by:

where and is a square region of pixels surrounding and is the number of pixels in the region .

See also[edit]


  1. ^ Buades, Antoni (20–25 June 2005). A non-local algorithm for image denoising. Computer Vision and Pattern Recognition, 2005. 2. pp. 60–65. CiteSeerX doi:10.1109/CVPR.2005.38. ISBN 978-0-7695-2372-9.
  2. ^ Buades, Antoni. "On image denoising methods" (PDF). 123 Seminars Only.
  3. ^ Dehghannasiri, R.; Shirani, S. (2012). "A novel de-interlacing method based on locally-adaptive Nonlocal-means". 2012 Conference Record of the Forty Sixth Asilomar Conference on Signals, Systems and Computers (ASILOMAR). pp. 1708–1712. doi:10.1109/ACSSC.2012.6489324. ISBN 978-1-4673-5051-8.
  4. ^ Dehghannasiri, R.; Shirani, S. (2013). "A view interpolation method without explicit disparity estimation". 2013 IEEE International Conference on Multimedia and Expo Workshops (ICMEW). pp. 1–4. doi:10.1109/ICMEW.2013.6618274. ISBN 978-1-4799-1604-7.
  5. ^ Martinello, Manuel; Favaro, Paolo. "Depth Estimation From a Video Sequence with Moving and Deformable Objects" (PDF). IET Image Processing Conference.
  6. ^ Buades, Antoni. "Non-Local Means Denoising". Image Processing On Line.
  7. ^ Buades, Antoni. "On image denoising methods (page 10)" (PDF). 123 Seminars Only.

External links[edit]