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

news2024/10/7 8:20:53

一、环境准备

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

pip install spectral

二、数据加载

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

from scipy.io import loadmat

org_img = loadmat('HDate/PaviaU/paviaU.mat')

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

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

from scipy.io import loadmat

input_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 spy

view1 = 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JCJC句子改写在线工具上线-202305

JCJC句子改写在线工具上线-202305 字根科技发布了新版JCJC在线句子改写功能。 使用网址: JCJC在线句子改写 新版的在线中文句子改写一共分为三种模式: 严谨模式普通模式休闲模式 上述三种改写模式适用于不同的改写需求,界面展示如下&…

springboot读取和写入csv文件数据

前言 csv格式的表格&#xff0c;和xls以及xlsx格式的表格有一些不同&#xff0c;不能够直接用处理xls的方式处理csv&#xff1b; 以下我将介绍如何读取并写入csv数据 准备工作 要处理csv格式的表格数据&#xff0c;我们首先需要引入pom.xml的依赖 <dependency><art…

Linux如何实现动态IP

Linux系统可以通过DHCP&#xff08;动态主机配置协议&#xff09;来实现动态IP。DHCP是一种自动分配IP地址的协议&#xff0c;它可以自动为网络中的设备分配IP地址、子网掩码、网关等网络参数&#xff0c;从而实现动态IP。 在Linux系统中&#xff0c;可以使用DHCP客户端工具来…

分享个常用的跨境电商数据分析平台

在跨境电商人眼中&#xff0c;适合用在跨境电商数据分析上的大数据分析平台该是怎样的&#xff1f;是效率高、财务指标计算快、业务能随时自助分析&#xff0c;最好是能将平台自身的分析经验分享给跨境电商企业&#xff0c;为企业提供更专业的服务。这样的大数据分析平台虽然少…

【Prometheus】实战Prometheus部署

目录 架构安装部署Exporters 架构 Prometheus的基本原理是通过HTTP周期性抓取被监控组件的状态&#xff0c;任意组件只要提供对应的HTTP接口并符合Prometheus定义的数据格式&#xff0c;就可以介入Prometheus监控 Prometheus Server负载定时在目标上抓取metrics(指标)数据&…

chatgpt-最常报错Access denied

一、问题 Access denied 的原因基本都是由于 IP 地址&#xff0c;例如我们用国内网络直接访问 ChatGPT 官网就会报错 Access denied&#xff08;访问被拒绝&#xff09;&#xff0c;Error reference number 1020&#xff08;错误参考编号&#xff1a;1020&#xff09; 二、原因…

Nginx(一)---Nginx下载及安装

一.初识Nginx Nginx 是一个功能强大的 Web 服务器和反向代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力确实在同类型的网页服务器中表现较好&#xff0c;中国大陆使用nginx网站用户有&#xff1a;百度、京东、新浪、网易、腾讯、淘宝…

在Windows中如何使用工具恢复已删除的文件?

​当你的电脑遇到任何类型的数据丢失问题时&#xff0c;傲梅恢复之星都会帮助你。你可以在Windows 11/10/8/7中快速轻松的从HDD/SSD恢复丢失或删除的数据。 傲梅恢复之星功能 易于使用&#xff1a;你可以通过3个简单易行的步骤轻松恢复丢失的数据。 适合多种数据丢失情况&a…

787. K 站中转内最便宜的航班

有 n 个城市通过一些航班连接。给你一个数组 flights &#xff0c;其中 flights[i] [fromi, toi, pricei] &#xff0c;表示该航班都从城市 fromi 开始&#xff0c;以价格 pricei 抵达 toi。 现在给定所有的城市和航班&#xff0c;以及出发城市 src 和目的地 dst&#xff0c;…

LPP 和 Kernel LPP

