Implementation of Image
Deblurring Techniques in Java
TJHSST Computer Systems Lab, 2008
AbstractCountless numbers of photographs are taken every day, and
inevitably, many images suffer from some sort of "blurring."
A program with the power to take a blurred image create a
much crisper and clearer "deblurred" form would be
immensely valuable. Law enforcement making out a blurred
photo of the getaway car's license plate, or even a family
attempting to improve the clarity of their grandfather’s smile
would find such a piece of software useful. In my
implementation I attempt to deblur images suffering from
simple types of motion blur using the alternate domains
granted by the use of Fourier transformations and a basic
understanding of image deconvolution.
BackgroundIn order to reverse the blur on an image, it is necessary to approach the task
mathematically. If the process that blurs the image is considered a mathematical
function, it must be reversed in order to restore the image; however, to do so, it is
necessary to understand how the image was blurred, characteristics such as
direction, type (motion, out of focus image, etc.), and magnitude. The best way to
approach such a complex task to is to convert the image into a different domain.
The way in which we normally view images is known as the spatial domain, but if
the image is converted into a series of sin functions through a mathematical
technique known as a Fourier transformation it is possible to view the image in the
frequency domain. Once in the frequency domain, it is now possible to perform
more advanced analysis on the image and perform mathematical operations in a
more generalized way. It is understood that using the Fourier transformation of an
unblurred image and the Fourier transformation of the blur (a five pixel horizontal
line corresponds to a five pixel blur) with a process known broadly as image
convolution produces the Fourier transformation of the blurred image. Thus, by
performing the inverse, a deconvolution on