如何用Jupiter notebook去计算图片的PSNR
时间: 2024-03-11 15:49:11 浏览: 62
计算PSNR的程序,matlab的!
5星 · 资源好评率100%
要计算图像的 PSNR(Peak Signal to Noise Ratio),可以使用 Python 的 OpenCV 库。以下是一个简单的示例代码,可以用于计算两张图像之间的 PSNR 值。
首先,需要安装 OpenCV 库,可以使用以下命令进行安装:
```python
!pip install opencv-python
```
然后,可以使用以下代码计算两张图像之间的 PSNR 值:
```python
import cv2
import numpy as np
# 读取原始图像和压缩后的图像
img1 = cv2.imread('original.png')
img2 = cv2.imread('compressed.png')
# 计算 MSE(Mean Squared Error)
mse = np.mean((img1 - img2) ** 2)
# 如果 MSE 为零,则图像完全相同,PSNR 为无穷大
if mse == 0:
psnr = float('inf')
else:
# 计算 PSNR
max_pixel_value = 255.0
psnr = 20 * np.log10(max_pixel_value / np.sqrt(mse))
print(f"PSNR: {psnr} dB")
```
这个示例代码中,我们首先使用 OpenCV 库读取原始图像和压缩后的图像。然后,我们计算 MSE(Mean Squared Error),这是衡量两张图像之间差异的一种常用指标。最后,我们使用 MSE 计算 PSNR 值。注意,我们使用的是 255 作为最大像素值,因为这是常见的灰度图像和彩色图像的最大值。
阅读全文