%读入1幅512*512的灰度图像,随即选取1000个像素,将其置0,计算置0后图像与原始图像间的峰值信噪比
% 读入图像函数- imread()
% 随即生成函数- randperm()
% 自定义PSNR函数
im = imread('11-Mary.bmp');
[M,N] = size(im);
P = randperm(M*N);
P = P(1:1000);
im1 = im;
im1(P) = 0;
subplot(121)
imshow(im)
subplot(122)
imshow(im1)
%
psnr = PSNR(im,im1);
fprintf('PSNR = %.2f dB\n',psnr);
function psnr = PSNR(x,y)
x = double(x);
y = double(y);
cnt = length(x(:));
mse = sum((x(:)-y(:)).^2)/cnt;
psnr = 10*log10(255^2/mse);
end