常用评价指标及其Python实现
高光谱图像重构评价指标及其Python实现
高光谱图像重构的评价指标通常有三项。其中部分指标从普通图像变化而来,部分指标只有高光谱图像独有。本文拟从以下两个角度介绍高光谱图像评价指标,并列出基于Python语言的skimage库的对应实现方法。
1)从普通图像重构评价指标到高光谱图像重构评价指标
2)从普通图像重构评价指标代码到高光谱图像重构评价指标代码
一、MSE
MSE计算两组数据的均方误差,是最常用的评价相似度的准则,包括但不限于图像、信号。
Skimage库中对应的函数原型:
skimage.measure.compare_mse
(im1, im2)
Parameters: |
im1, im2 : ndarray Image. Any dimensionality. |
Returns: |
mse : float The mean-squared error (MSE) metric. |
想要测度其他距离,参考compare_nrmse函数
http://scikit-image.org/docs/stable/api/skimage.measure.html#compare-nrmse
二、PSNR与MPSNR
1. PSNR
PSNR全称是Compute the peak signal to noise ratio。用于计算原始图像与重构图像之间的峰值信噪比。在图像超分辨率等任务中尤为常用,如同错误率之于分类任务,PSNR是图像重构任务事实上的基准评价准则。
skimage.measure.compare_psnr(im_true, im_test, data_range=None, dynamic_range =None )
Parameters: |
im_true : ndarray Ground-truth image. im_test : ndarray Test image. data_range : int The data range of the input image (distance between minimum and maximum possible values). By default, this is estimated from the image data-type. |
Returns: |
psnr : float The PSNR metric. |
2. MPSNR
MPSNR用于计算两幅高光谱图像之间的平均峰值信噪比。MPSNR计算方法很简单,只需要分别计算不同波段的PSNR,取均值就可以了。
1 def mpsnr(x_true, x_pred):2 """3 4 :param x_true: 高光谱图像:格式:(H, W, C)5 :param x_pred: 高光谱图像:格式:(H, W, C)6 :return: 计算原始高光谱数据与重构高光谱数据的均方误差7 References8 ----------9 .. [1] https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio 10 """ 11 n_bands = x_true.shape[2] 12 p = [compare_psnr(x_true[:, :, k], x_pred[:, :, k], dynamic_range=np.max(x_true[:, :, k])) for k in range(n_bands)] 13 return np.mean(p)
三、SSIM与MSSIM
1. SSIM用于计算两幅图像之间的平均结构相似度。
skimage.measure.compare_ssim
(X, Y, win_size=None, gradient=False, data_range=None, multichannel=False, gaussian_weights=False, full=False, dynamic_range=None, **kwargs)
Parameters: |
X, Y : ndarray Image. Any dimensionality. win_size : int or None The side-length of the sliding window used in comparison. Must be an odd value. If gaussian_weights is True, this is ignored and the window size will depend on sigma. gradient : bool, optional If True, also return the gradient. data_range : int, optional The data range of the input image (distance between minimum and maximum possible values). By default, this is estimated from the image data-type. multichannel : bool, optional If True, treat the last dimension of the array as channels. Similarity calculations are done independently for each channel then averaged. gaussian_weights : bool, optional If True, each patch has its mean and variance spatially weighted by a normalized Gaussian kernel of width sigma=1.5. full : bool, optional If True, return the full structural similarity image instead of the mean value. |
Returns: |
mssim : float The mean structural similarity over the image. grad : ndarray The gradient of the structural similarity index between X and Y [R327]. This is only returned if gradient is set to True. S : ndarray The full SSIM image. This is only returned if full is set to True. |
Other Parameters: |
|
use_sample_covariance : bool if True, normalize covariances by N-1 rather than, N where N is the number of pixels within the sliding window. K1 : float algorithm parameter, K1 (small constant, see [R326]) K2 : float algorithm parameter, K2 (small constant, see [R326]) sigma : float sigma for the Gaussian when gaussian_weights is True. |
2. MSSIM
MSSIM用于计算两幅高光谱图像之间的平均结构相似度。MSSIM计算方法很简单,只需要分别计算不同波段的SSIM指数,取均值就可以了。
1 def mssim(x_true,x_pred): 2 """ 3 :param x_true: 高光谱图像:格式:(H, W, C) 4 :param x_pred: 高光谱图像:格式:(H, W, C) 5 :return: 计算原始高光谱数据与重构高光谱数据的结构相似度 6 """ 7 SSIM = compare_ssim(X=x_true, Y=x_pred, multichannel=True) 8 return SSIM
四、SAM
SAM这个概念只存在于多/高光谱图像,普通图像没有这个概念。SAM又称光谱角相似度,用于度量原始高光谱数据与重构高光谱数据之间的光谱相似度。
1 def sam(x_true, x_pred):2 """3 :param x_true: 高光谱图像:格式:(H, W, C)4 :param x_pred: 高光谱图像:格式:(H, W, C)5 :return: 计算原始高光谱数据与重构高光谱数据的光谱角相似度6 """7 assert x_true.ndim ==3 and x_true.shape == x_pred.shape8 sam_rad = np.zeros(x_pred.shape[0, 1])9 for x in range(x_true.shape[0]): 10 for y in range(x_true.shape[1]): 11 tmp_pred = x_pred[x, y].ravel() 12 tmp_true = x_true[x, y].ravel() 13 sam_rad[x, y] = np.arccos(tmp_pred / (norm(tmp_pred) * tmp_true / norm(tmp_true))) 14 sam_deg = sam_rad.mean() * 180 / np.pi 15 return sam_deg
五、相关资料
0. 文中用到的代码
https://github.com/JiJingYu/tensorflow-exercise/tree/master/HSI_evaluate
1. 文中提到的函数的文档
http://scikit-image.org/docs/stable/api/skimage.measure.html#compare-mse
2. PSNR维基百科链接
https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio
3. SSIM参考文献
[R326] Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 13, 600-612. https://ece.uwaterloo.ca/~z70wang/publications/ssim.pdf , DOI:10.1.1.11.2477
[R327] Avanaki, A. N. (2009). Exact global histogram specification optimized for structural similarity. Optical Review, 16, 613-621. http://arxiv.org/abs/0901.0065 , DOI:10.1007/s10043-009-0119-z
转载于:https://www.cnblogs.com/nwpuxuezha/p/6659153.html
http://www.taodudu.cc/news/show-1916884.html
相关文章:
- 苹果手机充电口接触不良怎么办_用了HOU吼猴3C数码配件让手机充电口不再接触不良...
- python怎么判断日期是星期几_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...
- uniapp ios时间戳获取不到_个人小程序uniapp实战开发(三):数据库设计与文章列表...
- python怎么获取lol皮肤名称_英雄联盟手游免费皮肤获取攻略 LOL免费皮肤怎么得...
- 钢琴块2电脑版_包租婆租赁合同管理系统电脑版|包租婆租赁合同管理系统PC版下载_v10.3.5.2...
- 词云中去重复的词_今天从零教你开始利用Python打造词云图!
- 换了路由器电脑都连不上网了_高校连上网自由都实现不了?三大运营商:这锅我不背...
- python pywinauto 单击鼠标_10分钟教你用 Python 控制键盘和鼠标
- pands 画图 调整大小_两个精品案例解释机械设计的步骤,有思路,再着手画图...
- h5 px 转dp_西游女儿国h5手游下载-西游女儿国h5手游下载v2.1.4 安卓版
- 自带flash的浏览器_受够了手机自带浏览器?来看看这些超实用的不常用浏览器...
- cfile read 最大读取限制_Read文件一个字节实际会发生多大的磁盘IO?
- python 英文字典-python如何制作英文字典
- 360怎么看电脑配置_电脑配置清单速查表-AMD
- ai 2.5d插件_【插画AI教程】从0到1,学会16 种热门插画设计风格!
- 怎么通过当地时区计算格林尼治_时间规划局:时间能看到,标注在你的手臂上,那时的你会怎么样...
- mplfinance画k线图_华尔街交易王:真正短线高手是寻找60分钟K线中的“牛股”
- iphone怎么查看wifi密码_怎么查看电脑连接的wifi密码?2种方法分享给大家!
- 电脑f2还原系统步骤_电脑还原系统方法步骤详解
- 苹果手机怎么在照片上添加文字_不管用什么手机,这样操作一下,就能直接给照片添加文字...
- simplex字体下载cad_CAD字体大全【资料下载】
- typescript面试题_vue 248+个知识点(面试题)为你保驾护航
- datalist获取id传到下一个页面_如何在 Serverless 架构下优雅上传文件?
- linux重新初始化mysql 并修改大小写铭感_在Linux(Centos 7)环境下安装Mysql的完整过程...
- floyd算法求最短路径_算法题-蜜蜂采蜜最短路径
- 无法定位程序输入点 except_python自制王者荣耀抽卡程序
- C# 如何检测UDP是否被占用_如何悄悄检测微信好友是否被删除?
- python爬虫下载文件到指定文件夹_python爬虫: 从 指定路径 爬取 文件
- python列表嵌套字典取值_Python学习100天-Day03(字符串、列表、字典、元组)
- python 生成器_彻底理解 Python 生成器
常用评价指标及其Python实现相关推荐
- python评价指标_详解分类评价指标和回归评价指标以及Python代码实现
这篇文章介绍的内容是详解分类评价指标和回归评价指标以及Python代码实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 1.概念 性能度量(评价)指标,主分为两大类: 1)分类评价 ...
- 机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)
前言 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE.但是我们真正了解这些评价指标的意义吗? ...
- python实现中撤销上一步的代码mac_一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串...
第六章:常用的简易Python命令.符号.代码.字符串 <"笨办法"学Python>这本书中,确实用了较多篇幅来介绍Python的一些常用简单的命令.符号.代码和字符串 ...
- 错误类型、混淆矩阵及目标检测常用评价指标
目标检测常用评价指标 本文主要参考陈恺大佬在B站商汤账号的介绍mmdetection的视频. 检测结果的正确/错误类型 真阳性(Ture Positive):算法检测到了某类物体(Positive), ...
- 《统计学习方法》读书笔记——机器学习常用评价指标
传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...
- 预测评价系统_「机器学习」一文读懂分类算法常用评价指标
前言 评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标. 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中 ...
- python的第三方库是干什么用的-quot;别人造好的轮子”,python常用第三方库——python自动办公7...
下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 前记:这是分享和记录我个人自动化办公技能的一系列文章,意在让的小伙伴们看后能够有所帮助和长大.我们都不是专业的 ...
- 知识图谱常用评价指标:MRR,MR,HITS@K,Recall@K,Precision@K
一.MRR MRR的全称是Mean Reciprocal Ranking(排名的倒数),其中Reciprocal是指"倒数的"的意思.该指标越大越好(即预测排名越靠前,倒数就越大, ...
- 模型评价 - 分类模型的常用评价指标
分类模型的常用评价指标 基本指标:误差率 指标解释:错分类样本占总样本的比例 基本指标:准确率 指标解释:正确分类样本占总样本的比例 指标解读:准确率越接近1,模型越准确 混淆矩阵 真实情况 预测:正 ...
- 模型评价 - 回归模型的常用评价指标
回归模型的常用评价指标 样本误差:衡量模型在一个样本上的预测准确性 样本误差 = 样本预测值 - 样本实际值 最常用的评价指标:均误差方(MSE) 指标解释:所有样本的样本误差的平方的均值 指标解读: ...
最新文章
- 微信公众号基本信息配置
- 把佳佳的博客搬出去了
- boost::geometry::tuples用法的测试程序
- Web服务 源码编译安装LAMP架构
- C# 7.1先睹为快(第一部分)
- 用户体验五要素_UX系列课(三):用户体验影响力金字塔及五大要素
- 程序员自我提高情绪10招
- TensorFlow2 Win
- J2EE MVC模式框架中,表单数据绑定功能不安全实现在Tomcat下造成的DoS及RCE
- linux 软件查询,linux安装常用软件和查询基本信息
- java定时任务Quartz整理
- bypassing waf's in sql injection
- 十大著名黑客——George Hotz
- android 入侵检测系统,基于行为模式的Android平台入侵检测系统的设计与实现
- (轉貼) 寶蘭開發工具部門將分割成完全獨立的子公司 (C/C++) (News)
- python灰色预测_python实现灰色预测模型(GM11)——以预测股票收盘价为例
- ACDSee Photo Studio 5 for Mac v5.2.1151 图片管理中文汉化下载
- WindbgX64和WinxpSp3虚拟机双击调试的参数设置
- hexo主题编写(如何编写Hexo主题)
- 一个图形爱好者的书架
热门文章
- 使用web.xml控制Web应用的行为
- 小程序学习笔记(8)-导航组件
- Oracle数据库链接源文件
- git revert 之后怎么撤销_Git撤销回滚操作(git reset 和 get revert)
- 把php文件全改为html文件,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
- androidstudio自动生成变量_Android Studio 安装教程
- mysql八大知识点_MySQL索引八大法则之上篇
- 学linux哪个版本号,初学Linux哪个发行版本好?这些更合适!
- JDBC中数据库连接池的使用与传统方式的比较
- Introduction to Computer Networking学习笔记(六):TCP连接断开实例;TCP与UDP特点