The iterative blind deconvolution algorithm proposed by Ayers and Dainty is the most popular method in its class. The basic structure of the algorithm is illustrated in Fig. 2.
First a nonnegative-valued initial estimate
is input into the
iterative scheme [1]. This function is Fourier transformed to give
.
From this we form the second function's spectrum,
. Then we impose
image-domain constraint of non-negativity to the inverse transform of this
function, by simply putting to zero all points of the function that have a
negative value. A positive constrained image
is consequently
formed that is Fourier transformed to give the spectrum
. This is
inverted and multiplied by
to give the next spectrum estimate
. Taking inverse Fourier transform of this function and imposing
non-negativity constraints complete the loop of a single iteration. The
iterative loop is repeated until two positive functions with required
convolution
is found.
This basic approach has two major problems to deal with:
1) Defining the inverse filter in regions where the function to be inverted has low values, is difficult.
2) We do not have any information at the spatial frequencies where
or
are zero.
To attack these problems, we change the way we implement the Fourier
constraints.At each iteration we have two estimates for
.
has a non-negative inverse transform and
satisfies the Fourier constraints. So at each iteration those estimates are
averaged to form a new estimate Eq.(2). The weight parameter
is
important for the convergent rate.
The regions below the noise level in the convolution, are dealt with by only
using the estimate
Eq.(1).
If the modulus of
is less than the modulus of
, then the
inverses of the two function estimates are averaged Eq. (3). This takes care of the
small values of
, which are likely to be noisy. All these can be
summarized as follows:
if
noise level,
| (1) |
if
,
| (2) |
if
,
![]() |
(3) |
Matlab Source Code : ibd.m