高光谱图像基于MATLAB的PCA降维 | 您所在的位置:网站首页 › 高光谱图像pca降维意义 › 高光谱图像基于MATLAB的PCA降维 |
工具:matlab,本人使用的是2016a 使用数据集用公开的Salinas数据集为例,Salinas数据集为512*217*204,即它有204个波段,我们要把它从204维降至3维。 matlab中内含了进行PCA降维的函数,但这个函数输进去的数据要是二维的,所以我们先用resharp函数把原矩阵处理成111104*204的矩阵M 再使用自带的降维函数: [pc,score,latent,tsquare] = pca(M) latent用来计算降维后取多少维度能够达到自己需要的精度, 通过下面的代码运行结果可以得到取pc中对应每一维度对原始数据的精度: 在命令行输入 cumsum(latent)./sum(latent) 部分截如下 再取前三维,把矩阵还原为三维。此时便已完成了对高光谱图像的降维。 完整代码如下: M=reshape(d,111104,204); [pc,score,latent,tsquare] = pca(M); feature_after_PCA=score(:,1:3); RES=reshape(feature_after_PCA,512,217,3); |
CopyRight 2018-2019 实验室设备网 版权所有 |