PSNR NC值 python
时间: 2023-10-18 19:20:14 浏览: 49
PSNR(Peak Signal-to-Noise Ratio)是一种衡量图像质量的指标,通常用于评估图像压缩算法的效果。它是通过计算原始图像和压缩图像之间的峰值信噪比来衡量的。
NC(Normalized Correlation)是一种度量两个信号相似度的指标,它可以用于比较两个图像的相似性。
Python中可以使用NumPy和OpenCV库来计算PSNR和NC值。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取原始图像和压缩图像
img1 = cv2.imread('original_img.jpg')
img2 = cv2.imread('compressed_img.jpg')
# 计算PSNR值
mse = np.mean((img1 - img2) ** 2)
if mse == 0:
psnr = 100
else:
max_pixel = 255.0
psnr = 20 * np.log10(max_pixel / np.sqrt(mse))
print("PSNR value is {}".format(psnr))
# 计算NC值
img1_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img2_gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
nc = np.mean(img1_gray * img2_gray) / np.sqrt(np.mean(img1_gray ** 2) * np.mean(img2_gray ** 2))
print("NC value is {}".format(nc))
```
在上述代码中,我们首先使用cv2.imread()函数读取原始图像和压缩图像,并计算它们之间的PSNR值和NC值。为了计算NC值,还需要将两个图像转换为灰度图像。