diff --git a/examples/use_chlpca.cpp b/examples/use_chlpca.cpp
new file mode 100644
index 0000000..0d43db1
--- /dev/null
+++ b/examples/use_chlpca.cpp
@@ -0,0 +1,70 @@
+/*
+  #
+  #  File        : use_chlpca.cpp
+  #                ( C++ source file )
+  #
+  #  Description : Example of use for the CImg plugin 'plugins/chlpca.h'.
+  #                This file is a part of the CImg Library project.
+  #                ( http://cimg.eu )
+  #
+  #  Copyright  : Jerome Boulanger
+  #               ( http://www.irisa.fr/vista/Equipe/People/Jerome.Boulanger.html )
+  #
+  #
+  #  License     : CeCILL v2.0
+  #                ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html )
+  #
+  #  This software is governed by the CeCILL  license under French law and
+  #  abiding by the rules of distribution of free software.  You can  use,
+  #  modify and/ or redistribute the software under the terms of the CeCILL
+  #  license as circulated by CEA, CNRS and INRIA at the following URL
+  #  "http://www.cecill.info".
+  #
+  #  As a counterpart to the access to the source code and  rights to copy,
+  #  modify and redistribute granted by the license, users are provided only
+  #  with a limited warranty  and the software's author,  the holder of the
+  #  economic rights,  and the successive licensors  have only  limited
+  #  liability.
+  #
+  #  In this respect, the user's attention is drawn to the risks associated
+  #  with loading,  using,  modifying and/or developing or reproducing the
+  #  software by the user in light of its specific status of free software,
+  #  that may mean  that it is complicated to manipulate,  and  that  also
+  #  therefore means  that it is reserved for developers  and  experienced
+  #  professionals having in-depth computer knowledge. Users are therefore
+  #  encouraged to load and test the software's suitability as regards their
+  #  requirements in conditions enabling the security of their systems and/or
+  #  data to be ensured and,  more generally, to use and operate it in the
+  #  same conditions as regards security.
+  #
+  #  The fact that you are presently reading this means that you have had
+  #  knowledge of the CeCILL license and that you accept its terms.
+  #
+*/
+
+#define cimg_plugin "plugins/chlpca.h"
+#include "CImg.h"
+using namespace cimg_library;
+#ifndef cimg_imagepath
+#define cimg_imagepath "img/"
+#endif
+
+// Main procedure
+//----------------
+int main(int argc,char **argv) {
+  cimg_usage("Patch based denoising ");
+  const char *file_i  = cimg_option("-i",cimg_imagepath "milla.bmp","Input image");
+  const int p = cimg_option("-p",3,"patch radius");
+  const int w = cimg_option("-w",10,"window radius");
+  const float lambda_min = cimg_option("-l",(float)2.f,"component selection threshold");
+  const int nstep = cimg_option("-nstep",5,"sub-sampling");
+  const float nsim = cimg_option("-nsim",(float)5.f,"dictionnary size a multiple of the patch size");
+  const float noise_std = cimg_option("-sigma",(float)-1.f,"noise std (-1:estimated)");
+  const bool use_svd = cimg_option("-svd",(float)-1.f,"use svd for computing PCA");
+  const char *file_o  = cimg_option("-o",(char*)NULL,"Output file");
+  CImg<> img(file_i);
+  img = img.get_chlpca(p, w, nstep, nsim, lambda_min, noise_std, use_svd);
+  img.display();
+  if (file_o) img.save(file_o);
+  return 0;
+}
