www.pudn.com > residues.rar > SNR.m, change:2010-03-21,size:1998b


function [SNR,PSNR]=mySNR(angorgRGB,angfilRGB)%%angorg是原始图像,angfil是带有噪声的图像 
%angorg is the original image;angfil is with gaussian noise. 
[M,N]=size(angorgRGB); 
angorgRGB=angorgRGB+255; 
angfilRGB=angfilRGB+255; 
MSE=0;%%MSE是原图像与处理图像之间均方误差 
for i=1:1:M 
    for j=1:1:N 
        MSE=MSE+(angorgRGB(i,j)-angfilRGB(i,j))^2; 
    end 
end 
MSE=MSE/(M*N); 
%%%%%%%%%%%%求噪声的功率%%%%%%%%%%% 
 
%%%%%%%%%%%%求信号的功率%%%%%%%%%%% 
sigmasqu=0; 
for i=1:1:M 
    for j=1:1:N 
        sigmasqu=sigmasqu+angorgRGB(i,j)^2; 
    end 
end 
sigmasqu=sigmasqu/(M*N); 
%%%%%%%%%%%%求信号的功率%%%%%%%%%%% 
 
%%%%%%%%%%%%求信噪比%%%%%%%%%%% 
SNR=10*log10(sigmasqu/MSE); 
%%%%%%%%%%%%求信噪比%%%%%%%%%%% 
 
%%%%%%%%%%%%峰值信噪比%%%%%%%%%%%% 
PSNR=10*log10(255^2/MSE); 
%%说明部分 
%峰值信噪比(PSNR),一种评价图像的客观标准。它具有局限性,PSNR是“PeakSignaltoNoiseRatio”的缩写。 
%peak的中文意思是顶点。而radio的意思是比率或比列的。整个意思就是到达噪音比率的顶点信号,psnr是一般是用于最大 
%值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,输出的影像通常都会有某种程度与原始影像?一样。 
%为了衡量经过处理后的影像品质,我们通常会参考PSNR值来认定某个处理程序够不够令人满意。它是原图像与处理图像之间 
%均方误差相对于(2^n-1)^2的对数值(信号最大值的平方,n是每个采样值的比特数),它的单位是dB。 
%公式如下:PSNR=10*log10((2^n-1)^2/MSE) 其中,MSE是原图像与处理图像之间均方误差。 
%Peak就是指8bits表示法的最大值255。MSE指MeanSquareError,I(角标n)指原始影像第n个pixel值,P(角标n)指经处 
%理后的影像第n个pixel值。PSNR的单位为dB。所以PSNR值越大,就代表失真越少。 
%PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR的分数无法和人眼看到的视觉品 
%%质完全一致,有可能PSNR较高者看起来反而比PSNR较低者差。这是因为人眼的视觉对于误差的敏感度并不是绝对的, 
%其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的 
%敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响)。