Products & Services Industries Academia Support User Community Company

Learn more about Image Processing Toolbox   

Understanding Deblurring

Causes of Blurring

The blurring, or degradation, of an image can be caused by many factors:

Deblurring Model

A blurred or degraded image can be approximately described by this equation g = Hf + n, where

g

The blurred image

H

The distortion operator, also called the point spread function (PSF). In the spatial domain, the PSF describes the degree to which an optical system blurs (spreads) a point of light. The PSF is the inverse Fourier transform of the optical transfer function (OTF). In the frequency domain, the OTF describes the response of a linear, position-invariant system to an impulse. The OTF is the Fourier transform of the point spread function (PSF). The distortion operator, when convolved with the image, creates the distortion. Distortion caused by a point spread function is just one type of distortion.

f

The original true image

n

Additive noise, introduced during image acquisition, that corrupts the image

Importance of the PSF

Based on this model, the fundamental task of deblurring is to deconvolve the blurred image with the PSF that exactly describes the distortion. Deconvolution is the process of reversing the effect of convolution.

To illustrate, this example takes a clear image and deliberately blurs it by convolving it with a PSF. The example uses the fspecial function to create a PSF that simulates a motion blur, specifying the length of the blur in pixels, (LEN=31), and the angle of the blur in degrees (THETA=11). Once the PSF is created, the example uses the imfilter function to convolve the PSF with the original image, I, to create the blurred image, Blurred. (To see how deblurring is the reverse of this process, using the same images, see Deblurring with the Wiener Filter.)

I = imread('peppers.png');
I = I(60+[1:256],222+[1:256],:); % crop the image
figure; imshow(I); title('Original Image');

LEN = 31;
THETA = 11;
PSF = fspecial('motion',LEN,THETA); % create PSF
Blurred = imfilter(I,PSF,'circular','conv');
figure; imshow(Blurred); title('Blurred Image');

Deblurring Functions

The toolbox includes four deblurring functions, listed here in order of complexity. All the functions accept a PSF and the blurred image as their primary arguments.

deconvwnr

Implements a least squares solution. You should provide some information about the noise to reduce possible noise amplification during deblurring. See Deblurring with the Wiener Filter for more information.

deconvreg

Implements a constrained least squares solution, where you can place constraints on the output image (the smoothness requirement is the default). You should provide some information about the noise to reduce possible noise amplification during deblurring. See Deblurring with a Regularized Filter for more information.

deconvlucy

Implements an accelerated, damped Lucy-Richardson algorithm. This function performs multiple iterations, using optimization techniques and Poisson statistics. You do not need to provide information about the additive noise in the corrupted image. See Deblurring with the Lucy-Richardson Algorithm for more information.

deconvblind

Implements the blind deconvolution algorithm, which performs deblurring without knowledge of the PSF. You pass as an argument your initial guess at the PSF. The deconvblind function returns a restored PSF in addition to the restored image. The implementation uses the same damping and iterative model as the deconvlucy function. See Deblurring with the Blind Deconvolution Algorithm for more information.

When using the deblurring functions, note the following:

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS