高光谱图像处理的spectral模块一些用法

news2024/12/30 2:51:45

目录

1、安装

2、读取高光谱图像

3、显示高光谱图像

4、spectral的特点

5、标签图显示

6、标签、地物融合显示

8、显示三维立方体

9、保存图像


1、安装

pip install spectral -i https://pypi.tuna.tsinghua.edu.cn/simple

2、读取高光谱图像

# -*- coding:utf-8 _*-
import spectral
import os

path = r"E:\Users\zt\Desktop\数据\Indian_pines.dat"
img = spectral.envi.open(os.path.splitext(path)[0]+'.hdr', path) # ENVI格式
print(img.shape)

3、显示高光谱图像

# -*- coding:utf-8 _*-
import spectral
import matplotlib.pyplot as plt
import scipy.io as scio

path = r"E:\Users\zt\Desktop\数据\Indian_pines.mat"
img = scio.loadmat(path)

view = spectral.imshow(img["indian_pines"],bands=(29,19,9)) # 显示图像
plt.pause(60)

4、spectral的特点

以下特点是基于在第3部分显示的基础上。 

  • 图像放大镜

按下z键盘键,将打开变焦窗口,显示图像的放大视图。通过按住‎‎ctrl‎‎键并在原始窗口中用鼠标左键单击,缩放窗口将显示原始窗口中选中的像素

  • 显示像素光谱信息

双击原始图或者缩放窗口中的点,将会显示该点的全波段信息。点可以叠加。

  • 显示RGB 数据

view = imshow(img, (29, 19, 9))
print(view)

# 输出
# ImageView object:
#   Display bands       :  (29, 19, 9)
#   Interpolation       :  <default>
#   RGB data limits     :
#     R: [2054.0, 6317.0]
#     G: [2775.0, 7307.0]
#     B: [3560.0, 7928.0]

imshow(img, (29, 19, 9))中的(29,19,9)就是从光谱中分别抽取的第29,19,9个波段来当替代RGB三个波段。形成伪RGB图像。(原因是谱相机可能避开了可见光部分波段,无法形成真RGB图)

5、标签图显示

# -*- coding:utf-8 _*-
import spectral
import matplotlib.pyplot as plt
import scipy.io as scio

path = r"E:\Users\zt\Desktop\数据\Indian_pines_gt.mat"
gt = scio.loadmat(path)

view = spectral.imshow(classes=gt["indian_pines_gt"]) # 显示标签图像
plt.pause(60)

6、标签、地物融合显示

# -*- coding:utf-8 _*-
import spectral
import matplotlib.pyplot as plt
import scipy.io as scio

path1 = r"E:\Users\zt\Desktop\数据\Indian_pines_gt.mat"
path2 = r"E:\Users\zt\Desktop\数据\Indian_pines.mat"
gt = scio.loadmat(path1)
img = scio.loadmat(path2)

view = spectral.imshow(img["indian_pines"], (30, 20, 10), classes=gt["indian_pines_gt"])
view.set_display_mode('overlay') #显示模式为覆盖
view.class_alpha = 0.5 #透明度

plt.pause(60)

8、显示三维立方体

这部分需要安装wx包,openGL包,wx基于 wxPython 模块实现

pip install wxPython -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyOpenGL -i https://pypi.tuna.tsinghua.edu.cn/simple

安装好了就可以显示了,输入以下代码

# -*- coding:utf-8 _*-
import spectral
import matplotlib.pyplot as plt
import scipy.io as scio

path = r"E:\Users\zt\Desktop\数据\Indian_pines.mat"
img = scio.loadmat(path)

view = spectral.view_cube(img["indian_pines"], (30, 20, 10)) # 这里也可以不选波段,但是打开会慢很多
img_1 = img["indian_pines"][:,:,19].reshape(145,145)
plt.imshow(img_1)
plt.pause(60)

这里注意,打开的窗口产生空白画布(未显示立方体),如果是显示器不支持32位深度缓冲区,可以使用如下命令改变缓冲器大小位16位等

spectral.settings.WX_GL_DEPTH_SIZE = 16

9、保存图像

