高光谱图像处理的spectral模块一些用法
目录
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模块一些用法相关推荐
- python下的spectral模块(高光谱图像处理)
Spectral Python (SPy)是一个用于处理高光谱图像数据的纯Python模块.它具有读取.显示.操作和分类高光谱图像的功能. 之所以用它是因为这个对多波段图像的支持更好 参考 一.SPy ...
- 基于python的Spectral模块读取高光谱影像信息的一些笔记
1. 安装spectral模块 spectral模块的安装需要有numpy.pillow.wxpython.matplotlib.ipython等这几个包的铺垫,而且安装spectral模块时看的教程 ...
- python的config模块_python中ConfigParse模块的用法
本文实例讲述了python中configparse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用configparse.rawconfigparse类 读配置用configparse. ...
- python中config方法作用,python中ConfigParse模块的用法
本文实例讲述了python中ConfigParse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用ConfigParse.RawConfigParse类 读配置用ConfigParse. ...
- python中heapq的库是什么_详解Python中heapq模块的用法
详解Python中heapq模块的用法 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...
- python中heapq的库是什么_Python中heapq模块的用法
heapq 模块提供了堆算法.heapq是一种子节点和父节点排序的树形数据结构.这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2 ...
- 【Python】pathlib 模块的用法(Path)
[Python]pathlib 模块的用法 文章目录 [Python]pathlib 模块的用法 1. 介绍 2. 举例 2.1 获取目录 2.2 目录拼接 2.3 创建.删除目录 2.4 读写文件 ...
- MATLAB高光谱图像处理基础
介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理. 文章目录 前言 一.高光谱图像 二.MATLAB高光谱图像处理 1.加载.MAT文件数据 2.图像的显示 3.图像维度变换 总 ...
- et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例
ET200S热电偶模块的用法 在ET200S的热电偶模块使用中,冷端补偿去哪儿了? 客户使用ET200S的热电偶模块(6ES7134-4JB01-0AB0),发现其读值不准,首先确认客户所使用的冷端补 ...
最新文章
- Transform-style和Perspective属性
- openstack创建实例报错Exceeded maximum number of retries
- 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件
- 带你一起撸一遍 nodejs 常用核心模块(二)
- 英特尔k跟kf区别_i5-9600K和i5-9600KF有什么区别
- 数据可视化组队学习:《Task05 - 样式色彩秀芳华》笔记
- php中 elseif和else if 的区别
- 詹森不等式_注意詹森差距
- 小白学习Java技术知识点总结,其实学习Java没那么难
- linux 防火墙开端口(转)
- Scintilla教程(5): 选中
- wincc7.4sp1硬件狗破解不成功
- java基础之静态代理和动态代理
- 【DataBase Notation(1/3)】Notation_Chen, Crow‘s Foot and UML
- 女孩子取什么名字好听又独特?自己家的宝宝就要个好名字
- 蓝叠模拟器查看Android版本,BlueStacks蓝叠版本信息在哪看蓝叠模拟器版本信息查看方法...
- 操作系统存储管理实验课程设计报告
- 将项目上传至GitHub
- npm install 提示 path xxx/node_modules/node-sass npm ERR command failed 解决方法
- python func函数用法_python函数局部变量用法实例分析