This is a fast and robust implementation of the popular Nonlocal Means denoising scheme, intended for both Rician and Gaussian stationary noise. It works by computing the non-local weights based on distances in a features space, comprising the local mean value and gradients of the image.
It can reach an acceleration factor of 20x over the original implementation, with an improved performance for medium-low SNR images.
We use a bias correction step for Rician noise based on the well-known Conventional Approach.
Further details on this algorithm may be found in the following reference (that we ask you to cite in case you use this software for your research):
A. Tristan-Vega, V. Garcia Perez, S. Aja-Fenandez, and C.-F. Westin,
'Efficient and Robust Nonlocal Means Denoising of MR Data Based on
Salient Features Matching', Computer Methods and Programs in
Biomedicine, 105(2):131-44. 2012.
NOTE: This Matlab implementation cannot take advantage of all the computational methods described in the paper above. If computational performance is an issue for you, you are strongly encouraged to try the C++/ITK open-source versions (or any of the pre-compiled binaries) available at: http://www.nitrc.org/projects/unlmeans/
Antonio Tristán Vega (2020). Fast and robust Nonlocal Means Denoising (https://www.mathworks.com/matlabcentral/fileexchange/43901-fast-and-robust-nonlocal-means-denoising), MATLAB Central File Exchange. Retrieved .