图片结构相似性及python核心代码实现

图片结构相似度比较公式:

 

"""X,Y是输入的两张图片 """
ndim = X.ndim
# ndimage filters need floating point data
X = X.astype(np.float64)
Y = Y.astype(np.float64)
NP = win_size ** ndim
cov_norm = NP / (NP - 1)
# compute (weighted) means
ux = filter_func(X, **filter_args)
uy = filter_func(Y, **filter_args)
# compute (weighted) variances and covariances
uxx = filter_func(X * X, **filter_args)
uyy = filter_func(Y * Y, **filter_args)
uxy = filter_func(X * Y, **filter_args)
vx = cov_norm * (uxx - ux * ux)
vy = cov_norm * (uyy - uy * uy)
vxy = cov_norm * (uxy - ux * uy)

R = data_range
C1 = (K1 * R) ** 2
C2 = (K2 * R) ** 2

A1, A2, B1, B2 = ((2 * ux * uy + C1,2 * vxy + C2,ux ** 2 + uy ** 2 + C1,vx + vy + C2))


D = B1 * B2
S = (A1 * A2) / D

# to avoid edge effects will ignore filter radius strip around edges
pad = (win_size - 1) // 2

# compute (weighted) mean of ssim
mssim = crop(S, pad).mean()

源码也可参见:https://github.com/scikit-image/scikit-image/blob/v0.15.0/skimage/measure/_structural_similarity.py 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值