psnr 计算

PSNRPeak Signal to Noise Ratio的缩写,峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。

                    

 

PSNR计算公式如下:


 

 

                       

8bits表示法中,peak的最大值为255MSEMean Square Error(均方误差);I(角标n):指原始影像第npixel值;P(角标n):指经处理后的影像第npixel值。

              

PSNR的单位为dB。所以PSNR值越大,就代表失真越少。

                               

 

Matlab实现:

                         

% func——计算两幅图像的psnr

function result=psnr(in1,in2)

 

in1=imread('feature.jpg');

in2=imread('landmark.jpg');

z=mse(in1,in2);

result=10*log10(255.^2/z);

 

function z=mse(x,y)

x=double(x);

y=double(y);

[m,n]=size(x);

z=0;

for i=1:m

    for j=1:n

        z=z+(x(i,j)-y(i,j)).^2;

    end

end

z=z/(m*n);

posted @ 2010-11-08 14:46  java消费保护  阅读(429)  评论(0编辑  收藏  举报