峰值信噪比PSNR~均方差MSE matlab实现

峰值信噪比PSNR~均方差MSE matlab实现

峰值信噪比:PSNR用来评价一幅图像压缩后和原图像相比质量的好坏。PSNR越高,压缩后失真越小,效果越好。均方差用MSE表示,均方差值越小越好。均方差是各数据偏离真实值的距离平方和的平均数。
简单的介绍一下,下面是代码实现;
MSE:
%out1是我们的输入
%out2是我们的输出
方法一:在malab有直接的内置函数mse,简单粗暴!
实例:MSE=mse(out1-out2);
方法二:我们根据MSE公式来计算:

[h w]=size(out1);%读取输入数据的长宽。求取两张图片的的大小是要相同的
MES=sum(sum((out1-out2).^2))/(h*w);

方法一和二结果都是一样的。
求取PSNR:
直接代入公式:

B=8;%每个像素的二进制位数
MAX=2^B-1;
PSNR=10*log10(MAX/MES)); 

以上呢是我自己用过的,当然还有不同的实现方法,如有错欢迎指正批评。
有关于PSNR,MES的数学公式我就不再这罗列出来了感兴趣的可以搜索一下啊。

你可能感兴趣的:(matlab,计算机视觉)