why the mse and psnr changing?

1 次查看(过去 30 天)
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
imdata = imread ('/Users/hp/desktop/FYP IMAGE/blue/160blue.jpg')
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
Nagasai Bharat 2021-5-27
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.

更多回答(0 个)

标签

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by