I am trying to deblur an image using inverse filtering that was blurred using a 25×25 gaussian blur function with sigma = 15. I am extracting the blurred image from a .mat file, displaying it which works correctly.
Next I define my gaussian filter and then compute frequency reponse of the filter. To deblur the image, I divide blurred image by frequency response of the filter and take ifft.
The blurred image displays correctly in figure 1, but figure 2 which should display deblurred image displays all purple. I am trying to keep my code as simple and minimal as possible.
What I am doing wrong here? I will appreciate any hints or inputs
images = load('project_images.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(m_blur)./hf); %inverse filter
figure(2)imagesc(m_deblur) % Display deblurred image
Best Answer