Filter löschen
Filter löschen

Filter and measure MSE, PSNR, SNR of single image

23 Ansichten (letzte 30 Tage)
iza
iza am 20 Jan. 2015
Kommentiert: ghada sandoub am 15 Feb. 2021
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
fontSize = 22;
%Load single MRI image
I = imread('IM_00042.tif');
% addition of graininess (i.e. noise)
I_noise = imnoise(I, 'gaussian', 0.09);
% the average of 3^2, or 9 values(filters the multidimensional array A with the multidimensional filter h)
h = ones(3,3) / 3^2;
I2 = imfilter(I_noise,h);
% Measure signal-to-noise ratio
img=I;
img=double(img(:));
ima=max(img(:));
imi=min(img(:));
mse=std(img(:));
snr=20*log10((ima-imi)./mse)
% Measure Peak SNR
[peaksnr, snr] = psnr(I_noise, I);
fprintf('\n The Peak-SNR value is %0.4f', peaksnr);
fprintf('\n The SNR value is %0.4f \n', snr);
fprintf('\n The MSE value is %0.4f \n', mse);
%Plot original & filtered figure
subplot(1,2,1), imshow(I_noise), title('Original image')
subplot(1,2,2), imshow(I2), title('Filtered image')
text(size(I,2),size(I,1)+15, ...
'Gaussian = 0.09', ...
'FontSize',10,'HorizontalAlignment','right');
  4 Kommentare
Syed Zenith Rhyhan
Syed Zenith Rhyhan am 17 Sep. 2018
Thanks for the solution
Anirudh Balaji
Anirudh Balaji am 25 Jan. 2021
@Image Analyst I am trying to estimate SNR of a noisy and reconstructed MR image and there are two methods that i find online.
One where I choose a single image, select ROI-1 of a specific dimension inside the object and then choose ROI-2 of same dimension of the backgorund in the image, and then SNR = [Mean(ROI-1 minus ROI-2)/std(ROI2)].
The other method is simply use reconstructed as reference image, use noisy image as the other and use [peaksnr, snr] = psnr(Image, Ref) to estimate the SNR between two images.
could you please give some suggestion on when to use single image method and when to use multi image method? my ultimate goal is to find if the reconstructed image has higher SNR than noisy image.
Thanks in advance

Melden Sie sich an, um zu kommentieren.

Antworten (3)

iza
iza am 21 Jan. 2015
Any comment on this?..
  5 Kommentare
Image Analyst
Image Analyst am 12 Mai 2020
There are functions immse() and psnr() in the Image Processing Toolbox.
ghada sandoub
ghada sandoub am 15 Feb. 2021
are these functions work with the colour image? i.e. can these functions estimate the MSE and PSNR for the whole RGB image or we have to use these functions separately for each channel of the image?

Melden Sie sich an, um zu kommentieren.


sam alsalihy
sam alsalihy am 15 Jul. 2017
noise image not effect on the result
why?

Hasan Deen
Hasan Deen am 5 Mär. 2019
thank you

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by