无监督度量学习的降维讲义:LPP Lecture notes in dimensionality reduction for unsupervised metric learning: LPPLECTURE 6: LOCALITY PRESERVING PROJECTIONS AND KERNEL LPP A. Kernel LPP Lecture notes in dimensionality reduction for unsupervised metric learning: …

DHCP数据包分析

目录 1、DHCP 2、DHCP报文种类 3、DHCP工作原理 4、DHCP报文格式 1、DHCP DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;&#xff0c;前身是BOOTP协议&#xff0c;是一个局域网的网络协议&#xff0c;使用UDP协议工作&am…

国产手机无奈放弃芯片研发,关键还是芯片制造,前路在何方?

OPPO放弃芯片研发&#xff0c;影响仍然在继续&#xff0c;这引发了各方对国产芯片发展方向的思考&#xff0c;那么如果不是OPPO&#xff0c;其他国产芯片企业又能突破困境么&#xff1f;其实关键还是在芯片制造。 国内最强大的芯片企业&#xff0c;由于众所周知的原因&#xff…

ChatGPT联网后几大功能

这周ChatGPT plus 已经可以联网了&#xff0c;联网后对我们的用处更大了&#xff0c;这里总结了几点ChatGPT联网 后的几个功能&#xff1a; 1.对给定的网页进行读取&#xff0c;并根据解读后来回答问题 给ChatGPT一个网址&#xff0c;让他总结一下这个网址&#xff0c;不到一…

Java 中 CAS 是什么,有哪些实际应用场景

CAS 是什么 CAS&#xff08;Compare And Swap&#xff09;是一种并发编程中的原子操作&#xff0c;用于实现多线程之间的同步。在 Java 中&#xff0c;CAS 操作通过 sun.misc.Unsafe 类实现。 CAS 操作是一种乐观锁机制&#xff0c;它假设对于共享变量的修改操作不会引起冲突…

一个高级测试工程师从23岁到33岁,经历过时间才会懂的这个行业

本文将概述测试工程师的现状及发展方向&#xff0c;并着重介绍测试开发工程师的发展及所需具备的技能&#xff0c;以及本部门搭建的测试平台的概况和意义。 一、测试工程师的现状 很多测试小伙伴在工作中有时会比较迷茫&#xff0c;不知该怎样突破瓶颈&#xff0c;更好的发展。…

加密解密软件VMProtect教程(六):主窗口之控制面板“项目”部分(2)

VMProtect 是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

代码随想录算法训练营day44 | 完全背包,518. 零钱兑换 II,377. 组合总和 Ⅳ

代码随想录算法训练营day44 | 完全背包&#xff0c;518. 零钱兑换 II&#xff0c;377. 组合总和 Ⅳ 完全背包完全背包问题概述例题遍历顺序分析 518. 零钱兑换 II解法一&#xff1a;动态规划 377. 组合总和 Ⅳ解法一&#xff1a;动态规划 总结 完全背包 教程视频&#xff1a;h…

听说你们都在问?(摇人儿啦)

嗨嗨嗨&#xff0c;&#x1f917; 宝子们&#xff0c;今天咱们来一则招聘公告&#xff01;这是 Hugging Face 的 Post-Sales Machine Learning Solutions Engineer - Asia Remote 职位&#xff0c;感兴趣的宝宝请继续往后看&#xff1a; Description Here at Hugging Face, we’…

算法---被围绕的区域

题目 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 ‘X’ 和 ‘O’ &#xff0c;找到所有被 ‘X’ 围绕的区域&#xff0c;并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例 1&#xff1a; 输入&#xff1a;board [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”…

Jetson 套件使用VS-Code远程操作经验分享

远程操作Jetson Nano时,笔者一开始使用FinalShell这个便利的SSH工具,并搭配Nomachine图形界面软件。在前期的单纯学习与简易开发时还能游刃有余,但随着复杂度的提升,不仅需要在几个关联文件中进行交叉修改,可能还需要查看图像/视频这类的输出结果,必须在几个视窗之间不断…