psnr.m

来自「用matlab实现的DCT水印处理」· M 代码 · 共 31 行

M
31
字号
function y=psnr(im1,im2)
%------------------------计算峰值信噪比程序———————————————-----
%  ininput ------ im1 : the original image matrix
%                 im2 : the modified image matrix   
%  output  ------ y   :  the PSNR between the input images
%------------------------NOTES---------------------------------------------
% Written by : zj  - 01/05/07
% Contact    : zxxyj0506@sina.com
% CpoyRight@2007-2010
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (size(im1))~=(size(im2))
    error('错误:两个输入图象的大小不一致');
end
% if ~isrgb(im1)&&~isrgb(im2)
    [m,n]=size(im1);
    A=double(im1);
    B=double(im2);
%     sum1=m.*n.*max(max(A.^2));
    sum1=m.*n.*255.*255;
    sum2=sum(sum((A-B).^2));
if  sum2==0
    sum2=1;
end
y=10*log10(sum1/sum2);
% else 
%     error('错误:输入图象为彩色图象,应为 uint8  图像');
% end
    
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?