⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psnr.m

📁 基于dct的数字图像水印技术的matlab源代码。大家共享
💻 M
字号:
%Name:		Chris Shoemaker
%Course:	EER-280 - Digital Watermarking
%Project: 	Calculates the PSNR (Peak Signal to Noise Ratio)
%            of images A and A', both of size MxN

%function [A] = psnr(image,image_prime,M,N)

    % convert to doubles
 %   image=double(image);
  %  image_prime=double(image_prime);

    % avoid divide by zero nastiness
    %if ((sum(sum(image-image_prime))) == 0)    
   %    error('Input vectors must not be identical')
   %else
   %     psnr_num=M*N*max(max(image.^2));                % calculate numerator
    %    psnr_den=sum(sum((image-image_prime).^2));      % calculate denominator   
     %   A=psnr_num/psnr_den;                            % calculate PSNR
     %end

%return

function dPSNR = psnr(ImageA,ImageB)

if (size(ImageA,1) ~= size(ImageB,1)) or (size(ImageA,2) ~= size(ImageB,2))
    error('ImageA <> ImageB');
    dPSNR = 0;
    return ;
end

M = size(ImageA,1);
N = size(ImageA,2);
    
d = 0 ;
for i = 1:M
    for j = 1:N
        d = d + (ImageA(i,j) - ImageB(i,j)).^2 ;
    end
end
    
dPSNR = -10*log10(d/(255*255*M*N)) ;

return

⌨️ 快捷键说明

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