python计算psnr
时间: 2023-07-17 07:57:18 浏览: 127
要计算图像的峰值信噪比(PSNR),你可以使用Python中的OpenCV库。下面是一个示例代码:
```python
import cv2
import numpy as np
def calculate_psnr(original_image, compressed_image):
mse = np.mean((original_image - compressed_image) ** 2)
if mse == 0:
return float('inf')
max_pixel_value = 255.0
psnr = 20 * np.log10(max_pixel_value / np.sqrt(mse))
return psnr
# 读取原始图像和压缩后的图像
original_image = cv2.imread('original_image.jpg')
compressed_image = cv2.imread('compressed_image.jpg')
# 将图像转换为浮点数类型
original_image = original_image.astype(np.float64)
compressed_image = compressed_image.astype(np.float64)
# 计算PSNR
psnr_value = calculate_psnr(original_image, compressed_image)
print(f"PSNR: {psnr_value} dB")
```
请注意,在上面的代码中,我们首先将图像加载为浮点数类型,然后使用均方误差(MSE)计算PSNR。最后,我们打印出PSNR的值(以分贝(dB)为单位)。你需要将`original_image.jpg`和`compressed_image.jpg`替换为你自己的图像文件路径。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)