Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Non-Local Means Denoising
Antoni Buades, Bartomeu Coll, Jean-Michel Morel
published
2011-09-13
reference
Antoni Buades, Bartomeu Coll, and Jean-Michel Morel, Non-Local Means Denoising, Image Processing On Line, 1 (2011), pp. 208–212. https://doi.org/10.5201/ipol.2011.bcm_nlm

Communicated by Guoshen Yu
Demo edited by Miguel Colom

Abstract

We present in this paper a new denoising method called non-local means. The method is based on a simple principle: replacing the color of a pixel with an average of the colors of similar pixels. But the most similar pixels to a given pixel have no reason to be close at all. It is therefore licit to scan a vast portion of the image in search of all the pixels that really resemble the pixel one wants to denoise. The paper presents two implementations of the method and displays some results.

Download

Supplementary Materials

  • some of the files use algorithms possibly linked to a patent (see article for details). These files are made available for the exclusive aim of serving as scientific tool to verify the soundness and completeness of the algorithm description. Compilation, execution and redistribution of these files may violate exclusive patents rights in certain countries. The situation being different for every country and changing over time, it is your responsibility to determine which patent rights restrictions apply to you before you compile, use, modify, or redistribute these files. The rest of files are distributed under GPL license. A C/C++ implementation is provided.
  • source code documentation: online, tar/gz

History

  • this article was converted to PDF on 2016-10-13.
  • the original version was published on 2011-09-13: manuscript, html version
  • the original source code was modified on 2020-11-05 to include the possibility to denoise with the given STD parameter without re-noising the input image. The original version of the code is available here
  • the README file of the source code was updated on 2021-02-20. The previous version of the code is available here
  • the original source code was modified on 2021-08-22 to add a missing C++ header cmath in libauxiliar.cpp. The original version of the code is available here
  • Note from the editor: the manuscript of the article was modified on 2022-01-01 to include information about its editors. The original version of the manuscript is available here.