目录

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 ospath = 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 sciopath = 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 sciopath = 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 sciopath1 = 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 sciopath = 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 sciopath = 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')

高光谱图像处理的spectral模块一些用法相关推荐

  1. python下的spectral模块(高光谱图像处理)

    Spectral Python (SPy)是一个用于处理高光谱图像数据的纯Python模块.它具有读取.显示.操作和分类高光谱图像的功能. 之所以用它是因为这个对多波段图像的支持更好 参考 一.SPy ...

  2. 基于python的Spectral模块读取高光谱影像信息的一些笔记

    1. 安装spectral模块 spectral模块的安装需要有numpy.pillow.wxpython.matplotlib.ipython等这几个包的铺垫,而且安装spectral模块时看的教程 ...

  3. python的config模块_python中ConfigParse模块的用法

    本文实例讲述了python中configparse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用configparse.rawconfigparse类 读配置用configparse. ...

  4. python中config方法作用,python中ConfigParse模块的用法

    本文实例讲述了python中ConfigParse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用ConfigParse.RawConfigParse类 读配置用ConfigParse. ...

  5. python中heapq的库是什么_详解Python中heapq模块的用法

    详解Python中heapq模块的用法 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...

  6. python中heapq的库是什么_Python中heapq模块的用法

    heapq 模块提供了堆算法.heapq是一种子节点和父节点排序的树形数据结构.这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2 ...

  7. 【Python】pathlib 模块的用法(Path)

    [Python]pathlib 模块的用法 文章目录 [Python]pathlib 模块的用法 1. 介绍 2. 举例 2.1 获取目录 2.2 目录拼接 2.3 创建.删除目录 2.4 读写文件 ...

  8. MATLAB高光谱图像处理基础

    介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理. 文章目录 前言 一.高光谱图像 二.MATLAB高光谱图像处理 1.加载.MAT文件数据 2.图像的显示 3.图像维度变换 总 ...

  9. et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例

    ET200S热电偶模块的用法 在ET200S的热电偶模块使用中,冷端补偿去哪儿了? 客户使用ET200S的热电偶模块(6ES7134-4JB01-0AB0),发现其读值不准,首先确认客户所使用的冷端补 ...

最新文章

  1. Transform-style和Perspective属性
  2. openstack创建实例报错Exceeded maximum number of retries
  3. 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件
  4. 带你一起撸一遍 nodejs 常用核心模块(二)
  5. 英特尔k跟kf区别_i5-9600K和i5-9600KF有什么区别
  6. 数据可视化组队学习:《Task05 - 样式色彩秀芳华》笔记
  7. php中 elseif和else if 的区别
  8. 詹森不等式_注意詹森差距
  9. 小白学习Java技术知识点总结,其实学习Java没那么难
  10. linux 防火墙开端口(转)
  11. Scintilla教程(5): 选中
  12. wincc7.4sp1硬件狗破解不成功
  13. java基础之静态代理和动态代理
  14. 【DataBase Notation(1/3)】Notation_Chen, Crow‘s Foot and UML
  15. 女孩子取什么名字好听又独特?自己家的宝宝就要个好名字
  16. 蓝叠模拟器查看Android版本,BlueStacks蓝叠版本信息在哪看蓝叠模拟器版本信息查看方法...
  17. 操作系统存储管理实验课程设计报告
  18. 将项目上传至GitHub
  19. npm install 提示 path xxx/node_modules/node-sass npm ERR command failed 解决方法
  20. python func函数用法_python函数局部变量用法实例分析

热门文章

  1. Server2016运行卡顿-关闭ECN
  2. linux脚本执行命令登录,Linux登录后自动执行脚本,系统基础信息一目了然
  3. 通用数字支付网络(UDPN)于达沃斯论坛期间正式发布
  4. C语言数据结构_图、图的深度优先遍历、广度优先遍历
  5. Element UI table超出文本部分显示省略号,鼠标悬浮显示全部内容
  6. Schnorr协议:非交互零知识身份证明和数字签名
  7. Python根据用户输入的2进制字符串转8进制
  8. 计算机毕业设计-java-ssm电子元件仓库管理系统
  9. NPDP-《新产品战略》
  10. 生成所有错位排列的算法