Deblur image using blind deconvolution

`[`

deconvolves image `J`

,`psfr`

] = deconvblind(`I`

,`psfi`

)`I`

using the maximum likelihood algorithm and
an initial estimate of the point-spread function (PSF), `psfi`

.
The `deconvblind`

function returns both the deblurred image
`J`

and a restored PSF, `psfr`

.

To improve the restoration, `deconvblind`

supports several
optional parameters, described below. Use `[]`

as a placeholder if
you do not specify an intermediate parameter.

`[`

specifies which pixels in the input image `J`

,`psfr`

] = deconvblind(`I`

,`psfi`

,`iter`

,`dampar`

,`weight`

)`I`

are considered in the
restoration. The value of an element in the `weight`

array
determines how much the pixel at the corresponding position in the input image is
considered. For example, to exclude a pixel from consideration, assign it a value of
`0`

in the `weight`

array. You can adjust
the weight value assigned to each pixel according to the amount of flat-field
correction.

`[`

,
where `J`

,`psfr`

] = deconvblind(___,`fun`

)`fun`

is a handle to a function that describes additional
constraints on the PSF. `fun`

is called at the end of each
iteration. For more information about function handles, see Create Function Handle (MATLAB).

You can use

`deconvblind`

to perform a deconvolution that starts where a previous deconvolution stopped. To use this feature, pass the input image`I`

and the initial guess at the PSF,`psfi`

, as cell arrays:`{I}`

and`{psfi}`

. When you do, the`deconvblind`

function returns the output image`J`

and the restored point-spread function,`psfr`

, as cell arrays, which can then be passed as the input arrays into the next`deconvblind`

call. The output cell array`J`

contains four elements:`J{1}`

contains`I`

, the original image.`J{2}`

contains the result of the last iteration.`J{3}`

contains the result of the next-to-last iteration.`J{4}`

is an array generated by the iterative algorithm.The output image

`J`

could exhibit ringing introduced by the discrete Fourier transform used in the algorithm. To reduce the ringing, use`I = edgetaper(I,psfi)`

before calling`deconvblind`

.

[1] D.S.C. Biggs and M. Andrews, *Acceleration of iterative image
restoration algorithms*, Applied Optics, Vol. 36, No. 8,
1997.

[2] R.J. Hanisch, R.L. White, and R.L. Gilliland, *Deconvolutions of
Hubble Space Telescope Images and Spectra*, Deconvolution of Images and
Spectra, Ed. P.A. Jansson, 2nd ed., Academic Press, CA, 1997.

[3] Timothy J. Holmes, et al, *Light Microscopic Images Reconstructed by
Maximum Likelihood Deconvolution*, Handbook of Biological Confocal
Microscopy, Ed. James B. Pawley, Plenum Press, New York, 1995.