deconvolution.py sample shows how DFT can be used to perform Weiner deconvolution of an image with user-defined point spread function (PSF). First I tested my implementation on an image from Topaz InFocus examples. The result (on the image bellow) was quite impressive, but the low level of noise and the simplicity of PSF suggest that the initial image might have been distorted manually.
Then I decided to try my program on a couple of crops from shots I made with a compact digital camera. I intentionally shook the camera and applied wrong focus settings to get blurry images. See results below. My aim was to show that deconvolution can sometimes transform unreadable text into readable.
Note that the user is expected to manually tune the PSF for proper image restoration. Parameter presets for images shown here can be found in the sample's doc string.