Skip to content
All projects
EEL 5820 Image Processing2025

Wiener deconvolution, and how much the assumption matters

Restoring blurred images from scratch, then shifting the assumed blur angle by two degrees to measure how much that assumption is worth.

MATLABDeconvolutionFourierInverse problems

The question

Deblurring is an inverse problem, and inverse problems amplify noise. A naive inverse filter divides by the blur transfer function, which explodes wherever that function is near zero. The Wiener filter regularises this using the signal to noise ratio, so the answer depends on a quantity you have to assume.

Approach

Implemented the filter directly with fspecial and psf2otf rather than calling a library routine, across average, Gaussian and motion blur, sweeping the assumed SNR over four orders of magnitude. Then two stress tests: sequential deblurring of average blur as two motion deblurs at right angles, and a deliberate mismatch where the filter is told the motion angle is 134 or 136 degrees when the truth is 135.

Original, Gaussian blur, and the Wiener restoration.
PSNR and SSIM for every blur type, noise setting and restoration mode in one table. The mismatch rows are the interesting ones: a two degree error in the assumed motion angle is visible in both metrics.

Outcome

A clear picture of how restoration quality depends on an assumption you cannot measure, and how a two degree error in the assumed blur direction visibly degrades the result.

What it taught me

This is the project that made regularisation intuitive rather than formal. Every prior is a claim about the world, and the Wiener SNR term makes that unusually explicit: change your belief about the noise and you change the answer.

More output

Average blur at 9 by 9: blurred input, direct restoration and sequential restoration, all at a noise to signal setting of 0.0001.
Motion blur at 33 degrees and its restoration.