比较两幅图像的结构相似性(structure similarity),主要从三个方面进行比较:两度(luminance) I ( x , y ) I(x,y) I(x,y), 对比度(constrast) c ( x , y ) c(x,y) c(x,y)和结构(structure) s ( x , y ) s(x,y) s(x,y),最终 x x x和 y y y的相似度是这三者的函数:
S ( x , y ) = f ( l ( x , y ) , c ( x , y ) , s ( x , y ) ) S(x,y)=f\left(l(x,y), c(x,y), s(x,y)\right) S(x,y)=f(l(x,y),c(x,y),s(x,y))
这三个度量相似性的公式遵循以下三个原则:
如果一个图像有 n n n个像素点,每个像素的像素值为 x i x_i xi,那么该图像的平均亮度为:
μ x = 1 n ∑ i = 1 N x i \mu_x=\frac{1}{n}\sum_{i=1}^Nx_i μx=n1i=1∑Nxi
可以用以下公式计算两幅图 x x x和 y y y的亮度相似度:
l ( x , y ) = 2 μ x μ y + C 1 μ x 2 + μ y 2 + C 1 l(x,y) = \frac{2\mu_x\mu_y+C_1}{\mu_x^2+\mu_y^2+C_1} l(x,y)=μx2+μy2+C12μxμy+C1
对比度即图像明暗的变化剧烈程度,也就是像素值的标准差,其计算公式为:
σ x = ( 1 N − 1 ∑ i = 1 n ( x i − μ x ) 2 ) 1 / 2 \sigma_x=\left(\frac{1}{N-1}\sum_{i=1}^n (x_i - \mu_x)^{2} \right)^{1/2} σx=(N−11i=1∑n(xi−μx)2)1/2
对比度相似度的计算公式为:
l ( x , y ) = 2 σ x σ y + C 1 σ x 2 + σ y 2 + C 1 l(x,y) = \frac{2\sigma_x\sigma_y+C_1}{\sigma_x^2+\sigma_y^2+C_1} l(x,y)=σx2+σy2+C12σxσy+C1
对一幅图像而言,其亮度和对比度均为标量,而其结构显然无法用一个标量表示,二是应该用该图所有像素组成的向量来表示,同时研究结构相似度是应排除亮度和对比度的影响,即排除均值和标准差的影响,即研究归一化的两个向量 ( x − μ x ) / σ x (x-\mu_x)/\sigma_x (x−μx)/σx和 ( y − μ y ) / σ y (y-\mu_y)/\sigma_y (y−μy)/σy之间的关系,两个向量的模长为 N − 1 \sqrt{N-1} N−1因此他们的余弦相似度为:
s ( x , y ) = ( 1 N − 1 x − μ x σ x ) ( 1 N − 1 y − μ y σ y ) s(x,y)=\left(\frac{1}{\sqrt{N-1}} \frac{x-\mu_x}{\sigma_x}\right)\left(\frac{1}{\sqrt{N-1}} \frac{y-\mu_y}{\sigma_y}\right) s(x,y)=(N−11σxx−μx)(N−11σyy−μy)
s ( x , y ) = 1 σ x σ y ( 1 N − 1 ∑ i = 1 N ( x i − μ x ) ( y i − μ y ) ) s(x,y)= \frac{1}{\sigma_x\sigma_y}\left(\frac{1}{N-1}\sum_{i=1}^N(x_i-\mu_x)(y_i - \mu_y)\right) s(x,y)=σxσy1(N−11i=1∑N(xi−μx)(yi−μy))
上式中后一部分为协方差,结构相似度定义为:
s ( x , y ) = σ x y σ x σ y s(x,y)=\frac{\sigma_{xy}}{\sigma_x\sigma_y} s(x,y)=σxσyσxy
最终SSIM是计算公式为:
SSIM ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) \operatorname{SSIM}(\mathbf{x}, \mathbf{y})=\frac{\left(2 \mu_{x} \mu_{y}+C_{1}\right)\left(2 \sigma_{x y}+C_{2}\right)}{\left(\mu_{x}^{2}+\mu_{y}^{2}+C_{1}\right)\left(\sigma_{x}^{2}+\sigma_{y}^{2}+C_{2}\right)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)