The image of a cat and its Fourier spectrum (magnitude and phase):
A relative motion between the camera and the cat during the exposure time will
cause the image to be blurred. For simplicity, assume the motion is linear and only
in the horizontal direction, and the relative displacement of the image caused by
the motion is L. Such a motion can be modeled by the convolution of the image
f(x,y) and convolution kernel h(x,y) representing the linear motion (a rectangular
window of size L in the horizontal direction multiplied by a delta function in the
vertical direction). In the frequency domain, this motion becomes the multiplication
of the spectra of the image and the convolution kernel (a 1D Sinc function):
The resulting image g(x,y)=h(x,y)*f(x,y) blurred by the linear motion is the
inverse transform of the spectrum on the right (with random noise added).
To restore the image, it needs to be deblurred in either spatial or frequency domain.
While it is hard to deconvolve the image in spatial domain, it is relatively easy to
do so in frequency domain, by dividing the spectrum of the blurred image by H(u,v), the
spectrum of the blurring function. The only problem is that H(u,v) is a sinc function
with periodic zero values. The information corresponding to such frequencies is lost
during the blurring process (caused by multiplication by zero). The following is the
restored image obtained by:
- clean up isolated noise (if any) by median filter (left image below).
- obtain spectra G(u,v) and H(u,v), the Fourier transform of image g(x,y) and h(x,y)
- deblur image: if |H(u,v)|>0 then F(u,v)=G(u,v)/H(u,v), else F(u,v)=0 (info is lost)
- obtain restored image f(x,y) by inverse Fourier transform of F(u,v) (middle image below).
- clean up vertical lines in the image (caused by H(u,v)=0) by median filter.
- stretch the image to the full gray level scale (right image below).