Deblurring an Image using inverse filtering

I am trying to deblur an image using inverse filtering that was blurred using a 25x25 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 imagesm_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

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

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.

SEE COMPLETE ANSWER CLICK THE LINK

--

--

--

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Graphormer — the generalization of the transformer architecture to graphs

How to Auto-Detect Errors in a Dataset

Machine Learning Project 13 — Using Kernel Support Vector Machine

Improving prediction test accuracy scores by using CNN for Fashion-MNIST with tf.Keras

New Applications for Google’s BERT In Quantitative Trading Algorithms

Click-bait article Classification and Summarization

Artificiality Bites 💊 Issue #44

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Technical Source

Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

More from Medium

Subtract average image from a series of images

It's Just a Network of neurons!

The Basic Classification of Thyroid Tumors on UltraSound Images using Deep Learning Methods

Creating a Baseline Model for MNIST Dataset