A bit of data exploration shows that you have quite an outlier in your image:
figure(3),clf(3) histogram(m_deblur) set(gca,'YScale','log') axis([-10 140 0.1 max(ylim)])
Once you replace that with a 0, the automatic scaling should work as expected again. In the code below I went a bit further and set the caxis value manually to something that felt about right.
figure(2) imagesc(m_deblur) % Display deblurred image caxis([-0.15 0.15])
So in conlusion: this image is not ready yet.
The reason for this is that you didn't put the blurred image in the Fourier domain yet, so the division doesn't make a lot of sense.
images = load('mandrill_blurred.mat'); % Load the mat file containing images
m_blur = images.mandrill_blurred; % Extract the first image
imagesc(m_blur); % display the blurred image
h = fspecial('gaussian',[25 25],15); % 25x25 Gaussian blur function with sigma = 15
hf = fft2(h,size(m_blur,1),size(m_blur,2));
m_deblur = real(ifft2(fft2(m_blur)./hf)); %inverse filter
% ^^^^^ ^ ^
% you forgot this
figure(2)
imagesc(m_deblur) % Display deblurred image
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Explore similar technical troubleshooting questions and verified MATLAB solutions: