在数字图像处理的世界里,PSNR(Peak Signal to Noise Ratio) 是衡量重建图像质量的重要指标之一。简单来说,它用于比较原始图像和经过处理后的图像之间的差异,数值越高表示两者越接近。💡
原理:
PSNR 的计算基于 MSE(均方误差),公式为:
`PSNR = 10 log10((MAX² / MSE))`
其中,`MAX` 是像素的最大值(如灰度图中为 255),而 MSE 则是两幅图像对应像素差值平方的平均值。因此,PSNR 越高,说明噪声越少,图像质量越好!🔍📈
Python 实现:
```python
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
示例使用
original_img = np.array([[100, 150], [200, 250]])
noisy_img = np.array([[98, 148], [202, 252]])
print("PSNR:", calculate_psnr(original_img, noisy_img))
```
通过这段代码,我们可以轻松计算任意两张图片的 PSNR 值,帮助我们优化算法或评估图像恢复效果!🚀
💡 小贴士: PSNR 虽然经典,但并非万能。有时低 PSNR 并不代表视觉效果差,具体还需结合主观评价哦!👀
图像处理 PSNR Python代码