两种常用的全参考图像质量评价指标--PSNR和SSIM

原创 2015年11月18日 16:26:57

1.PSNR(Peak Signal to Noise Ratio)峰值信噪比:

MSE表示当前图像X和参考图像Y的均方误差(Mean Square Error),H、W分别为图像的高度和宽度;

MSE=1H×Wi=1Hj=1W(X(i,j)Y(i,j))2
PSNR的单位是dB,数值越大表示失真越小。n为每像素的比特数,一般的灰度图像取8,即像素灰阶数为256.
PSNR=10log10((2n1)2MSE)
PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。

Matlab的函数代码实现如下:

function [ out ] = psnr( X,Y )
[ m,n ] = size( X );
mse = sum(( double(X(:)) - double(Y(:)) ).^2);
mse = mse/(m*n);
out = 10*log10((255*255)/mse);
end

2.SSIM(Structural Similarity)结构相似性:

SSIM(Structural Similarity)结构相似性

μXμY分别表示图像X和Y的均值,σXσY分别表示图像X和Y的方差,σXY表示图像X和Y的协方差,即

μX=1H×Wi=1Hj=1WX(i,j)

σX=(1H×W1i=1Hj=1W(X(i,j)μX)2)12

σXY=1H×W1i=1Hj=1W(X(i,j)μX)(Y(i,j)μY)

SSIM分别从亮度、对比度、结构三方面度量图像相似性。
l(X,Y)=2μXμY+C1μ2X+μ2Y+C1

c(X,Y)=2σXσY+C2σ2X+σ2Y+C2

s(X,Y)=σXY+C3σXσY+C3

C1C2C3为常数,为了避免分母为0的情况,通常取C1=(K1L)2, C2=(K2L)2, C3=C22, 一般地K1=0.01, K2=0.03, L=255. 则
SSIM(X,Y)=l(X,Y)c(X,Y)s(X,Y)
SSIM取值范围[0,1],值越大,表示图像失真越小.
SSIM的特殊形式如下:
SSIM(X,Y)=(2μXμY+C1)(2σXY+C2)(μ2X+μ2Y+C1)(σ2X+σ2Y+C2)


MSSIM(Mean Structural Similarity )平均结构相似性

在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用加权计算每一窗口的均值、方差以及协方差,权值wij满足ijwij=1,通常采用高斯核,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构相似性MSSIM:

μX=i=1Hj=1WwijX(i,j)

σX=(i=1Hj=1Wwij(X(i,j)μX))12

σXY=i=1Hj=1Wwij(X(i,j)μX)(Y(i,j)μY)

MSSIM=1Nk=1NSSIM(xk,yk)

Matlab的函数实现代码如下:

function [mssim, ssim_map] = ssim_index(img1, img2, K, window, L)
C1 = (K(1)*L)^2;
C2 = (K(2)*L)^2;
window = window/sum(sum(window));
img1 = double(img1);
img2 = double(img2);

mu1   = filter2(window, img1, 'valid');
mu2   = filter2(window, img2, 'valid');
mu1_sq = mu1.*mu1;
mu2_sq = mu2.*mu2;
mu1_mu2 = mu1.*mu2;
sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq;
sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq;
sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2;

if (C1 > 0 & C2 > 0)
   ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2));
else
   numerator1 = 2*mu1_mu2 + C1;
   numerator2 = 2*sigma12 + C2;
   denominator1 = mu1_sq + mu2_sq + C1;
   denominator2 = sigma1_sq + sigma2_sq + C2;
   ssim_map = ones(size(mu1));
   index = (denominator1.*denominator2 > 0);
   ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index));
   index = (denominator1 ~= 0) & (denominator2 == 0);
   ssim_map(index) = numerator1(index)./denominator1(index);
end

mssim = mean2(ssim_map);

return
版权声明:本文为博主原创文章,未经博主允许不得转载。

图像处理结果的度量 —— SNR、PSNR、SSIM

衡量两幅图像的相似度: SNR/PSNR SSIM 1. SNR vs PSNRabout SNR 和 PSNR2. SSIMSSIM(structural similarity index),结构...
  • lanchunhui
  • lanchunhui
  • 2016年11月02日 10:36
  • 1871

全参考视频质量评价方法(PSNR,SSIM)以及相关数据库

最常用的全参考视频质量评价方法有以下2种: PSNR(峰值信噪比):用得最多,但是其值不能很好地反映人眼主观感受。一般取值范围:20-40.值越大,视频质量越好。 SSIM(结构相似性):计算稍复杂,...
  • leixiaohua1020
  • leixiaohua1020
  • 2013年09月14日 21:20
  • 26546

PSNR和SSIM-matlab实现

  • 2015年08月28日 16:39
  • 3KB
  • 下载

图像质量的客观评估指标PSNR与SSIM

图像质量的客观评估指标PSNR与SSIM PSNR SSIM 代码 参考文献 1:PSNRPSNR是最为常用的图像质量评估指标: 其中K为图像对应二进制位数,一般为8。MSE为均方误差,计算...
  • Lu597203933
  • Lu597203933
  • 2016年03月30日 21:48
  • 8422

解析PSNR和SSIM

PSNR(Peak Signal to Noise Ratio)峰值信噪比,一种全参考的图像质量评价指标。 其中,MSE表示当前图像X和参考图像Y的均方误差(Mean Square Er...
  • xiaxiazls
  • xiaxiazls
  • 2015年08月24日 16:03
  • 20798

关于视频质量的评价标准PSNR

为了进行视频处理,有必要对测量原始信号与处理信号的差别制定客观评价标准。这非常重要,比如在视频编码应用中必须测量由于压缩引起的失真。这样的理想测度应该与两个视频序列之间观察到的差别有很好的相关性。不过...
  • vbLittleBoy
  • vbLittleBoy
  • 2012年10月07日 10:15
  • 4373

图像压缩质量评价PSNR和SSIM

全参考客观视频质量评价方法是指把原始参考视频与失真视频在每一个对应帧中的每一个对应像素之问进行比较。准确的讲,这种方法得到的并不是真正的视频质量,而是失真视频相对于原始视频的相似程度或保真程度。常用的...
  • u014260892
  • u014260892
  • 2015年03月17日 16:48
  • 2234

官方PSNR和SSIM---matlab实现

  • 2015年12月01日 13:32
  • 7KB
  • 下载

官方的PSNR和SSIM代码

之前自己搞了好久的评价图像质量的代码,但是最终还是需要一个官方的标准,今天终于发现一个官方的版本了,大家可以去这里下载! http://foulard.ece.cornell.edu/gaubatz/...
  • xiaohaijiejie
  • xiaohaijiejie
  • 2015年11月20日 21:42
  • 1838

图像处理PSNR及其计算(OpenCV和matlab实现)

图像PSNR及其计算OpenCV和matlab实现 PSNR的概念 PSNR编程实现 matlab实现 第一种实现方法 第二种实现方法 OpenCV实现图像PSNR及其计算(OpenCV和matlab...
  • laoxuan2011
  • laoxuan2011
  • 2016年05月27日 19:42
  • 7819
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两种常用的全参考图像质量评价指标--PSNR和SSIM
举报原因:
原因补充:

(最多只允许输入30个字)