psnr代码 python ycbcr
时间: 2023-07-22 14:05:19 浏览: 95
以下是一个计算图像 PSNR(峰值信噪比)的 Python 代码示例,使用 YCbCr 颜色空间:
```python
import cv2
import numpy as np
def calculate_psnr(img1, img2):
# Convert images to YCbCr color space
img1_yuv = cv2.cvtColor(img1, cv2.COLOR_BGR2YCR_CB)
img2_yuv = cv2.cvtColor(img2, cv2.COLOR_BGR2YCR_CB)
# Calculate MSE (Mean Squared Error)
mse = np.mean((img1_yuv - img2_yuv) ** 2)
# Calculate maximum pixel value
max_pixel = np.max(img1_yuv)
# Calculate PSNR
psnr = 20 * np.log10(max_pixel / np.sqrt(mse))
return psnr
# 读取两个图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 调用函数计算 PSNR
psnr_value = calculate_psnr(img1, img2)
print("PSNR:", psnr_value)
```
请确保图像文件 `image1.jpg` 和 `image2.jpg` 存在,或者根据你的需求修改文件名。这段代码使用 OpenCV 库进行图像处理和颜色转换,计算得到的 PSNR 值将被打印出来。
阅读全文