python 高光谱图像 3维立体显示以及其出错解决方案
3维立体显示以及其出错解决方案
看到这篇文章的时候,可能你已经遇到很多坑了,最终还是生成不了3d维的高光谱图像,就一直是一个白幕,没有一点东西!!
先附上结果图:
然后我这个解决方案的前提可能你已经配置了环境:
1、我是在pycharm中的终端中实现的 执行ipython
2、所使用的包:spectral、 http:// scipy.io 、wxpython、
这是我之前的代码,就一直生成不了!!后面也是经过填坑,完成了这项工作!
import spectral
import mat73
from spectral import *
from scipy.io import loadmat
import scipy.io as sio
imgs = sio.loadmat(r'/home/ubuntu/lr_Dzr/myCode01/AWAN_master/AWAN_master/AWAN_Clean/test/test_results1/ARAD_HS_0466.mat')['RAD_HS_0466']
# imgs = loadmat('Indian_pines_corrected.mat')['indian_pines_corrected']
spectral.settings.WX_GL_DEPTH_SIZE = 16
view_cube(imgs, bands=[29, 19, 9])
遇到的错误以及解决方案:
1、错误一、关于包mat73
Please use HDF reader for matlab v7.3 files
解决方案:
import mat73 # 记得
imgs = sio.loadmat(r'/home/ubuntu/lr_Dzr/myCode01/AWAN_master/AWAN_master/AWAN_Clean/test/test_results1/ARAD_HS_0466.mat')['RAD_HS_0466']
将上面的这句话改写成:
imgs = mat73.loadmat(r'/home/ubuntu/lr_Dzr/myCode01/AWAN_master/AWAN_master/AWAN_Clean/test/test_results1/ARAD_HS_0466.mat')['RAD_HS_0466']
2、错误二、关于缺少wxpython库
ImportError: Required dependency wx.glcanvas not present
解决方法:
conda install wxpython
3、错误三、 缺少OpenGL库
ModuleNotFoundError: No module named 'OpenGL'
解决方案:
conda install PyOpenGL
4、错误四、
UserWarning: There is no current wx.App object - creating one now.
解决方案:
# 不要在idle中运行,可以在cmd下运行。
5、KeyError: ‘RAD_HS_0466’。错误五、也是最重要的一个错误,可能很多人最后一直搞不出来就是因为这个!
imgs = mat73.loadmat(r'/home/ubuntu/lr_Dzr/myCode01/AWAN_master/AWAN_master/AWAN_Clean/test/test_results1/ARAD_HS_0466.mat')['RAD_HS_0466']
解决方案:
# 这条语句中,后面中括号!!
# 可能看很多帖子,后面就是其名字,其实是不然的,看了loadmat的用法,后面应该填的是是一个名字:但是这个名字怎么看呢?就是把后面的中括号去掉,然后进行debug,后面可以看到:
即就是这个名称!!!
然后回到代码,将中括号进行填写['cube'];即
imgs = mat73.loadmat(r'/home/ubuntu/lr_Dzr/myCode01/AWAN_master/AWAN_master/AWAN_Clean/test/test_results1/ARAD_HS_0466.mat')['cube']
6、还有就是在pycharm中终端运行时,一开始应该加上这个:%pylab(wx是一个GUI库)
最终代码:
%pylab
import spectral
from pylab import *
from spectral import *
from scipy.io import loadmat