1.高光谱图像
高光谱图像是一个特殊的三维图像,灰度图像是两维,RGB彩色图像虽然是三维图像但只有3层,而高光谱图像是由多个灰度图像组成的三维图像. 比如对一个物体进行高光谱成像,使用 200 × 200 像素并且选择300个波段,那么最终成像结果是 200 × 200 × 300 (长×宽×波段)的三维立体图像。可以理解为每一个像素上有300维的光谱域信息,300幅图像中相同位置像素的灰度值画成曲线表示出来便是这一像素点的光谱域信息了。也就是说,高光谱图像不仅包含丰富的光谱域信息,同时也跟一般的二维图像一样,包含相同的空间域信息。
高光谱图像所捕获的光谱信息以及对应高光谱数据对象之间的非线性关系,给高光谱图像的分析带来了困难. 高光谱图像的主要任务包括: 降维操作、光谱分解、通道检测分类、用于分类的特征学习、修复和去噪、分辨率提高。
2.高光谱图像处理
2.1 读取可视化某波段图像
import scipy.io as sio
import matplotlib.pyplot as plt
# 加载图像,信息位于mat中
img_dic = sio.loadmat('data/images/030406c-20x-roi4.mat')
img_mat = img_dic['mat']
# [x,y,z] 分别表示为长宽波段,显示第(z-1)个波段图像
plt.imshow(img_mat[:,:,33])
plt.axis('off')
plt.show()
# 需要注意的是在img_mat = img_dic['mat'],需要先确定高光谱图像中的信息在哪个key中
其显示的是某个波段的图像:
2.2 生成伪彩色图像
由于高光谱图像是一个三维矩阵,无法通过RGB图像进行展示,所以通过重新赋值