需要的文件、包
numpy、matplotlib、spectral、wxpython、OpenGL这些包
1、numpy、matplotlib、wxpython可以直接在anaconda安装,其他的建议单独安装。
2、spectral:安装,GitHub上可以直接下载安装,主页也有教程。
SPy下载链接
这个是spectral主页,里边有关于spectral的介绍。
我建议直接在GitHub上下载之后在安装会方便点,因为其他的方法我试过,我是没成功。
如果GitHub不能用的话,pypi下载连接 这个链接也可以下载
下载之后,打开anaconda prompt,切换自己的环境,然后转换到下载的路径处,输入下边的路径就安装好了。
python setup.py install
3、OpenGL:这个我当时直接在anaconda上下的,然后就报错不能用,然后我用了pip安装第三方修改的whl安装包。地址:python的各种包直接搜索OpenGL下载OpenGL和PyOpenGL_accelerate的包
下载完后在本地安装,安装本地包方法: pip install ‘包’,还有就是注意本地pip要和下载的文件对应(具体我上篇文章有讲)。
正文
这些包下载好之后,然后就今天的主题,高光谱图像显示。
%pylab
import spectral
from pylab import *
from spectral import *
from scipy.io import loadmat
imgs = sio.loadmat(r'D:/PyCharm/pytorch/data.mat')['aa']
spectral.settings.WX_GL_DEPTH_SIZE = 16
view_cube(imgs, bands=[54,34,20])
上边是需要的代码,运行的话我是在ipython中运行的。pycharm中的terminal终端输入ipython(如果没有安装的话安装一下)。然后一句一句输入就行
本来想直接用pycharm跑,但是一直报错(提示编译器有问题),spyder也可以用(我同门用的这个跑的),我试过了我跑不通,但他可以。
里边的%pylab 要导入一下的,不导入会显示窗口内容为空且处于卡死状态。
其中
imgs = sio.loadmat(r'D:/PyCharm/pytorch/data.mat')['aa']
这一句是导入数据,后边的字典的话是数据对应的名字,我当时看别人写的时候没人介绍这个,就提示字典报错
最后一行,bands后边是对应的三个光谱,要形成一个主面的rgb图像的,研究高光谱的这个应该都懂的。
各种报错
导入数据时,字典报错
报错内容:KeyError: ‘S’。
这个就是导入的数据后边跟的字典跟文件里边的不对应。当时看别人写的都是字典处是数据的名字,我也跟着打,就报错了。然后看了才知道loadmat的用法。查询方法就是先把后边加的去掉,然后看一下数据内容显示
比如是我的显示是aa,所有我后边跟的就是【‘aa’】
pylab
内容:
%pylab
^
SyntaxError: invalid syntax
解决方法:这个就是要在ipython中运行,不过后来试了不加%pylab也可以。
内容:SPy graphics functions are inteded to be run from IPython with the
pylab
mode set for wxWindows. For example,
解决方法:这个是因为没导入pylab。
"module ‘numpy’ has no attribute ‘float128’ "。
上边是报错内容,原因就是微软编译器不支持numpy.float128数据类型。OpenGL
解决方法:
使用pip安装第三方修改的whl安装包。(先删除OpenGL,然后转到上边的OpenGL安装)
最后在ipython上跑就能显示了
好像大概就是这么多。然后就是还有一个报错,我跑出来之后提示:
There is no current wx.App object - creating one now.
UserWarning
还有一个这个,不过跑出来可以显示了(who care!)。
然后就是退出,多开几张图片可以点关闭,但是只剩一张的时候是退不掉的,命令行输入 ‘ exit ’
就可以了
总的来说,想要显示图片的话跟着步骤走应该是没问题的。
%pylab这个加或不加都可以,加的话多一个警告,对使用没啥影响