没什么大毛病,为了防止原网页失效,我再大概搬运一下:
需要的环境:spectral,ipython,matplotlib
命令行(cmd)依次输入如下代码:
ipython --pylab #启动Ipython
import os
import scipy.io as sio
from spectral import *
dataset_path = os.path.join('你的数据所存放的路径')
data = sio.loadmat(os.path.join(dataset_path, '你的数据.mat'))['y']
spectral.settings.WX_GL_DEPTH_SIZE = 100
view_cube(data, bands=[29, 19, 9])
--------------------------------------------------------------------------------------------------
2.现在来说一下以上代码在我运行的过程中出现的问题:
(1)***.mat数据的格式,我是用matlab将其改成了长×宽×光谱带数的格式
(2)这个100会报错,我改成了32还是会报错:SystemError: returned a result with an error set
这个错误我在百度谷歌都没有找到解决办法。最后改成16,该错误就不见了
(3)bands=[29,19,9]这个我也不知道是什么意思,我将其改成了我的数据的维度,发现会报错,查了一下资料,看到有人用的数据维度和这个也是不一致的,所以这个我就当做一个默认值,在运行的过程中,没有改动,也就不再报这个错误了
3.然后就是环境问题了:
正常情况下我想大家也和我一样没有安装spectral这个库
所以在运行以上代码之前一定要先装上这个库。参考:
因为要使用git命令,还需要装两个东西,所以我是直接复制网址,下载spectral的
然后按照步骤安装
大概步骤是:
(1)下载并解压
git://www.github.com/spectralpython/spectral.git
(2)cd到你的文件路径,是可以看到setup这个文件
然后
python setup.py install
(3)安装:
pip install spectral
(4)最后进行测试
python -m spectral.tests.run
不过只安装着一个后面还会出问题的,我们看到了他之前说的依赖关系。我是之前电脑上没有安装OpenGL和wxPython(一定确定是适合自己操作系统和python版本的版本)
所以后面有安装了这两个,也没遇到什么大问题,就是在装OpenGL的时候,明明安装成功了,但是import的时候还是会出错,查到的错误原因是我的numpy版本过高,所以卸载了numpy重新安装一遍,之后就没什么问题了。
numpy重装的过程中需要获得管理员权限,linux下是用的sudo,我是windows,所以参考该文获得管理员权限,很详细。
分享一个玄学,做好这一切之后,我还是画不出来。可是熬一个通宵了,实在太困了。我就去睡觉了。