Code for CVPR 2014 paper "Shrinkage Fields for Effective Image Restoration" (Uwe Schmidt and Stefan Roth)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
+misc Initial release May 7, 2014
+train Visualization bug fixes, typos Nov 19, 2014
@rbfmix Removed executable flags Nov 18, 2014
data Removed executable flags Nov 18, 2014
models Initial release May 7, 2014
paper Updated paper.pdf Nov 19, 2014
CHANGELOG.txt Updated README and CHANGELOG Nov 19, 2014
csf_demo.m Added +train/to_model.m to use learned models in csf_predict.m Nov 19, 2014
csf_predict.m Initial release May 7, 2014
csf_visualize.m Visualization bug fixes, typos Nov 19, 2014


The code in this package implements image deconvolution and denoising as described in the paper:

  Uwe Schmidt and Stefan Roth.
  Shrinkage Fields for Effective Image Restoration.
  IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Columbus, Ohio, June 2014.

Please cite the paper if you are using this code in your research.
Please see the file LICENSE.txt for the license governing this code.

  Version:       1.1 (19/11/2014), see CHANGELOG.txt
  Contact:       Uwe Schmidt <>
  Project page:

The function CSF_DEMO demonstrates denoising and deconvolution with the learned models from the paper, which can all be found in the folder "models" (the respective sub-folders indicate the relation to the paper). The paper and supplemental material are provided in the folder "paper".
Learning is implemented in CSF_TRAIN, which relies on functions from the folder "+train", and uses example data from folder "data".
Shrinkage functions are represented by RBFMIX objects, see folder "@rbfmix" for details.
The folder "+misc" contains miscellaneous helper functions.

An overview of the functions in a particular folder can be displayed by typing "help <folder/package>" at the MATLAB prompt (e.g. "help train").

This code depends on MATLAB with the image processing toolbox and has been tested with R2010a and newer versions.
It further requires a gradient-based optimization algorithm for learning with CSF_TRAIN (see file "+train/get_minimizer.m").
The function CSF_PREDICT will make use of a supported GPU, if available.
For improved runtime performance, it is recommended to compile the MEX-plugin "@rbfmix/private/lut_eval.c"; compiled binaries are already provided for 64-bit Linux and Windows systems (with MATLAB R2012a).

If you have questions, problems with the code, or found a bug, please let us know.
Contact Uwe Schmidt at or