Non-local means
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.
If compared with other well-known denoising techniques, non-local means adds "method noise" which looks more like white noise, which is desirable because it is typically less disturbing in the denoised product. Recently non-local means has been extended to other image processing applications such as deinterlacing, view interpolation, and depth maps regularization.
Definition
Suppose is the area of an image, and and are two points within the image. Then, the algorithm is: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.
is a normalizing factor, given by
Common weighting functions
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.Gaussian
The Gaussian weighting function sets up a normal distribution with a mean, and a variable standard deviation:where is the filtering parameter and is the local mean value of the image point values surrounding.
Discrete algorithm
For an image,, with discrete pixels, a discrete algorithm is required.where, once again, is the unfiltered value of the image at point. 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.