Image Deblurring
The blurring, or degradation, of an image can be caused by many factors:
Movement during the image capture process, by the camera or, when long exposure times are used, by the subject
Out-of-focus optics, use of a wide-angle lens, atmospheric turbulence, or a short exposure time, which reduces the number of photons captured
Scattered light distortion in confocal microscopy
A blurred or degraded image can be approximately described by this equation g = Hf + n.
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 Note The image f does not really exist. This image represents what you would have if you had perfect image acquisition conditions. |
n |
Additive noise, introduced during image acquisition, that corrupts the image |
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.
Note
The quality of the deblurred image is mainly determined by knowledge of the PSF.
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 Deblur Images Using a 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.
Implements a least squares solution. You should provide some information about the noise to reduce possible noise amplification during deblurring. See Deblur Images Using a Wiener Filter for more information. | |
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 Deblur Images Using Regularized Filter for more information. | |
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 Adapt the Lucy-Richardson Deconvolution for Various Image Distortions for more information. | |
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
|
When using the deblurring functions, note the following:
Deblurring is an iterative process. You might need to repeat the deblurring process multiple times, varying the parameters you specify to the deblurring functions with each iteration, until you achieve an image that, based on the limits of your information, is the best approximation of the original scene. Along the way, you must make numerous judgments about whether newly uncovered features in the image are features of the original scene or simply artifacts of the deblurring process.
To avoid "ringing" in a deblurred image, you can use the
edgetaper
function to preprocess your image before passing it to the deblurring functions. See Avoid Ringing in Deblurred Images for more information.For information about creating your own deblurring functions, see Create Your Own Deblurring Functions.