psnr和ssim的代码实现
时间: 2024-12-24 09:29:13 浏览: 10
PSNR (Peak Signal-to-Noise Ratio) 和 SSIM (Structural Similarity Index Measure) 都是用来评估图像质量损失的指标。下面是这两种指标的基本概念及简单的Python代码示例:
1. **PSNR** - 计算两个图像之间像素级别的差异,数值越高表示图像质量越好。
```python
import numpy as np
def psnr(img1, img2):
mse = np.mean((img1.astype('float') - img2.astype('float')) ** 2)
if mse == 0:
return float('inf')
max_pixel_value = 255.0
return 10 * np.log10(max_pixel_value ** 2 / mse)
# 使用示例
img1 = ... # 你的原始图像
img2 = ... # 修复后的图像
psnr_val = psnr(img1, img2)
```
2. **SSIM** - 结构相似度指数,考虑了亮度、对比度和结构三个方面的图像相似度,返回值范围在-1到1之间,接近1表示两者越像。
```python
from skimage.metrics import ssim
def ssim_score(img1, img2):
return ssim(img1, img2, multichannel=True)
# 使用示例
img1 = ... # 原始图像
img2 = ... # 比较图像
ssim_val = ssim_score(img1, img2)
```
注意:上述代码需要安装`skimage`库(可以使用`pip install scikit-image`命令),并且输入的图像应该是灰度图或多通道图。
阅读全文