Graphic STI
logo EPFL
english only
Biomedical Imaging Group
BIG > Algorithms > DeconvolutionLab

BIG homepage










Headless call


Related Works



Plugin for ImageJ

[Version 14.02.2014]


3D deconvolution package for microscopic images

Cédric Vonesch, Raquel Terrés Cristofani and Guillaume Schmit at the Biomedical Image Group (BIG), EPFL, Switzerland



DeconvolutionLab is a software package (ImageJ plugin) to deconvolve 2D or 3D microscopic images based on the knowledge of the PSF. It implements a variety of deconvolution algorithms: 1) Inverse filter, 2) Regularized inverse filter, 3) Landweber, 4) Threshold Landweber, 5) Tikhonov-Miller, 6) Richardson-Lucy, 7) Richardson-Lucy with TV Regularization. It also includes a convolution tool to generate simulated dataset with additive noise.


[1] C. Vonesch, M. Unser, "A Fast Thresholded Landweber Algorithm for Wavelet-Regularized Multidimensional Deconvolution," IEEE Transactions on Image Processing, vol. 17, no. 4, pp. 539-549, April 2008.



DeconvolutionLab is a Java software pakage to deconvolve 3D images; it runs as a plugin for ImageJ, the public domain image-processing software. 3D Deconvolution is highly computational; it also requires some understanding of image formation and signal processing to correctly adjust the parameters of the algorithms. DeconvolutionLab incorporates the most known algorithms of deconvolution with theirs parameters. Tuning these parameters could be diffifult in deconvolution and may infer disappointing results. In DeconvolutionLab, these parameters can be choosen by the user or for some of them, they can be automicatilly estimated, which it is one of the main feature of DeconvolutionLab.

A highlight is the optional use of the FFTW package, a library supplying one of the fastest Fourier Transform. DeconvolutionLab includes a distribution both for the Microsoft Window (32 and 64 bits) and for the Apple Mac OSX (32 bits and 64 bits)


Click to enlarge Mac OSX
Click to enlarge Windows

Java and ImageJ prerequirements

The software provided here is a plugin for ImageJ, a general purpose image-processing and image-analysis package. ImageJ has a public domain licence; it runs on several plateforms: Unix, Linux, Windows, Mac OS 9 and Mac OS X. It doesn't take more than a couple of minutes to install.

Make sure that you have the good version of Java: at least 1.5, 1.6 recommended; 64-bit version for processing large data sets. To know the version of Java, go to Help>About of ImageJ.

Download and install

Download, the ImageJ's plugin. Put the file in the folder plugins of ImageJ and unzip it. The FFTW libraries for Windows and Mac OSX are included in the package.

Probaby, you will need to increase the allocated memory to ImageJ by Java.


  1. Launch DeconvolutionLab form the menu plugin of ImageJ
  2. Open the input stack of image to deconvolve.
  3. Open the PSF stack.
  4. Select an algorithm and the parameters.
  5. Select the PSF (click on the Refresh button to have to refresh the list of open images).
  6. Optional - If you have an ground-truth stack images (only in simulation), you can compute the SER (Signal-to-Error Ratio) by selecting the option.
  7. Optional - Remove the background.
  8. Optional - Create snapshot video for every iterations.
  9. Optional - Apply the algorithm on a reduce part of the image.
  10. Optional - Activate the FFTW which is faster
  11. Optional - Activate the batch mode
  12. Run the deconvolution and observe the log activities in different modes

Conditions of use

You'll be free to use this software for research purposes, but you must not transmit and distribute it without our consent. In addition, you undertake to include a citation whenever you present or publish results that are based on it. EPFL makes no warranties of any kind on this software and shall in no event be liable for damages of any kind in connection with the use and exploitation of this technology.

Headless call

Calling DeconvolutionLab from a Javascript macro or from an ImageJ macro is now possible. Check this web page:
How to call DeconvolutionLab from a Javascript script or an ImageJ macro?


1. Synthetic hollow bars

The dataset and the corresponding PSF are avaible at: Deconvolution dataset

example1 example1 example1
Input stack of images
Synthetic hollow bars
Corrupted data by blurring
and adding a Poisson noise
256x256x128 voxels
Output stack of images
Deconvolved dataset
Algorithm: Richardson-Lucy with TV regularization
40 iterations, lambda=0.001

Related Works