SSIM可以抵消MSE无法衡量图像结构相似性的缺陷。
SSIM定义:
其中:α、β、γ均大于0
上式中,μ_x,μ_y为图像块所有像素;δ_x,δ_y为图像像素值的标准差;δ_xy为x与y的协方差;C_1,C_2,C_3为常数,为避免分母为0时带来的系统错误。
在实际应用中,α=β=γ=1,C_3= 0.5C_2,则SSIM表达式为:
SSIM性质
- SSIM具有对称性。即SSIM(x,y)=SSIM(y,x)
- SSIM是一个0到1之间的数,SSIM越大,两图像间差异越小。
tensorflow实现:
tf.image.ssim(img1,img2,max_val)
img1:第一批图片。
img2:第二批图片。
max_val:图像的动态范围(即最大允许值和最小允许值之间的差值)。
注意:真正的SSIM仅在灰度上定义。 此函数不执行任何颜色空间转换。 (如果输入已经是YUV,那么它将计算YUV SSIM平均值。)
使用python实现
import tensorf