当前位置: 首页 > news >正文

[高光谱]高光谱数据的获取与展示

一、环境准备

        需要安装spectral包,这个包专门用于高光谱数据展示。

pip install spectral

二、数据加载

        要预先准备原始高光谱的.mat数据和分类数据gt.mat(ground-turth);然后使用scipy.io中的loadmat(.)将其读入程序。

from scipy.io import loadmatorg_img = loadmat('HDate/PaviaU/paviaU.mat')

        需要注意的是,直接使用loadmat(.)会输出一个dict字典,其构成如下:

        为了获取其中真正的高光谱数据矩阵,需要在loadmat(.)后再加一个 索引进行定位,所以完整的读取语句应该是:

from scipy.io import loadmatinput_image = loadmat('HDate/PaviaU/paviaU.mat')['paviaU']
gt = loadmat("HDate/PaviaU/paviaU_gt.mat")['paviaU_gt']

        通过输出两个变量的种类和尺寸:

         可知,高光谱图像是一个610*340*103的矩阵,类似于传统的RGB图像,前两维为长宽,最后一维为通道数,不过通道数相较于只有3通道的RGB图像而言要高很多。

        而gt作为预先标记好的ground-turth矩阵,其相当于一张灰度图,每个像素点的值从0-255,分别表示不同的种类

三、数据展示

        数据展示主要使用spectral中的imshow(.)来完成,用法同opencv里的imshow(.)

        1.高光谱图片展示

import spectral as spyview1 = spy.imshow(data=input_image, bands=[69, 27, 11], title="img")

                tips.函数中的bands参数用于校正颜色,如果不添加bands参数就会出现渲染的颜色不正确的问题(如下图所示)。

         2.高光谱分类展示

view2 = spy.imshow(classes=gt, title="gt")

        3.高光谱图像和分类叠加展示

view3 = spy.imshow(data=input_image, bands=[69, 27, 11], classes=gt)

         4.高光谱颜色通道展示

                不知道什么用,反正就是很炫

spy.view_cube(input_image, bands=[69, 27, 11])

         5.高光谱高维特征展示

pc = spy.principal_components(input_image)
xdata = pc.transform(input_image)
spy.view_nd(xdata[:, :, :15], classes=gt)

        6.数据保存

                 使用save_rgb(.)函数可以将上面的几种图以RGB图像的形式保存在指定位置,函数如下:

spy.save_rgb(data=input_image,bands=[69, 27, 11],filename='hello.jpg')

 四、小实验

        如果使用opencv来进行高光谱图像的展示会因为第三维通道数过多而报错。但gt相当于灰度图则不会出现这个问题。

        但由于类别之间的差距过小(类别序号普遍不高于10),实际显示出来就是一片黑色。所以对每个元素都放大10倍后再使用opencv进行显示:

gtx = gt*10
cv2.imshow('Test',gtx)

相关文章:

[高光谱]高光谱数据的获取与展示

一、环境准备 需要安装spectral包,这个包专门用于高光谱数据展示。 pip install spectral 二、数据加载 要预先准备原始高光谱的.mat数据和分类数据gt.mat(ground-turth);然后使用scipy.io中的loadmat(.)将其读入程序。 from scipy.io import loadmat…...

veth网卡的多队列及RPS

背景: 3.10内核下容器使用的veth网卡,默认开启的是一个队列,导致在某些单线程多TCP链接的应用场景下,出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS,让其在多流场景下可以去分散到其它CPU上…...

国内的程序员数量是否已经饱和或者过剩?

首先,国内程序员数量确实在逐年增加,特别是近年来互联网行业迅猛发展,促进了技术人员需求的增长。然而,要判断程序员是否饱和并不是简单地看人数。下面我们细分几个角度来看看这个问题。 1、合格的程序员数量不够 国内的IT领域和…...

flutter不能抓包

