SSIM python代码
时间: 2023-11-09 21:03:40 浏览: 243
好的,以下是计算结构相似性指标(SSIM)的Python代码:
```python
import numpy as np
import cv2
def ssim(img1, img2):
# 计算均值、方差和协方差
mu1, mu2 = np.mean(img1), np.mean(img2)
sigma1, sigma2 = np.var(img1), np.var(img2)
sigma12 = np.cov(img1.flatten(), img2.flatten())[0][1]
# 定义常数
k1, k2, L = 0.01, 0.03, 255
# 计算SSIM指数
C1 = (k1 * L) ** 2
C2 = (k2 * L) ** 2
C3 = C2 / 2
ssim = ((2 * mu1 * mu2 + C1) * (2 * sigma12 + C2)) / ((mu1 ** 2 + mu2 ** 2 + C1) * (sigma1 + sigma2 + C2))
return ssim
# 读取图片
img1 = cv2.imread('img1.jpg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('img2.jpg', cv2.IMREAD_GRAYSCALE)
# 计算SSIM指数
ssim_index = ssim(img1, img2)
print("SSIM指数为:", ssim_index)
```
其中,`img1`和`img2`分别为待比较的两张图片,可以使用OpenCV库中的`cv2.imread()`函数读取。计算SSIM指数的过程中,需要先计算均值、方差和协方差,然后根据公式计算SSIM指数。
阅读全文