‎保存索引彩色图像类似于保存 RGB 图像 

# -*- coding:utf-8 _*-
import spectral
import matplotlib.pyplot as plt
import scipy.io as scio

path = r"E:\Users\zt\Desktop\数据\Indian_pines.mat"
img = scio.loadmat(path)

view = spectral.imshow(img["indian_pines"],bands=(29,19,9)) # 显示图像
spectral.save_rgb('rgb.png', img["indian_pines"], [29, 19, 9])
# plt.savefig('rgb.png')

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

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

相关文章

react笔记_14在react中使用echarts

目录 echarts官网在项目引入echarts[1]下载[2-1] 全量引入[2-2]按需引入问题 - 仅引入核心模块 图表配置[1] 柱状图(bar)横/纵向柱状图 [2] 漏斗图(funnel)漏斗图的形状 echarts官网 echarts官网 在项目引入echarts [1]下载 npm install echarts [2-1] 全量引入 import *…

FPGA_学习_05_管脚约束

前言&#xff1a;就初学管脚约束相关知识而言&#xff0c;内容还不足以构成饱满的文章。 但管脚约束是一个独立的内容&#xff0c;它是值得有一篇单独的博客的。若后续学习了管脚约束新的知识&#xff0c;则进一步扩充本篇博客内容。 1 XDC基础语法 Vivado的管脚约束文件用XDC…

易基因:m5C高甲基化介导EGFR突变的非小细胞肺癌耐药潜在机理|国人佳作

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 对EGFR酪氨酸激酶抑制剂&#xff08;EGFR-TKI&#xff09;的固有耐药&#xff08;Intrinsic resistance&#xff09;和获得耐药(acquired resistance)是EGFR突变型非小细胞肺癌(NSCLC)患…

当上了小领导如何管理手下员工才能最高效的工作?

公司新建了一个项目&#xff0c;我负责招人并管理&#xff0c;之前没有正式的管理经验&#xff0c;如何才能更好的管理新人&#xff0c;快速推进工作&#xff1f; 在公司新建项目时&#xff0c;担任小领导的你需要负责招人和管理团队成员。作为一个没有正式管理经验的人&#x…

Elsevier Ocean Engineering Guide for Authors 解读

文章目录 ★Types of contributions★Submission checklistEthics in publishing★Declaration of competing interestDeclaration of generative AI in scientific writingSubmission declaration and verificationPreprint posting on SSRNUse of inclusive languageReportin…

vue-antd-admin加载动态菜单的步骤——vue3动态菜单——技能提升

最近在写后台管理系统时&#xff0c;发现老系统有个需求&#xff0c;就是动态加载菜单 以往的静态菜单&#xff1a;路由都放在router/config.js中&#xff0c;菜单页面放在pages里面。 加载的动态菜单&#xff1a;路由是通过接口获取&#xff0c;然后加载到路由中&#xff0c…

凌恩生物美文分享 | Nature教你如何深入开展植物基因组研究,看这篇绝对够!

自三代测序技术面世以来&#xff0c;基因组的相关研究迈上了一个新台阶&#xff0c;无论是完整性、连续性、准确性较二代测序技术组装基因组均有较大的提升。凌恩生物也紧随前沿&#xff0c;整合多种优势技术及信息分析平台&#xff0c;涵盖Illumina&#xff0c;Pacbio等多种测…

阿里主动改革,再次引领国内公司治理新浪潮

北京时间2023年5月18日美股盘前&#xff0c;阿里公布2023财年Q4及全年财报&#xff0c;整体财务状况符合市场预期&#xff0c;但推动组织变革的进度&#xff0c;却给了市场一个“惊喜”。 财报中&#xff0c;阿里宣布了整体组织变革背景下&#xff0c;旗下数个业务的未来方向&…

【HISI IC萌新虚拟项目】Package Process Unit模块整体方案·PART2

4.系统功能和主要技术指标论证 4.1芯片总体结构图 芯片总体结构框图如图2所示。 图 2 packet_process_unit 芯片结构框图 芯片内部主要电路包括 cpu_if 接口电路、sram 检测电路 test_core 以及 spt 包转发接口电 路。以下对主要部分分别进行简要介绍: 1.cpu_if 接口电路 该…

