Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.

Checkout the online demo here!


Use the bash script to run the kernel estimation, denoising and deblurring.

At the strict minimum, you can give it your image as the first argument and it will estimate the noise level and produce the result alongside of your image:

$ bash example.png
# this produces the file "example.png-deblurred.png"

Other arguments (in order):

  1. kernel size. Should be an odd number. 35 by default.
  2. noise standard deviation. If left empty (using ""), the noise will be estimated using Ponomarenko.
  3. output estimated kernel file. Should be a tif file in order to preserve floating point values.
  4. output denoised image file.
  5. output deblurring file.


This project requires some system libraries, such as libtiff, libjpeg, libpng, libfftw3 and their respective headers. A recent C++ compiler, make and cmake are also required. The programs use iio to read and write images.

To compile the C++ parts, use the following commands:

$ make -C ponomarenko-noise-estimation/
$ make -C kernel-estimation/
$ mkdir nonblind-deconvolution/build
$ cd nonblind-deconvolution/build
$ cmake ..
$ make

For FFDNet, you may use use conda and install the dependencies as such: (maybe)

$ # optional: conda create -n <env> python=3
$ conda activate <env>
$ conda install pytorch=0.4.1 -c pytorch
$ pip install -r ffdnet-denoiser/requirements.txt


If you find this work useful, please consider citing it as:

Anger, Jérémy, Mauricio Delbracio, and Gabriele Facciolo. "Efficient Blind Deblurring under High Noise Levels.", Published at International Symposium on Image and Signal Processing and Analysis (ISPA 2019).

Also available on arxiv.

This method is based on the L0 kernel estimation family of methods. For an overview and simple implementation, please refer to Blind Image Deblurring using the l0 Gradient Prior.


Efficient Blind Deblurring under High Noise Levels (with online demo)





No releases published


No packages published