Software‎ > ‎Deconvolution‎ > ‎

Parallel Iterative Deconvolution

Description

Parallel Iterative Deconvolution is an ImageJ plugin for iterative image deblurring. The code is derived from RestoreTools: An Object Oriented Matlab Package for Image Restoration written by James G. Nagy and several of his students, including Julianne Chung, Katrina Palmer, Lisa Perrone, and Ryan Wright and also from Iterative Deconvolve 3D written by Robert Dougherty.

Features

  • 2D and 3D iterative image deblurring
  • Multithreading (user can choose the number of computational threads)
  • Four iterative methods:
  • Spatially invariant as well as spatially variant blurs
  • Threshold - specify the smallest nonnegative pixel value assigned to the restored image
  • FFT-based preconditioner
  • Automatic choice of the tolerance for the preconditioner (based on the Generalized Cross-Validation)
  • Reflexive, periodic and zero boundary conditions
  • Auto resizing - the size of padding is chosen to achieve best performance
  • Different output types (Same as source, Byte, Short or Float)  
  • Single and double precision
  • Show iterations option
  • Non-modal GUI
  • The plugin can be called from ImageJ macro

Limitations

  • Color images are not supported
  • The number of threads must be a power-of-two number

Benchmark

Testbed

  • 2 x Quad-Core Intel Xeon E5472 (3GHz, 12MB L2 Cache)
  • 32 GB RAM
  • Ubuntu 8.10 (64-bit)
  • Sun Java 1.6.0_13 (64-Bit Server VM)
  • ImageJ 1.42l

Input parameters for Parallel Iterative Deconvolution

  • Preconditioner: FFT
  • Tolerance: 0.001  
  • Boundary: Reflexive
  • Resizing: Auto
  • Output: Float
  • Precision: Single
  • Max number of iterations: 5
  • Options » Stopping tolerance: 0

Input parameters for Iterative Deconvolve 3D and WPL

  • Normalize PSF
  • Wiener filter gamma: 0.001
  • Low pass filter x and y, pixels: 1
  • Z direction low pass filter z, pixels: 1
  • Maximum number of iterations: 5
  • Terminate iteration if mean delta < x%: 0

2D Benchmark

  • Image size: 4096 x 4096 pixels
  • PSF size: 256 x 256 pixels
Method 1 thread 2 threads 4 threads 8 threads
CGLS 169.6
110.0
67.2
48.9
MRNSD 179.0
116.8
72.2
52.3
HyBR 183.5
125.6
80.7
58.9
WPL 38.7
21.4
12.3
8.8
ID3D 460.2
- - -

Average execution time (in seconds) for 2D image

3D Benchmark

  • Image size: 128 x 256 x 256 pixels
  • PSF size: 16 x 16 x 16 pixels
Method 1 thread 2 threads 4 threads 8 threads
CGLS 85.6
54.3
31.2
21.7
MRNSD 91.5
58.7
33.5
23.1
HyBR 95.5
61.9
36.5
26.1
WPL
26.4
13.9
8.12
5.7
ID3D 250.1
- - -

Average execution time (in seconds) for 3D image

Examples

Grain image

  • Method: MRNSD
  • Preconditioner: FFT (auto tolerance)
  • Boundary: Reflexive
  • Resizing: Auto
  • Output: Same as source
  • Number of iterations: 5
True image PSF
Blurred image Deblurred image

Star cluster image

  • Image copyright: STScI
  • Method: MRNSD
  • Preconditioner: FFT (auto tolerance)
  • Boundary: Reflexive
  • Resizing: Auto
  • Output: Same as source
  • Number of iterations: 39
  • You should use Image » Adjust » Brightness/Contract » Auto for this image
True image Locations of PSFs
Blurred image Deblurred image

3D head image

  • Image copyright: Jeff Orchard (http://www.cs.uwaterloo.ca/~jorchard/mri/)
  • Method: MRNSD
  • Preconditioner: None
  • Boundary: Reflexive
  • Resizing: Auto
  • Output: Same as source
  • Number of iterations: 100
  • Only 8th slice is shown
True image Blurred image Deblurred image

Documentation

To install the plugin, just download the binary distribution, unpack the archive into the plugin directory and restart ImageJ. The plugin will appear under Plugins » Parallel Iterative Deconvolution menu.

Vew User Guide (pdf, 4.4 MB)

License

Parallel Iterative Deconvolution is released under the GNU General Public License, except for Parallel Colt and edu.emory.mathcs.restoretools.iterative.method.wpl package.

Package edu.emory.mathcs.restoretools.iterative.wpl

    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, thisnotice, 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 contributor
s 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.

Download

The source code distribution, besides Ant build file, contains also Eclipse project files. To build the source code you need to download Parallel Colt or use the jar files from binary distribution of Parallel Iterative Deconvolution.

version 1.11 (August 27, 2009) Changelog

binary:

doc:

source:

Donations

If you have found this software useful and would like to thank the author, you can make a donation to show your appreciation.

Comments