SLRF denoise demo, written by Yunpeng Li (yuli@cs.cornell.edu),
implementing the model described in: 

  Sparse Long-range Random Field and its Application to Image Denoising
  Yunpeng Li and Daniel P. Huttenlocher, ECCV 2008

This software is intended for research purposes only and comes with
ABSOLUTELY NO WARRANTY.  The author is not responsible for any 
consequences from the use of this software.


--- Files ---

SLRF.cpp/h
  An application/platform/library-independent implementation of the 
SLRF model, which computes the value and gradient of the energy function
corresponding to SLRF.

Denoise.cpp/h, Utils.cpp/h Main.cpp
  The console application for denoising using the SLRF model.


--- Compiling ---

Compile with GCC, either under Linux or Cygwin (for Windows).  
To compile, type 'make'.

The code pack also includes three libraries used by the code:

- Nocedal's Limited-memory BFGS library (slightly modified to increase 
  flexibility and speed)
- Szeliski/Schartein image library (slightly modified to be compatible with 
  libpng1.4)
- libpng for I/O of PNG images (needed by Szeliski/Scharstein library)

The libraries are distributed under their own licence agreements.  
The libraries will be compiled automatically with make.


--- Running ---

denoise [options] input noiseSigma output

  input/output must be PPM/PGM/PNG images.
  noiseSigma is the noise level (s.d. for Gaussian).

Options:
  -i int    -> the maximum number of gradient descent iterations (default 20)
  -v [0,1]  -> verbosity level (default 1)
  -g string -> ground truth image file (if available, for evaluation)


--- Know Issues --- 

The Szeliski/Scharstein image library doesn't always correctly handle embedded 
color management, which causes images saved by applications that use this 
feature (e.g. Photoshop) be read incorrectly.  If this occurs, convert the 
image to PPM (color) or PGM (gray) to get rid of embedded color management.  
(The Unix 'convert' will do.)



------

Last update: March 22, 2010
