deblurring an image with deconvwnr

4 views (last 30 days)
Eirik Kvernevik
Eirik Kvernevik on 6 Mar 2021
Edited: Eirik Kvernevik on 6 Mar 2021
I am trying to deblur a motion-blur with deconvwnr , but the results is very poor
hers is the code :
% %first step: motion blurring
Len = 20; % linear motion of the camera given in pxels
Theta = 135; %angle of the motion given in conter-clockwise direction
h = fspecial('motion',Len,Theta);
f_blurred = imfilter(f,h,'conv','replicate');
% using deconvwnr for deblurring :
NSR = 0; %no noise
deblurred = deconvwnr(f_blurred,h,0);
the below image is the result, as you see it is extremely corrupted, why is that ?
when I changed the noise-parameter slightly it became a bit more visible, but still poor. My image is only blurred, no noise, shouldnt wiener work much better with this simple type of motion blur?
Her is the original image :
Edit: I think I have understood why it look so corrupted. When we set the noiseparameter to zero, the wiener filter is identical to the inverse filter, and since we divide by numbers very close to zero these values blows up and it corrupts the rest of the image.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!