opencv python psnr 示例
时间: 2023-07-04 17:30:44 浏览: 143
python求不同分辨率图像的峰值信噪比.zip
下面是一个简单的Python示例,演示如何使用OpenCV计算图像之间的峰值信噪比(PSNR)。
```python
import cv2
import numpy as np
def calculate_psnr(img1, img2):
# 计算峰值信噪比
mse = np.mean((img1 - img2) ** 2)
if mse == 0:
return float('inf')
max_pixel = 255.0
psnr = 20 * np.log10(max_pixel / np.sqrt(mse))
return psnr
# 读取原始图像和降噪后的图像
img1 = cv2.imread('original_image.jpg')
img2 = cv2.imread('denoised_image.jpg')
# 计算峰值信噪比
psnr = calculate_psnr(img1, img2)
# 打印结果
print('PSNR:', psnr)
```
在这个示例中,我们首先定义了一个`calculate_psnr()`函数,该函数采用两个图像作为输入,并计算它们之间的峰值信噪比。然后,我们读取原始图像和降噪后的图像,并使用`calculate_psnr()`函数计算它们之间的峰值信噪比。最后,我们将峰值信噪比打印到屏幕上。
请注意,这个示例假设原始图像和降噪后的图像的像素值范围为0到255。如果图像的像素值范围不同,需要根据实际情况进行调整。
阅读全文