Iterative Deconvolution 2
 
Author: Bob Dougherty 
Installation: Download  Iterative_Deconvolution2.class or Iterative_Deconvolution2.java to the plugins folder.  (Windows users right-click to download.)  Requires ImageJ 1.32c or later.
Description: Plugin for convolution and deconvolution. Originally inspired DAMAS algorithm by Thomas F. Brooks and William M. Humphreys, Jr., NASA-Langley Research Center.   See AIAA Paper 2004-2954.  This experimental plugin is similar to Iterative_Deconvolution, with two important changes:
  1. The iteration is based on a generalized solution in the frequency domain.
  2. The filtering for reconstruction smoothness takes account of spectral content of the psf.
The first change greatly speeds the convergence (3 iterations are typically required) and extends the method to non-peaked psf cases where the earlier code diverged.  The second change permits sharper reconstructions.   This plugin may be less well behaved than Iterative Deconvolution.   The better-understood Iterative Deconvolution is probably perferable to this plugin in cases where it converges efficiently.

See also: Convolve 3D and Iterative Deconvolve 3D.

Disclaimer: Deconvolution is partially art.  It is easy to introduce artifacts that are not present in the original image.
Usage: There are two modes of operation: Convolve and Deconvolve.  Both require an image argument and a point spread function.   Deconvolution also requires the number of iterations and the filter parameter, alpha.   The convolution and deconvolution are not exactly the same as the methods built into ImageJ (FFT -> FD Math...) and Nick Linnenbrügger's DeconvolutionJ because Iterative Deconvolution 2 always pads the window to avoid wrapping and centers the psf.  Mixing data between Iterative Deconvolution 2 and the other methods may produce strange results, especially at the edges.   (Padding is optional in DeconvolutionJ.)

The monotonic deconvolution option is based on the heuristic assumption that successive convolutions with the psf will move the pixel values in a monotonically increasing or decreasing direction.  The input image is convolved with the (suitably normalized) psf.  If this causes a given pixel value to increase, then the original pixel value is taken as an lower limit for the reconstruction.  Conversely, if the convolution decreases a pixel value, then the original value is taken as a upper limit for the deconvolved result.  This constraint, as well as the deconvolution iteration itself, are applied with the psf normalied so the sum of its pixel values is unity.  The final gain of the psf is applied after the iteration.

Processing can be restricted to a rectangular portion of the image by selecting it with an ROI.  Also an ROI can be used to limit the psf.

The parameter a is used to restrict the spectral content of the reconstruction.   Let A be the magnitude of the largest Fourier component of the psf.  Let T1 = A/a and T2 = A/a2 be two thresholds.   During iteration, a generalized inverse of the psf is used to speed the convergece.  This inverse makes use of T1 to suppress spectral components of the solution corresponding to components of the psf that are smaller than T1.  Also, the reconstruction is filtered during the iteration to reduce spectral components for which the corresponding coefficient of the psf is less than T2.  The appropriate value of a for a given problem is determined by trial and error.  Values in the range of 100 to 100,000 have been found to be useful.   If a is too large, then the reconstruction will be noisy; if it is too small, then the result will be blurry.

The number of iterations is also chosen by trial and error.  It is large enough when larger values do not change the result.  Typical numbers of iterations are from 2 to 6.

The monotonic option seems to improve the results when the psf is a peaked function.  For non-peaked psf functions, like the ones associated with motion blur, the monotonic option should not be selected.  Again, trial and error is indicated.

Versions: 1: 6/2/2004 Split off from Iterative Deconvolution
5/2005: Replaced by Convolve 3D and Iterative Deconvolve 3D
License:

Copyright (c) 2005, OptiNav, Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of OptiNav, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ImageJ: ImageJ can be freely downloaded from the ImageJ web site.