ENVI中绘制的光谱曲线图和可否用python绘制?
首先,答案是肯定的。
之前我绘制光谱曲线的的思路是用(x,y,:)取出高光谱图像中的某个像素处的数值作为纵坐标,光谱波段数作为横坐标(如1-31),但是我一直存疑,这样绘制的是否正确。正好我这两天打算学习一下ENVI,就用ENVI绘制了一下光谱曲线图,结果发现和用Python方法绘制的是一样的!
只不过其中有一点需要调整的细节:
我用CAVE数据集中的“chart_and_stuffed_toy_ms.mat”进行的实验,
首先用ENVI绘制
在图像中随机选取一个坐标
用python绘制光谱曲线图:
先上代码,代码很简单
data = sio.loadmat('G:\envi experiment\chart_and_stuffed_toy_ms.mat')
X = data['msi']
y = X[262,455,:] ##没错,这里就是(262,455),这就是我说的需要注意的地方,我也不懂为啥,总之是画出来了
x = np.arange(0, 31, 1)
plt.plot(x,y,color='darkgoldenrod', label='GT')
plt.xlabel('Band Index')
plt.ylabel('Pixel Value')
plt.legend()
plt.show()
绘制的图如下