python计算两张图片的psnr
时间: 2023-07-07 12:36:31 浏览: 186
使用python和cv2进行图像拼接并计算PSNR
您可以使用Python的NumPy库来计算两张图片的峰值信噪比(PSNR)。
以下是一个简单的示例代码:
```python
import numpy as np
from PIL import Image
# 读取两张图片
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')
# 将图片转换为NumPy数组
arr1 = np.array(img1)
arr2 = np.array(img2)
# 计算MSE
mse = np.mean((arr1 - arr2) ** 2)
# 计算PSNR
psnr = 10 * np.log10((255 ** 2) / mse)
print('PSNR:', psnr)
```
在这个例子中,我们假设图片的文件名分别为image1.jpg和image2.jpg。首先,我们使用PIL库中的Image.open()方法读取两张图片,并将它们转换为NumPy数组。然后,我们计算两个数组之间的差值的平方,并计算平均值,得到均方误差(MSE)。接着,我们使用PSNR的公式,将MSE转换为峰值信噪比(PSNR)。
请注意,PSNR计算需要使用图像的最大像素值。在这个例子中,我们假设图像的最大像素值为255。如果你的图像最大像素值不同,请相应地修改代码。
阅读全文