LOTO示波器如何测试阻抗的频响曲线

LOTO示波器如何测试阻抗的频响曲线 模块的输入输出端口&#xff0c;在电路分析上&#xff0c;一般简单表征为电阻来进行计算和分析。但多数情况下&#xff0c;这些端口并不是纯电阻的特性&#xff0c;更精确一些&#xff0c;它可能是电阻电容以及电感的组合&#xff0c;表现为非…

Vite打包优化

关于指标&#xff0c;这里简单介绍下常见的优化指标 FCP&#xff08;First Contentful Paint&#xff09;&#xff1a;白屏时间&#xff08;第一个文本绘制时间&#xff09;Speed Index&#xff1a;首屏时间TTI&#xff08;Time To Interactive&#xff09;: 第一次可交互的时l…

什么是合伙企业?普通合伙和有限合伙区别?

1.什么是合伙企业? 合伙企业是指由各合伙人订立合伙协议&#xff0c;共同出资&#xff0c;共同经营&#xff0c;共享收益&#xff0c;共担风险&#xff0c;并对企业债务承担无限连带责任的营利性组织。合伙企业一般无法人资格&#xff0c;不缴纳企业所得税&#xff0c;缴纳个…

自制0-36V便携电源:typec+pd诱骗

1、芯片选择&#xff1a; 1.1、LDR6321 选用LDR6321&#xff0c;最高诱骗输出20V&#xff0c;手册如下&#xff1a; https://atta.szlcsc.com/upload/public/pdf/source/20211112/6C547DE14631DD2A11892D79A9F4FADD.pdf 该芯片立创商城有售&#xff0c;淘宝也有售&#xff0c…

pix2pixHD

High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs pix2pixHD提出了一个模型用于从label map中生成真实的photo。 pix2pixHD都是使用的CGAN的思想&#xff0c;不同的是本文可以产生更加高清的图像&#xff0c;pix2pix生成的是256x256&#xf…

js内存泄露

文章目录 定义引起内存泄漏的操作&#xff1a;Chrome 控制台查看内存情况无痕模式PerformanceMemotry1. 先用 Allocation instrumentation on timeline 确认问题2. 再用 Head snapshot 定位代码 闭包函数使用不当 js内存泄露如何检测&#xff1f;场景有哪些&#xff1f;如何定位…

2023年财务管理案例研究与应用(圆桌)论坛在京举办

2023年5月13日&#xff0c;由中国企业财务管理协会、机械工业信息研究院与用友网络科技股份有限公司共同策划的 2023 财务管理案例研究与应用 (圆桌) 论坛在用友产业园成功举办。 国务院国资委财务监管与运行评价局局长李冰&#xff0c;中国企业财务管理协会副会长&#xff08;…

macOS 安装NVM

一、卸载已经安装的node 我用命令brew uninstall node16 发现报错 后面我用where node 发现当时安装node并没有用brew工具安装 于是运用删除文件的方式卸载node sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}二、brew 安装nu…

MySQL—日志

文章目录 一、错误日志二、二进制日志2.1 介绍2.2 格式2.3 查看2.4 删除 三、查询日志四、慢查询日志 一、错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当数据…

铿锵玫瑰 别样绽放

-----衢州首支飞盘女队成立 5月15日在一个火热既温馨的下午&#xff0c;在衢州市衢江区社会组织服务中心“馨满益足”女工服务站里。首批优秀女性代表集聚一堂举行了衢州铿锵玫瑰飞盘女队沙龙。至此衢州首支飞盘女队正式落地&#xff0c;这支队伍将在今后参加各类女子飞盘比赛…

DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

原文&#xff1a;DevEco Studio 3.1 Release | 动态共享包开发&#xff0c;编译更快&#xff0c;包更小&#xff0c;点击链接查看更多技术内容。 动态共享包&#xff08;HSP&#xff09;开发是DevEco Studio 3.1 Release版本带来的新特性&#xff0c;基于新的编译方式&#xff…