I needed to plot Histograms (or) Loss Information for original image and after restoration of blur image
Afficher commentaires plus anciens
%% Input Image
Ioriginal = imread('greyface.jpg');
imshow(Ioriginal)
title('Original Image')
% % Restore Motion Blur Without Noise
PSF = fspecial('motion',21,11);
Idouble = im2double(Ioriginal);
blurred = imfilter(Idouble,PSF,'conv','circular');
imshow(blurred)
title('Blurred Image')
%%Restoring blur image
wnr1 = deconvwnr(blurred,PSF);
imshow(wnr1)
title('Restored Blurred Image')
%%Restore Motion Blur and Gaussian Noise
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred,'gaussian',noise_mean,noise_var);
imshow(blurred_noisy)
title('Blurred and Noisy Image')
wnr2 = deconvwnr(blurred_noisy,PSF);
imshow(wnr2)
title('Restoration of Blurred Noisy Image (NSR = 0)')
signal_var = var(Idouble(:));
NSR = noise_var / signal_var;
wnr3 = deconvwnr(blurred_noisy,PSF,NSR);
imshow(wnr3)
title('Restoration of Blurred Noisy Image (Estimated NSR)')
1 commentaire
Kartikeya
le 20 Oct 2023
Réponses (1)
Image Analyst
le 20 Oct 2023
Why not use imabsdiff to get the difference between the original image and the restored image and then take the histogram of that difference image?
diffImage = imabsdiff(Ioriginal, wnr1);
histogram(diffImage);
4 commentaires
Kartikeya
le 20 Oct 2023
Image Analyst
le 20 Oct 2023
So make them both the same class, like uint8 or double.
Kartikeya
le 21 Oct 2023
Ioriginal = imread('cameraman.tif');
% Restore Motion Blur Without Noise
PSF = fspecial('motion',21,11);
Idouble = im2double(Ioriginal);
blurred = imfilter(Idouble,PSF,'conv','circular');
% Restoring blur image
wnr1 = deconvwnr(blurred,PSF);
% assuming the abs difference is the thing you actually want
err = imabsdiff(Idouble,wnr1);
histogram(err)
% Restore Motion Blur and Gaussian Noise
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred,'gaussian',noise_mean,noise_var);
signal_var = var(Idouble(:));
NSR = noise_var / signal_var;
wnr3 = deconvwnr(blurred_noisy,PSF,NSR);
% assuming the abs difference is the thing you actually want
err = imabsdiff(Idouble,wnr3);
histogram(err)
Catégories
En savoir plus sur Image Segmentation and Analysis dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







