深入理解PSNR(峰值信噪比)(附matlab代码)
深入理解PSNR
作者:老李
日期:2022-1-19
本文引入MSE、SNR、变异系数(Coefficient of Variation),并希望从统计学的角度上解释这个变量
这个变量。
PSNR是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比。
MSE
用 真实值-预测值 然后平方之后求和平均。
在图像中的MSE定义说人话就是:
两个图像中每一个相同位置的像素值相减,平方,求和,再求平均。
表达的是两幅图在每一个位置上的像素值的差异的平均。
数值越大,表示两张图片在相似度上更低。
这里注意两点:
- 在计算之前要把两个图像调整为同一个阈值,一个[0,1]和一个[0,255]是不能放一起用的。
- 图像的大小要保持一致。不然无法做到像素值之间的一一对应。
MSE在描述两图像的相似成都时具有它的局限性。
其中一点是这个定义太简单了,不一定完全符合视觉上规律。
比如说如果两图像是少量的平移或者缩放关系,我们在视觉上的感受是两者之间并无太大差异,图像信息可能被完整地保留了下来(比如大头照)。但是他们计算MSE的时候会有一个不太理想的结果。
PSNR
注意到MSE在分母上,意味着PSNR数值越高,则两图像相似度更高。
附matlab代码如下:
function [ output ] = PSNR( img1,img2)
%PSNR 峰值信噪比if sum(sum(img1-img2)) == 0error('Those pictures are the same');endMAX=1; %图像有多少灰度级(我这里定为1)% 归一化if (max(max(img1))-min(min(img1))) ~= 0img1 = (img1-min(min(img1)))./(max(max(img1))-min(min(img1)));endif (max(max(img1))-min(min(img1))) ~= 0img2 = (img2-min(min(img2)))./(max(max(img2))-min(min(img2)));end%MSE=sum(sum((img1-img2).^2))/(1024*1024); %图片像素设为1024 x 1024output=20*log10(MAX/sqrt(MSE)); %峰值信噪比
end
SNR
信噪比是信号均值与背景标准偏差的比值:
这个结构与PSNR一致。分子分母的量纲一致,相除后便于比较。
为什么是这个结构
引入一个变量
变异系数(Coefficient of Variation)
是信噪比的倒数。
是概率分布离散程度的一个归一化量度。
一般来说,变异值平均水平高,其离散程度的测度值越大,反之越小。
变异系数是衡量资料中各观测值变异程度的另一个统计量。当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,可以直接利用标准差来比较。如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较。
变异系数可以消除单位和(或)平均数不同对两个或多个资料变异程度比较的影响。
也就是说,这个变量是个不带单位的指数。
举个例子:
已知某良种猪场长白成年母猪平均体重为190kg,标准差为10.5kg,而大约克成年母猪平均体重为196kg,标准差为8.5kg,试问两个品种的成年母猪,哪一个体重变异程度大。
此例观测值虽然都是体重,单位相同,但它们的平均数不相同,只能用变异系数来比较其变异程度的大小。
由于,长白成年母猪体重的变异系数为 5.53%
大约克成年母猪体重的变异系数为4.34%
所以,长白成年母猪体重的变异程度大于大约克成年母猪。
变异系数类比SNR
也就是说,我们讲像素值的离散程度等价于图片的噪声,离散程度越高,图像的噪声越大。
SNR是变异系数的倒数,与变异系数一样,消除单位和(或)平均数不同对两个或多个资料变异程度比较的影响,同时在数值上可能与视觉上的画质质量呈现一个对应关系:
SNR越高,像素的离散程度越低,图像质量(可能)越好。
深入理解PSNR(峰值信噪比)(附matlab代码)相关推荐
- MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)
前言 NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准. NSGA-Ⅱ算法是 Srinivas 和 D ...
- 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...
本周应小伙伴要求继续学习TS求VRPTW,不过这次通过使用惩罚约束的形式允许解违反时间窗约束和容量约束,不过要给违反约束的解加以惩罚. 这次我们的目标函数就不单单只有车辆总行驶距离了,还要包括当前解中 ...
- 四维空间的二维线框投影可视化(附matlab代码)
四维空间的二维线框投影可视化(附matlab代码) 1 三维空间在2维屏幕上的投影 1.1平行投影 1.2透视投影 2 四维空间在2维屏幕上的投影 2.1 四维空间与三维空间的一些区别 2.2 四维空 ...
- SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码)
合成孔径雷达发射信号以线性调频信号(LFM)为基础,目前大部分合成孔径雷达都是LFM体制,为了减轻雷达重量也采用线性调频连续波(FMCW)体制:为了获得大带宽亦采用线性调频步进频(FMSF)体制. ( ...
- 几种常用信号平滑去噪的方法(附Matlab代码)
几种常用信号平滑去噪的方法(附Matlab代码) 1 滑动平均法 1.0 移动平均法的方法原理 1.1 matlab内自带函数实现移动平均法 1.2 利用卷积函数conv()实现移动平均法 1.3 利 ...
- 基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)
摘要:本文介绍了一种MATLAB实现的目标检测系统代码,采用 YOLOv4 检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化.文章详细介绍了YOLOv4的 ...
- matlab仿真点目标,sar合成孔径雷达图像点目标仿真报告(附matlab代码).docx
sar合成孔径雷达图像点目标仿真报告(附matlab代码).docx SAR图像点目标仿真报告徐一凡1SAR原理简介合成孔径雷达(SyntheticApertureRadar,简称SAR)是一种高分辨 ...
- 多目标优化 | NSGA-Ⅲ(中篇,附MATLAB代码)
目录 常规归一化操作 种群个体的自适应归一化操作 计算种群理想点 转换种群目标函数值 计算每个坐标轴对应的极值点 计算超平面与坐标轴的截距 归一化种群目标函数值 种群自适应归一化操作伪代码 NSGA- ...
- 图像的评价指标之PSNR——峰值信噪比
图像的评价指标之PSNR--峰值信噪比 文章目录: 以及Python的实现 参考: https://blog.csdn.net/szfhy/article/details/49615833 https ...
- 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)
CTR 系列文章: 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解 CTR深度学习模型之 ...
最新文章
- Java线上程序频繁JVM FGC问题排障与启示
- BeX5报表开发中Excel格式修改的一个小问题
- RHEL6.1 安装 Oracle10gr2 (图文、解析)
- 网络通过猫传输到计算机,事实:计算机直接连接到光猫,无法访问Internet
- Linux 基础命令上
- stackoverflow_Stackoverflow的见解:投票最多的是Spring 4问题
- [Selenium] 最大化或自定义浏览器的大小
- 计算机专业毕设外文翻译springboot_java毕业设计_springboot框架的计算机系党员信息管理系统...
- 配置文件中符号报错,无法识别
- CCF201604-5 网络连接(募集解题代码)
- 思想的交流,扩大视野
- 统计学习基础(ESL)中文版
- android 增加定时开关机
- 精细化运营的用户分层方法论——RFM
- delete 和 delete []的真正区别+析构函数
- 软件开发搞定操作系统
- 大学计算机考试不挂科秘诀,在大学,考试想不挂科,学渣的4个锦囊妙计,最后一点看笑了!...
- java集合之TreeMap 构造器 方法 比较器
- APP上短信验证码如何验证?
- 【基础】Flink -- DataStream API