What is *deconvolution*? To describe it, we first have to define what *convolution* is. A perfect camera would produce a picture that is as sharp as an ideal detector allows. However, this is not what happens in practice, since optics aren't perfect. And if they were, *diffraction* would still limit their resolution. In practice, the theoretical perfect image is *convolved* with the *point spread function* (PSF) of the camera. The article The Perfect Camera introduces the concept of a PSF, if you need a refresher. Deconvolution, then, is the process of removing the effect of this PSF again.

The illustration below shows an example. The “true” image (the well-known Lena image) is convolved with the Airy pattern (the size of the central Airy disk is 20 pixels in this case), which is the PSF of a diffraction limited lens, producing a blurred image.

If you *deconvolve* the image on the right with the inverse filter, you get the following result.

So, deconvolution is *not* difficult after all, since the result is almost identical to the input? Well, it really is, for two reasons. First, we assume here that we know the PSF exactly, which is often not true in practice. Second, the deconvolution above was done on the blurry image in floating-point numbers, so without discretizing the result first. This is completely unrealistic, since the detector that records the image in a camera is, in practice, typically limited to a fixed number of bits, say 12 or 16. If we repeat the deconvolution, but simply discretize the blurry image to 12 bits first, we get the following result.

The image is completely destroyed. The main problem with deconvolution through straightforward inverse filtering is that this is extremely sensitive to any deviations from the “optimal” convolved image for that particular PSF, since inverting the PSF is, numerically, not very stable. We can improve the result by bounding the frequency response of the inverse filter, resulting in the image below. However, the result is still not very good.

So, deconvolution *is* difficult after all! Which is why it is a complete discipline within the field of image processing, with, for example, the well-known Wiener filter that can be used to try to do better than the simple inverse filter above. But that is for a future article.

where is the Wiener filter article is ? thanks

I did consider writing an article on the Wiener filter approach when I was writing this one, but, in the end, I haven't done it (yet)… However, since I always warmly welcome ideas for future posts from my readers, I've added it to my idea list!

## Add new comment