psnr python代码
时间: 2023-11-08 21:01:16 浏览: 132
psnr python代码如下所示:
```python
import numpy as np
import math
def psnr(target, ref, scale):
# target: 目标图像
# ref: 参考图像
# scale: 尺寸大小
# 假设目标图像是RGB图像
target_data = np.array(target)
target_data = target_data[scale:-scale,scale:-scale]
ref_data = np.array(ref)
ref_data = ref_data[scale:-scale,scale:-scale]
diff = ref_data - target_data
diff = diff.flatten('C')
rmse = math.sqrt(np.mean(diff ** 2.))
return 20 * math.log10(1.0 / rmse)
```
相关问题
PSNR python代码
PSNR(Peak Signal-to-Noise Ratio)是一种用于衡量图像或视频质量的指标,可以通过计算原始图像与压缩/恢复后的图像之间的峰值信噪比来评估图像的失真程度。下面是一个简单的Python代码示例,用于计算两个图像之间的PSNR值:
```python
import cv2
import numpy as np
def calculate_psnr(original_image, compressed_image):
# 读取原始图像和压缩/恢复后的图像
img1 = cv2.imread(original_image)
img2 = cv2.imread(compressed_image)
# 将图像转换为灰度图像
gray_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 计算MSE(均方误差)
mse = np.mean((gray_img1 - gray_img2) **2)
# 计算PSNR值
if mse == 0:
psnr = float('inf')
else:
max_pixel_value = 255.0
psnr = 20 * np.log10(max_pixel_value / np.sqrt(mse))
return psnr
# 示例用法
original_image_path = 'original_image.jpg'
compressed_image_path = 'compressed_image.jpg'
psnr_value = calculate_psnr(original_image_path, compressed_image_path)
print("PSNR value:", psnr_value)
```
请注意,上述代码使用了OpenCV库来读取和处理图像。在运行代码之前,请确保已经安装了OpenCV库。另外,需要将`original_image.jpg`和`compressed_image.jpg`替换为实际的图像文件路径。
PSNR PYTHON
PSNR(Peak Signal-to-Noise Ratio)是一种用于衡量图像或视频质量的指标,它可以用来评估原始图像与压缩或失真后的图像之间的差异程度。在Python中,可以使用OpenCV库来计算PSNR。
以下是使用Python计算PSNR的示例代码:
```python
import cv2
import numpy as np
def calculate_psnr(original_image, compressed_image):
# 读取原始图像和压缩图像
img1 = cv2.imread(original_image)
img2 = cv2.imread(compressed_image)
# 将图像转换为灰度图像
gray_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 计算MSE(Mean Squared Error)
mse = np.mean((gray_img1 - gray_img2) ** 2)
# 计算PSNR(Peak Signal-to-Noise Ratio)
psnr = 10 * np.log10((255 ** 2) / mse)
return psnr
# 示例用法
original_image = "path/to/original_image.jpg"
compressed_image = "path/to/compressed_image.jpg"
psnr_value = calculate_psnr(original_image, compressed_image)
print("PSNR:", psnr_value)
```
请注意,上述示例代码中的`original_image`和`compressed_image`需要替换为实际的图像文件路径。
阅读全文
相关推荐
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)