Image Processing Toolbox User's Guide |
Restore image using a regularized filter
Syntax
J = deconvreg(I,PSF) J = deconvreg(I,PSF,NOISEPOWER) J = deconvreg(I,PSF,NOISEPOWER,LRANGE) J = deconvreg(I,PSF,NOISEPOWER,LRANGE,REGOP) [J, LAGRA] = deconvreg(I,PSF,...)
Description
J =
deconvreg(I,PSF)
restores image I
that was degraded by convolution with a point-spread function PSF and possibly by additive noise. The algorithm is a constrained optimum in a sense of least square error between the estimated and the true images under the requirement of preserving image smoothness.
J =
deconvreg(I,PSF,NOISEPOWER)
, where NOISEPOWER
is the additive noise power. The default value is 0.
J =
deconvreg(I,PSF,NOISEPOWER,LRANGE)
, where LRANGE
is a vector specifying range where the search for the optimal solution is performed. The algorithm finds an optimal Lagrange multiplier LAGRA
within the LRANGE
range. If LRANGE
is a scalar, the algorithm assumes that LAGRA
is given and equal to LRANGE
; the NP
value is then ignored. The default range is between [1e-9 and 1e9].
J =
deconvreg(I,PSF,NOISEPOWER,LRANGE,REGOP)
, where REGOP
is the regularization operator to constrain the deconvolution. The default regularization operator is the Laplacian operator, to retain the image smoothness. The REGOP
array dimensions must not exceed the image dimensions; any nonsingleton dimensions must correspond to the nonsingleton dimensions of PSF
.
[J, LAGRA] =
deconvreg(I,PSF,...)
outputs the value of the Lagrange multiplier LAGRA
in addition to the restored image J
.
Class Support
I
can be of class uint8
, uint16
, int16
, double
, or single
. Other inputs have to be of class double
. J
has the same class as I
.
Example
I = checkerboard(8); PSF = fspecial('gaussian',7,10); V = .01; BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V); NOISEPOWER = V*prod(size(I)); [J LAGRA] = deconvreg(BlurredNoisy,PSF,NOISEPOWER); subplot(221); imshow(BlurredNoisy); title('A = Blurred and Noisy'); subplot(222); imshow(J); title('[J LAGRA] = deconvreg(A,PSF,NP)'); subplot(223); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA/10)); title('deconvreg(A,PSF,[],0.1*LAGRA)'); subplot(224); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA*10)); title('deconvreg(A,PSF,[],10*LAGRA)');
See Also
deconvblind
, deconvlucy
, deconvwnr
, otf2psf
, padarray
, psf2otf
deconvlucy | deconvwnr |
© 1994-2005 The MathWorks, Inc.