Rahul Sharma (Editor)

Non local means

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

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.

Contents

If compared with other well-known denoising techniques, such as the Gaussian smoothing model, the anisotropic diffusion model, the total variation denoising, the neighborhood filters and an elegant variant, the Wiener local empirical filter, the translation invariant wavelet thresholding, the non-local means method noise looks more like white noise. Recently non-local means has been extended to other image processing applications such as deinterlacing and view interpolation.

Definition

Suppose Ω is the area of an image, and p and q are two points within the image. Then, the algorithm is:

u ( p ) = 1 C ( p ) Ω v ( q ) f ( p , q ) d q .

where u ( p ) is the filtered value of the image at point p , v ( q ) is the unfiltered value of the image at point q , f ( p , q ) is the weighting function, and the integral is evaluated over q Ω .

C ( p ) is a normalizing factor, given by:

C ( p ) = Ω f ( p , q ) d q .

Common weighting functions

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

Gaussian

The Gaussian weighting function sets up a normal distribution with a mean, μ = B ( p ) and a variable standard deviation:

f ( p , q ) = e | B ( q ) B ( p ) | 2 h 2

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

Discrete algorithm

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

u ( p ) = 1 C ( p ) q Ω v ( q ) f ( p , q )

where C ( p ) is given by:

C ( p ) = q Ω f ( p , q )

Then, for a Gaussian weighting function,

f ( p , q ) = e | B ( q ) B ( p ) | 2 h 2

where B ( p ) is given by:

B ( p ) = 1 | R ( p ) | i R ( p ) v ( i )

where R ( p ) Ω and is a square region of pixels surrounding p and | R ( p ) | is the number of pixels in the region R .

References

Non-local means Wikipedia