An Object Oriented Matlab Package for
UPDATE: New iterative methods and new test data.
- Image Restoration
In applications such as astronomy, medicine, physics and biology,
scientists use digital images to record and analyze results from
experiments. Environmental effects and imperfections in the
imaging system can cause the recorded images to be degraded
by blurring and noise. Image restoration (sometimes known
as deblurring or deconvolution) is the process of reconstructing
or estimating the true image from the degraded one.
Matlab's Image Processing Toolbox contains some
methods for image restoration, but these have several limitations.
(For example, they cannot be used with spatially variant blurs.)
The RestoreTools package contains several additional, modern algorithms
which have been studied in the inverse problems and numerical
analysis literature. In addition, an object oriented design
allows users to easily incorporate our efficient computational
kernels in their own algorithms. Some important features include:
- Iterative methods for unsymmetric (CGLS and PCGLS) and
symmetric blurs (MR2 and PMR2),
as well as algorithms that enforce nonnegativity constraints
(MRNSD and PMRNSD).
- Golub-Kahan hybrid (HyBR) method.
- Iterative methods that enforce nonnegative constraint.
- Preconditioning to accelerate convergence of
- Direct (SVD based) methods for separable blurs.
- Algorithms for spatially invariant as well as spatially
- Implementations for zero, periodic and reflexive
- Test data.
- Object oriented implementation of basic computational
kernels, which may be easily incorporated into
user defined functions.
- Package Update, April 2012
This (beta) version contains new iterative methods described in
the book chapter,
Iterative Methods for Image Restoration , written by Sebastian Berisha and
James Nagy. The chapter will be published by Elsevier, in a volume edited
by H. J. Trussell.
- Package Update, March 2007
This version contains a new psfPrec (preconditioner for psfMatrix).
The new psfPrec constructs an approximate SVD of the psfMatrix, but
chooses a either an fft, dct, or Kronecker product SVD basis,
depending on the structure of the PSF. The choice of basis is
A new iterative method,
has been included. This implements
a hybrid Lanczos bidiagonalization/Tikhonov regularization scheme.
Regularization parameters are chosen using a weighted GCV function,
and GCV approach is used to determine an appropriate stopping iteration.
RestoreTools was developed for research and pedagogical
purposes at Emory University by
James Nagy, and
several of his students, including Sebastian Berisha, Julianne Chung,
Katrina Palmer, Lisa Perrone,
and Ryan Wright.
This work was motivated by an excellent Matlab package,
Per Christian Hansen
at the Technical University of Denmark.
We are grateful to Per Christian, and his student,
for many helpful suggestions during the development of these codes.
- Target Audience
- This package should be useful to
interested in experimenting with a variety of image restoration
- Inverse problems research scientists
should find it easy to use this package to test their methods
on realistic application problems.
- Students can use the package to
easily experiment with application problems in
mathematics courses such as numerical analysis
and inverse problems, as well as in engineering courses
in image processing.
RestoreTools was developed using
Matlab version 6.1, and
has been tested on subsequent versions (most recently, version 7.14).
The software for this may be obtained from:
We recommend using one of the above versions, which makes use of some tools in the
Image Processing Toolbox.
However, if you do not have the
Image Processing Toolbox, you can use the following version of the softare:
Older versions: version 1.4
Older versions: version 1.4
We are currently developing a Java
ImageJ plugin for image deblurring.
Some related work using Python
can be obtained from
When you install RestoreTools, you will find a directory (folder)
./RestoreTools/Examples/ containing several scripts illustrating
how to use the codes.
More information can be found in one of the associated papers.
for some examples using direct methods based that exploit Kronecker
product structures, and use SVD computations.
This work has been supported by the National Science Foundation
under Grants DMS 08-11031, DMS 05-11454, and DMS 08-11031, and by
the Air Force Office of Scientific Research under Grant FA 9550-09-1-0487.
Any opinions, findings, and conclusions
or recommendations expressed in this material are those of the
author(s) and do not necessarily reflect
the views of the National Science Foundation or the Air Force Office of Scientific Research.