需要获取手机IP地址设置才能抓包,获取IP地址,需要跟原生通讯获取, 1:获取IP地址 安卓代码: /*** 原生和flutter通讯交互*/ class MainActivity : FlutterActivity() {var methodChannel: MethodChannel? nullover…...

从桌面端到移动端,.NET MAUI为什么对WPF开发人员更简单?

.NET多平台应用程序UI(. NET MAUI)的市场吸引力与日俱增,这是微软最新的开发平台,允许开发者使用单个代码库创建跨平台应用程序。尽管很多WPF开发人员还没有跟上 .NET MAUI的潮流,但我们将在这篇文章中为大家展示他的潜…...

[Python]... 和pass

2.9 … 和pass 在Python中pass语句是用来在语法上需要一个语句的地方占位的。它不会执行任何操作。 ...是一个特殊的值,表示省略或未完成的代码。它可以用来实现抽象基类,也可以用来在语法上需要一个语句的地方占位,通常情况下,.…...

【信息安全案例】——软件解密技术(以OllyDbg为例)

目录 🕒 1. 软件解密技术🕘 1.1 概述🕘 1.2 爆破🕘 1.3 跟踪注册🕘 1.4 写出注册 🕒 2. 破解相关问题🕘 2.1 破解程度🕘 2.2 破解线索 🕒 3. 实验:使用 OllyD…...

【华为OD机试真题2023B卷 JAVAJS】阿里巴巴找黄金宝箱(I)

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 阿里巴巴找黄金宝箱(I) 知识点数组前缀和整数范围 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面…...

记录一次windows mysql5.7安装失败的过程

首先下载mysql安装包 windows版本 https://dev.mysql.com/downloads/installer/ 接着 在执行安装mysql msi安装包最后一步的时候,显示 Failed to start service MySQL57. 只有在任务处于完成状态(RanToCompletion、Fau 这时候 检查要么windows下面mysql的卸载残留没…...

前端知识复习一

1.页面导入样式时,使用link和import有什么区别? link属于html标签,import是css提供的。页面加载的同时,link同时也会加载;import引用的css等到页面加载完再加载 2.js函数有哪几种声明方式? 表达式和声明…...

低代码赋能生物药企数字化

一、关于复宏汉霖 汉霖是复星在2010年投资孵化的一家生物医药公司,经过这十几年的发展,2019年在港股上市,是生物药企18A企业之一。 经过这些年的发展,我们在管线方面布局了肿瘤、肢体、免疫、眼科类,从早研阶段到临床…...

【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?

文章目录 一、前言二、如何解决2.1 使用图像增强技术2.2 使用插值方法2.3 使用更高分辨率的图像数据集2.4 手动调整图像尺寸 三、总结 一、前言 如果从CIFAR-100数据集加载的图像显示模糊,可能有几个可能的原因: 分辨率较低:CIFAR-100数据集…...

OJ 系统未解决或者有疑问问题:

34101 - 全排列问题 时间限制 : 1 秒 内存限制 : 128 MB 输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 输入 n(1≤n≤9) 输出 由 1~n 组成的所有不重复的数字序列,每…...

《游戏编程模式》--优化模式--学习

在线阅读: 优化模式 游戏设计模式 参考文章: GameDesignPattern_U3D_Version/Assets/010OptimizationPatterns at master TYJia/GameDesignPattern_U3D_Version GitHub 数据局部性介绍了计算机的存储层次以及如何使用其以获得优势。 脏标识帮你避开…...

电脑照片怎么导入苹果手机?三个妙招帮你解决!

案例:电脑有很多照片,该如何导入苹果手机? 【家人们,电脑里面的照片怎么样可以快速导入到苹果手机?求方法!】 导入电脑照片到苹果手机是一个常见的需求,尤其是当您希望在手机上随时欣赏和分享这…...

换个花样玩C++(13)一文深度全面剖析类构造,析构,赋值运算和移动构造

为什么我要把C++类的构造,析构函数,赋值运算符重载函数,移动构造函数还要拿出来嚼一嚼,因为最近面试的一些3-7年经验的程序员,我每次都会问一些特别基础的问题,但是我总是得不到想要的答案,我就在思考,是不是大家都觉得有些知识点太简单了,流于高大上的东西,而我个人…...

这是一篇使用ChatGPT生成的关于隐私计算的文章

标题:隐私计算:直白介绍和算法实现 简介: 随着数字化时代的发展,隐私保护成为了一个日益重要的话题。隐私计算作为一种保护个人隐私的方法,具有广泛的应用前景。本篇博客将为您提供一个直白的介绍,解释隐私…...

Docker持久化固定容器IP

基于Docker引擎创建Docker容器,在默认条件下创建容器是bridge桥接模式,启动容器IP地址是DHCP随机分配并且递增的,而且容器之间可以互相通信,网段也是固定的。 当Docker容器一旦关闭再次启动,就会导致容器的IP地址再次重…...

Filter和Interceptor和Aspect

Filter过滤器 过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求响应做出过滤操作。 过滤器 依赖于servlet容器。在实现上,基于函数回调,它可以对几乎所有请求进行过滤,一个过滤器实例只能在 容…...

maven 项目依赖加载不出来

1.依赖加载不出来,查看pom.xml放的位置是否对了 2.1下载mvn到本地,进行解压 2.2新建系统变量MAVEN_HOME,值直接指向安装目录D:\apache-maven-3.9.2 2.3path变量中增加:%MAVEN_HOME%\bin 2.4若仓库位置不在C盘用户下&#xff0…...

别再下错包了!手把手教你获取ROS2 Humble可用的gazebo_grasp_plugin正确分支

ROS2 Humble版gazebo_grasp_plugin获取指南:避开新手三大陷阱 刚接触机械臂抓取仿真的开发者,往往在第一步获取资源时就栽了跟头。上周帮学弟调试机械臂项目时,发现他花了两天时间编译的gazebo_grasp_plugin始终报错——原因竟是下载了错误的…...

我“调教”了一个AI Agent,让它全天自动写测试用例:3分钟24条,准确率70%+

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中…...

VMware虚拟机安装教程:Qwen3-TTS开发环境配置

VMware虚拟机安装教程:Qwen3-TTS开发环境配置 1. 环境准备与系统要求 在开始配置Qwen3-TTS开发环境之前,我们需要先确保硬件和软件环境满足基本要求。这个环节很重要,好的开始是成功的一半。 首先来看看硬件要求。建议使用至少8GB内存的电…...

5个实战技巧解决ComfyUI ControlNet Aux预处理器的模型管理难题

5个实战技巧解决ComfyUI ControlNet Aux预处理器的模型管理难题 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 在AI绘画工作流中,ComfyUI Con…...

从零构建PINN:基于PyTorch的Burgers方程求解实战

1. 初识PINN与Burgers方程 物理信息神经网络(PINN)这两年越来越火,它巧妙地将物理定律直接嵌入到神经网络训练过程中。我第一次接触这个概念时,感觉就像发现了新大陆——原来神经网络不仅能处理数据,还能直接求解偏微…...

G-Helper深度解析:华硕笔记本性能控制的革命性开源方案

G-Helper深度解析:华硕笔记本性能控制的革命性开源方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, S…...

Pixel Mind Decoder 性能调优教程:解决GPU显存不足与推理加速

Pixel Mind Decoder 性能调优教程:解决GPU显存不足与推理加速 1. 为什么需要性能调优 当你第一次把Pixel Mind Decoder模型跑起来时,可能会遇到两个让人头疼的问题:要么显存不够用导致程序崩溃,要么推理速度慢得像蜗牛爬。这种情…...

掌握Node.js开发的102个终极最佳实践:从新手到专家的完整指南

掌握Node.js开发的102个终极最佳实践:从新手到专家的完整指南 【免费下载链接】nodebestpractices :white_check_mark: The Node.js best practices list (July 2024) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices 你是否曾经在Node…...

FUXA工业监控平台架构设计:构建现代化SCADA系统的技术洞察

FUXA工业监控平台架构设计:构建现代化SCADA系统的技术洞察 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA FUXA是一个基于Web的SCADA/HMI平台,专为工…...

Graphormer分子预测模型5分钟快速部署:零基础搭建药物发现AI工具

Graphormer分子预测模型5分钟快速部署:零基础搭建药物发现AI工具 1. 项目概述 Graphormer是微软研究院开发的基于Transformer架构的分子属性预测模型,专门用于处理分子图结构数据。与传统的图神经网络(GNN)相比,Graphormer通过创新的结构编…...