python 计算psnr和ssim
时间: 2023-07-27 11:03:06 浏览: 204
SSIM和PSNR的python代码
Python计算图像的PSNR(峰值信噪比)和SSIM(结构相似度指标)可以通过使用一些图像处理库来实现。以下是使用`opencv-python`库实现PSNR和SSIM计算的示例代码。
首先,确保已经安装了`opencv-python`库。可以使用以下命令进行安装:
```
pip install opencv-python
```
接下来,我们将使用以下代码计算图像的PSNR和SSIM值:
```python
import cv2
import numpy as np
from skimage.metrics import structural_similarity as ssim
def calculate_psnr(img1, img2):
mse = np.mean((img1 - img2) ** 2)
if mse == 0:
return float('inf')
PIXEL_MAX = 255.0
psnr = 20 * np.log10(PIXEL_MAX / np.sqrt(mse))
return psnr
def calculate_ssim(img1, img2):
return ssim(img1, img2, multichannel=True)
# 读取图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 将图像转换为灰度图像
gray_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 计算PSNR值
psnr = calculate_psnr(gray_img1, gray_img2)
print("PSNR:", psnr)
# 计算SSIM值
ssim = calculate_ssim(gray_img1, gray_img2)
print("SSIM:", ssim)
```
请确保将`image1.jpg`和`image2.jpg`替换为实际图像的文件名。上述代码将对两个输入图像进行PSNR和SSIM计算,并输出结果。
阅读全文