Getting started with Deconvolution in ImageJ

Hi All

I was asked by someone on Twitter how to get started on deconvolution. Since this information may be useful to others, and since it is WAY easier to post here than in a series of tweets, here are my recommendations on getting started with deconvolution

  1. Do 30 minutes or so of background reading. This wiki has good explanations, though does not reference the latest plugins. A google search for “microscopy deconvolution”, will lead you to an unlimited number of resources. It is important to understand what a Point Spread Function is and why it is needed for deconvolution. Start thinking about how you will generate the Point Spread Function for your system.

  2. Post some example images on a public forum and ask people whether they think deconvolution can help you answer your research questions. If the information you need to measure can already be extracted from the raw image, why do extra work and processing?? There may be other approaches (like Deep Learning restoration) that could be more helpful.

  3. If it looks like deconvolution can be helpful you will now need to generate a PSF. You need one of two things.

a) An image of sub-resolution beads, taken with the same instrument as your other samples, this image can be used to extract a measured PSF. For example in the Fiji script editor, under Templates->Deconvolution there is a “extractPSF” script

b) A description of your instrument and imaging system, including modality, numerical aperture and refractive index of the lens, excitation and emission wavelengths and pixel spacing, which could be used to generate a theoretical PSF using the GUI based PSF Extractor or an script (for example this one.

  1. Once you have a PSF you are ready to deconvolve your images. To start with I recommend DeconvoluitonLab2, a GUI based plugin, that has several different deconvolution algorithms. The Fiji script editor has several Deconvolution examples

  2. If speed becomes an issue, ask about some of the work being done to develop Cuda and OpenCL deconvolution. This is experimental right now, but it is always great to have early testers.