计算机视觉:图像质量评价指标之 PSNR 和 SSIM

1. PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比

由上可见,PSNR相对MSE多了一个峰值,MSE是绝对误差,再加上峰值是一个相对误差指标

一般地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1。

上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算。

  • 分别计算 RGB 三个通道的 PSNR,然后取平均值。
  • 计算 RGB 三通道的 MSE ,然后再除以 3 。
  • 将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR。

其中,第二和第三种方法比较常见。

python 复制代码
# im1 和 im2 都为灰度图像,uint8 类型

# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)

# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)

compare_psnr(im_true, im_test, data_range=None) 函数原型可见此处

针对超光谱图像,我们需要针对不同波段分别计算 PSNR,然后取平均值,这个指标称为 MPSNR。

在有损图像和视频压缩中,PSNR的典型值在30到50 dB之间,前提是位深度为8位,位深度越高越好。当12位时,PSNR值为60 dB或更高时,认为图像的处理质量较高。对于16位数据,典型的PSNR值在60 ~ 80db之间。无线传输质量损失的可接受值被认为是大约20 dB到25 dB。(供参考)

2. SSIM (Structural SIMilarity) 结构相似性

python 复制代码
# im1 和 im2 都为灰度图像,uint8 类型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)

compare_ssim(X, Y, win_size=None, gradient=False, data_range=None, multichannel=False, gaussian_weights=False, full=False, **kwargs) 函数原型可见此处

针对超光谱图像,我们需要针对不同波段分别计算 SSIM,然后取平均值,这个指标称为 MSSIM。

相关推荐
彬鸿科技2 分钟前
bhSDR Studio/Matlab入门指南(九):FMCW雷达测距实验界面全解析
人工智能·matlab·软件定义无线电
补三补四3 分钟前
Prompt工程实践指南:从基础概念到高级应用
人工智能·chatgpt·prompt
weixin_4080996712 分钟前
图片去水印 API 接口实战:网站如何实现自动去水印(Python / PHP / C#)
图像处理·人工智能·python·c#·php·api·图片去水印
ZGIS智博创享24 分钟前
地质调查数据采集系统专栏① | ZGIS以科技赋能,促进地质调查迈入数智新时代
人工智能·科技·地质调查数据采集系统
SP八岐大兔26 分钟前
AI对话&OpenClaw全域终极指令大全
网络·人工智能·openclaw
zxhl092727 分钟前
大模型微调技术 LoRA、QLoRA、QA-LoRA 原理
人工智能·深度学习·机器学习
龙文浩_30 分钟前
AI深度学习中的PyTorch与张量案例
人工智能·pytorch·深度学习
木斯佳44 分钟前
前端八股文面经大全:影刀AI前端一面(2026-04-01)·面经深度解析
前端·人工智能·沙箱·tool·ai面经
Hello.Reader1 小时前
从零构建大语言模型——理解大语言模型 LLM 是什么、应用与训练范式(一)
人工智能·语言模型·自然语言处理
阿里巴巴中间件1 小时前
Nacos 3.2 Skill Registry 正式版发布,让 AI 能力在企业更安全、可控落地
人工智能·安全