python 计算两幅图像的峰值信噪比
时间: 2023-09-13 15:07:27 浏览: 161
用python实现求不同分辨率图像的峰值信噪比
计算两幅图像的峰值信噪比可以使用以下代码:
```python
import cv2
import numpy as np
# 读取两幅图像
img1 = cv2.imread('image1.png')
img2 = cv2.imread('image2.png')
# 计算 MSE
mse = np.mean((img1 - img2) ** 2)
# 计算 PSNR
if mse == 0:
psnr = 100
else:
max_pixel = 255.0
psnr = 20 * np.log10(max_pixel / np.sqrt(mse))
print("PSNR: ", psnr, "dB")
```
其中,`cv2.imread`函数用于读取图像,`np.mean`函数计算 MSE(均方误差),`np.log10`函数用于计算对数,最后计算得到 PSNR(峰值信噪比)。
需要注意的是,两幅图像的大小和通道数需要相同,否则会报错。
阅读全文