MATLAB--数字图像处理 PSNR

时间:2023-01-12 15:01:39


PSNR

概念
psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。
PSNR的单位为dB。值越大,代表失真越少。

用处
用来评定图片的图像质量

PSNR值

高于40dB:说明图像质量极好(即非常接近原始图像),

30—40dB:通常表示图像质量是好的(即失真可以察觉但可以接受),

20—30dB:说明图像质量差;

低于20dB:图像不可接受

计算方法

MATLAB--数字图像处理  PSNR


MSE表示当前图像X和参考图像Y的均方误差(MeanSquare Error),H、W分别为图像的高度和宽度;n为每像素的比特数,一般取8,即像素灰阶数为256。

MATLAB实现

function PSNR = psnr(f1, f2)
%计算两幅图像的峰值信噪比
%f1、f2:两幅图像
k = 8;
%k为图像是表示地个像素点所用的二进制位数,即位深。
fmax = 2.^k - 1;
a = fmax.^2;
MSE =(double(im2uint8(f1)) -double( im2uint8(f2))).^2;
b = mean(mean(MSE));
PSNR = 10*log10(a/b);