使用python实现高光谱图像绘制 -----基础配置篇

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使用手册
 
 
 
posted @ 2023-03-11 12:29  Frideo2022  阅读(2137)  评论(0)    收藏  举报