Python 已经有足够的包可以实现高光谱图像的绘制和各种精确显示。现总结python实现.mat资源文件的高光谱图像显示方案。
需要准备 python3.10 及以下版本,目前高光谱显示所需包,wxPython最新的4.2只支持到python3.10。
需要更新pip工具包 需要spicy,matplotlib, spectral,wxPython
使用IDE为vscode。
第一步:测试python环境配置是否正确。
新建一个.py文件 写入print(‘Hello world’) 右键选择在python终端运行(两个都可以)。会在下部出现终端框,并显示hello。恭喜,python配置无误,可以正式开始调高光谱啦。
第二步: 在终端使用python自带pip安装和更新所需包
查看已安装包列表 pip list
首先讲文件夹位置调至python安装路径,
cd D:\install\python3.10.9\Scripts
然后输入更新和安装代码(需一个一个进行)
首先更新pip和tools
python.exe -m pip install --upgrade pip pip install ipython # (调试环境包) pip install spectral #(高光谱包) pip install scipy # (高光谱包) pip install PyopenGL # (用于显示图像) pip install wePython #(用于显示界面和图像控制) pip install matplotlib # (包含作图部分所需包以及pylab)
在scripts界面进入刚下载的ipython的环境,在ipython环境下才能进行后续操作 输入 .\ipython
此时再次键入pip list ,显示的包中包含下图红框内所示,已经完成高光谱环境配置。
第三部:开始写高光谱图像显示的代码
%pylab import matplotlib.pyplot as plt import wx from scipy.io import loadmat import spectral as spy # 获取mat格式的数据,loadmat输出的是dict,所以需要进行定位 input_image = loadmat('E:\B\Coded_A\database\Indian_pines_corrected.mat')['indian_pines_corrected'] spy.settings.WX_GL_DEPTH_SIZE = 16 view1 = spy.imshow(data=input_image, bands=[69, 27, 11], title="img") # 图像显示 app = wx.App() spy.view_cube(input_image, bands=[59,38,20]) # bands参数按需要换成自己的 app.MainLoop()
效果图如下
app = wx.App() 创建一个新任务
app.MainLoop() 是保持任务循环,否则会黑屏或者卡死。
目前遇到的错误
1、命令提示行输入cd换文件夹不显示 输入cd D:\***** 之后跳到下一行但是不显示新文件夹。
解决方法:输入D:更换盘符 输入cd D:\install\python3.10.9\Scripts之后, 再次输入D:
2、安装wxpython时一直报错
解决方法:检查python版本,wxpython仅支持到python3.10
3、提示 C++ assertion ""Assert failure"" failed at ..\..\src\msw\glcanvas.cpp(771) in wxGLCanvas::Create(): Can't find a pixel format for the requested attributes
解决方案:spy.settings.WX_GL_DEPTH_SIZE = 16 数量设置为16. 设置为100报错。标签:spy,光谱,python,-----,install,图像,pip From: https://www.cnblogs.com/fredio2022/p/17199153.html
后续将更新SPY的python使用手册