# why the mse and psnr changing?

3 views (last 30 days)
Answered: Nagasai Bharat on 27 May 2021
I use this coding to find mse and psnr, why everytime i ran the code, the image's psnr and mse changing??
clear all
close all
clc
figure
imshow (imdata);
title ('Original image');
ref = rgb2gray (imdata);
figure
imshow (ref);
title ('gray image');
N = imnoise (ref, 'salt & pepper', 0.02);
figure
imshow (N);
title ('Noise Image');
error = immse (N, ref);
peaksnr = psnr (N, ref);
subplot (311); imshow(imdata); title ('oroginal image');
subplot (312); imshow(ref); title ('gray image');
subplot (313); imshow(N); title ('Noise Image');

Nagasai Bharat on 27 May 2021
Hi,
The change in the value of peaksnr and error is due the probabilistic nature of the imnoise function to add noise into the image.
From the documentation of imnoise the algorithm is used is:
To add 'salt & pepper' noise with density d to an image, imnoise first assigns each pixel a random probability value from a standard uniform distribution on the open interval (0, 1).
• For pixels with probability value in the range (0, d/2), the pixel value is set to 0. The number of pixels that are set to 0 is approximately d*numel(I)/2.
• For pixels with probability value in the range [d/2, d), the pixel value is set to the maximum value of the image data type. The number of pixels that are set to the maximum value is approximately d*numel(I)/2.
• For pixels with probability value in the range [d, 1), the pixel value is unchanged.

### Categories

Find more on Image Quality in Help Center and File Exchange

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by