Frequency-domain Filtering for Motion Deblurring
The degradation function of motion blur can be mathematically modeled in the frequency domain as follows:
H(u,v) =p (uaT+vb)sin[p(ua+vb)]e- jp(ua+vb), (1)
when uniform linear motion at a rate given by x t0( ) = at T/ and y t0( ) = bt T/ is assumed. (Note that H(u,v) = T if ua + vb = 0, a special case of H(u,v) in Eq. (1).)
(1) Simulate the motion burring effect using Equation (1), where the motion parameters are a = 0.1, b = 0.1 and T = 1. Then, add in some Gaussian noise to the blurred image; the Gaussian noise is of zero mean and variance of different value (e.g., 650, 65 and 0.0065) to simulate the following cases, respectively: βheavily corruptedβ, βmedium corruptedβ and βlightly corruptedβ (see Fig. 1 for an example).
(2) Implement your own (i) pseudo-inverse filter & (ii) Wiener filter, and apply them to the noise corrupted, blurred images as generated in (1). Show the corrupted, blurred images, and the restored images from the pseudo-inverse & Wiener filtering techniques, respectively.
(3) Compare the results obtained from two filtering techniques quantitively. Specifically, calculate the mean-squared error (MSE) and signal-to-noise ratio (SNR in dB) as defined below:
πβ1πβ1
1 2
πππΈ = β β[πΜ(π₯, π¦) β π(π₯, π¦)]
ππ
π₯=0 π¦=0
1 πππ (ππ ππ΅) = 10πππ
where π(π₯, π¦) is the original (noiseless & undegraded) image and πΜ(π₯, π¦) is the restored image.
IMPORTANT: DO NOT use MATLAB built-in functions imfilter() and deconvwnr() in this project. This project is designed for you to learn the filtering techniques in the frequency domain.
You shall hand in a project report describing your approach, experimental results and discussions, along with your implementation codes.
Fig. 1. An example of motion deblurring using the Wiener filtering technique. Note that the results from the inverse filtering technique are also shown for comparison.
2




