首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

PSNR-峰值信噪比(原理及python代码实现)

  • 25-03-04 01:42
  • 3413
  • 7185
blog.csdn.net

PSNR的全称为“Peak Signal-to-Noise Ratio”,直译为中文就是峰值信噪比。

是一种衡量图像质量的指标。在很多领域都会需要这个指标,比如在超分辨率重建图像的时候,PSNR就是很重要的指标了。


WIKI解释

峰值信噪比(英语:Peak signal-to-noise ratio,常缩写为PSNR)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。由于许多信号都有非常宽的动态范围,峰值信噪比常用对数分贝单位来表示。

计算PSNR要先知道MSE(均方误差)的计算。两个m×n单色图像I和K,如果一个为另外一个的噪声近似,那么它们的的均方误差定义为:

MSE的概念应该是比较熟悉的,这也是常见的损失函数。而PSNR就是通过MSE得出来的,公式如下:

其中,MAXI是表示图像点颜色的最大数值,如果每个采样点用 8 位表示,那么就是 255。

所以MSE越小,则PSNR越大;所以PSNR越大,代表着图像质量越好。

一般来说,

PSNR高于40dB说明图像质量极好(即非常接近原始图像),

在30—40dB通常表示图像质量是好的(即失真可以察觉但可以接受),

在20—30dB说明图像质量差;

最后,PSNR低于20dB图像不可接受


python代码实现PSNR计算

  1. # PSNR.py
  2. import numpy as np
  3. import math
  4. def psnr(target, ref, scale):
  5. # target:目标图像 ref:参考图像 scale:尺寸大小
  6. # assume RGB image
  7. target_data = np.array(target)
  8. target_data = target_data[scale:-scale,scale:-scale]
  9. ref_data = np.array(ref)
  10. ref_data = ref_data[scale:-scale,scale:-scale]
  11. diff = ref_data - target_data
  12. diff = diff.flatten('C')
  13. rmse = math.sqrt( np.mean(diff ** 2.) )
  14. return 20*math.log10(1.0/rmse)

以下是基于Pytorch的PSNR计算:(更简单,推荐!)

  1. import torch
  2. def psnr(img1, img2):
  3. mse = (((img1 - img2)) ** 2).view(img1.shape[0], -1).mean(1, keepdim=True)
  4. return 20 * torch.log10(1.0 / torch.sqrt(mse))


参考:https://es.wikipedia.org/wiki/PSNR

PSNR的python代码_psnr python直接调用代码-CSDN博客

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览416729 人正在系统学习中
注:本文转载自blog.csdn.net的木盏的文章"https://blog.csdn.net/leviopku/article/details/84586446"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top