I blurred a grayscale image using an average filter and then I am supposed to deblur using an Inverse filter using Constrained Division. Is there a better way to do this?
5 views (last 30 days)
Show older comments
Hello I need some help. I have to blur a grayscale image using a 5x5 blurring filter. Then I need to attempt to de-blur the result using inverse filtering with constrained division.The error that pops up is this:
Error using ./
Complex integer arithmetic is not supported.
Error in test2 (line 12)
fbw = fftshift(fft2(blur))./bw;
When I blur the image using a butterworth filter it works just fine yet when I blur using the average filter my code won't work. Below is my attempt:
clear
I = imread('buffalo.png');
H = fspecial('average',[5 5]) ;
blurred=imfilter(I,H);
blur=im2uint8(mat2gray((blurred)));
imshow(blur)
d = 0.01;
bw = blurred;
bw(find(bw<d)) = 1;
fbw = fftshift(fft2(blur))./bw;
ba = abs(ifft2(fbw));
unb01 = im2uint8(mat2gray(ba));
0 Comments
Accepted Answer
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!