首页 > 编程语言 >使用python实现高光谱图像绘制 -----高光谱篇

使用python实现高光谱图像绘制 -----高光谱篇

时间:2023-03-11 12:33:26浏览次数:45  
标签:spy 光谱 python ----- install 图像 pip

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使用手册
   

标签:spy,光谱,python,-----,install,图像,pip
From: https://www.cnblogs.com/fredio2022/p/17199153.html

相关文章

  • #一入python深似海,从此妹纸是路人(一)
    1.什么事编程,什么事编程语言?编程:用代码编写程序编程语言:用哪种语法规则来编写程序a=10=>0101010(exe)2.编程语言分类1.编译型:C,GO一次性把源代码进行翻译......
  • Polygon POJ - 1179
       除了维护一个区间最大值,还要一个最小值,(有负数)  #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=160......
  • Shell命令-常用操作2
    Shell命令-常用操作21vim用法:vimfilename说明:用于打开指定的文件三个模式进入文件后,是normal模式normal模式:在此模式下可以通过i进入编辑模式,通过:或/进入命令......
  • SQL-多表查询
       外连接      ......
  • Resolve the conflict between docker and VMWare-ITworkman
    2023-03-11可以选择不实用Hyper-VWSL2backendWindows1164-bit:HomeorProversion21H2orhigher,orEnterpriseorEducationversion21H2orhigher.Windo......
  • VUE+.NET应用系统的国际化-多语言词条服务
    上篇文章我们介绍了VUE+.NET应用系统的国际化-整体设计思路系统国际化改造整体设计思路如下:提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一......
  • python基础二
    一、用户与程序交互#在python3中input:用户输入任何值,都存成字符串类型#在python2中input:用户输入什么类型,就存成什么类型raw_input:等于python3的input二、基本数......
  • 【质因数分解算法详解】C/Java/Go/Python/JS/Dart/Swift/Rust等不同语言实现
    关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异什么是质因数算法?即任意一个合数可以分解为多个质数相乘。例如:20=2*2*545=3*3*5210=2*......
  • 练习记录-cf-div2-A-D
    上课的时候抓紧时间写的,状态不好,c也没过,估计换个环境也很难想吧ALikes题意点赞,a<0表示取消赞a>0表示增加赞,a数组乱序输出如何排让赞数价值最多分别记录大于0和小......
  • 11-应用层-HTTPs
    1.QuickStartHTTPS(HyperTextTransferProtocoloverSecureSocketLayer)超文本传输安全协议1.1与HTTP的区别?HTTP是超文本传输协议,信息是明文传输,存在安全风......