Parallel Iterative Deconvolution 2D and 3D

Description
Parallel Iterative Deconvolution is an ImageJ plugin for iterative 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.
Features
- Multithreading (user can choose the number of computational threads)
- Three iterative methods:
- MRNSD - Modified Residual Norm Steepest Descent
- CGLS - Conjugate Gradient for Least Squares
- HyBR - Hybrid Bidiagonalization Regularization
- 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
- Single and double precision
- Show iterations option
- Non-modal GUI (user can use ImageJ while the plugin's window is showing)
Limitations
- Color images are not supported
- The number of threads must be a power of 2 number
Benchmark
Testbed
- 2 x AMD Opteron 280 Dual Core CPU (2.4 GHz)
- 16 GB RAM
- RedHat Enterprise Linux (kernel 2.6.9)
- Java 1.6.0_06 (64-Bit Server VM)
- ImageJ 1.39s
Input parameters for Parallel Iterative Deconvolution
- Preconditioner: FFT
- Tolerance: 0.01 / auto
- Boundary: Reflexive
- Precision: Single
- Max number of iterations: 5
- Options » Stopping tolerance: 0
Input parameters for Iterative Deconvolve 3D
- 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: 2048 x 2048 pixels
- PSF size: 128 x 128 pixels
- Numbers in brackets include the computation of the tolerance for a preconditioner
| Method | 1 thread | 2 threads | 4 threads |
| CGLS | 154.5 (175.0) | 84.8 (97.1) | 56.4 (66.3) |
| MRNSD | 176.9 (195.6) | 107.8 (119.1) | 76.0 (86.1) |
| HyBR | 142.6 (161.5) | 82.9 (93.9) | 56.9 (66.5) |
| ID3D | 144.1 | - | - |
3D Benchmark
- Image size: 112 x 240 x 240 pixels
- PSF size: 16 x 16 x 16 pixels
- Numbers in brackets include the computation of the tolerance for a preconditioner
| Method | 1 thread | 2 threads | 4 threads |
| CGLS | 73.6 (81.5) | 39.6 (46.1) | 26.4 (32.2) |
| MRNSD | 88.3 (97.0) | 53.2 (59.0) | 38.7 (44.5) |
| HyBR | 81.1 (89.4) | 46.4 (52.9) | 33.2 (39.0) |
| ID3D | 569.5 | - | - |
Examples
Grain image (download: zip, tar.gz)
- Method: MRNSD
- Preconditioner: FFT (auto tolerance)
- Boundary: Reflexive
- Number of iterations: 5
| True image | PSF |
![]() | ![]() |
| Blurred image | Deblurred image |
![]() | ![]() |
Star cluster image (download: zip, tar.gz)
- Image copyright: STScI
- Method: MRNSD
- Preconditioner: FFT (auto tolerance)
- Boundary: Reflexive
- 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 (download: zip, tar.gz)
- Image copyright: Jeff Orchard (http://www.cs.uwaterloo.ca/~jorchard/mri/)
- Method: MRNSD
- Preconditioner: None
- Boundary: Reflexive
- 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.
View Javadoc API
License
Parallel Itarative Deconvolution is released under the GNU General Public License, except for Parallel Colt and Nonlinear Optimization Java Package.
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 and Nonlinear Optimization Java Package (jar, zip, tar.gz) or use the jar files from binary distribution of Parallel Iterative Deconvolution.
version 1.6 (April 18, 2008) changelog.txt
binary:
- parallel_iterative_deconvolution-1.6-bin.zip [2,843,810 bytes]
- parallel_iterative_deconvolution-1.6-bin.tar.gz [2,843,846 bytes]
source:
- parallel_iterative_deconvolution-1.6-src.zip [182,325 bytes]
- parallel_iterative_deconvolution-1.6-src.tar.gz [74,979 bytes]










