Non Local Means denoising


% Non local means denoising


* Author    : Antoni Buades <>
* Copyright : (C) 2009, 2010 IPOL Image Processing On Line
* Licence

- nlmeans_ipol.cpp, libdenoising.cpp and libdenoising.h
may be linked to the EP patent 1,749,278 by A. Buades, T. Coll and J.M. Morel.
They are provided for scientific and education only.

- All the other files are distributed under the terms of the
  LGPLv3 license.


This source code provides an implementation of the NL-means denoising algorithm as described in IPOL

This program reads and writes PNG images, but can be easily
adapted to any other file format.

Only 8bit RGB PNG images are handled. 


The code is written in ANSI C and C++, and should compile on any
system with an ANSI C/C++ compiler.

The libpng header and libraries are required on the system for
compilation and execution. 

The implementation uses OPENMP which not supported by old versions of gcc (older than the 4.2). 


Simply use the provided makefile, with the command `make`.


usage: nlmeans_ipol image sigma noisy denoised 

`nlmeans_ipol ` takes 4 parameter: `nlmeans_ipol in.png sigma noisy.png denoised.png`
* `sigma`     : the noise standard deviation
* `in.png`   : initial noise free image
* `noisy.png`  : noisy image used by the denoising algorithm
* `denoised.png` : denoised image


Copyright 2009, 2010 IPOL Image Processing On Line
Author: Antoni Buades <>

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.
 All Files Functions Variables Defines
Generated on Thu Sep 1 09:57:48 2011 for non local means denoising by  doxygen 1.6.3