高光谱图像基于MATLAB的PCA降维 您所在的位置:网站首页 高光谱图像pca降维意义 高光谱图像基于MATLAB的PCA降维

高光谱图像基于MATLAB的PCA降维

2024-01-17 18:12| 来源: 网络整理| 查看: 265

工具: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) 部分截如下 我们可以看到只去取第一维的话和原始数据的准确度只有74.4%,我们取到第三维,此时已有99%的精度,一般来说取到90%以上即可。

再取前三维,把矩阵还原为三维。此时便已完成了对高光谱图像的降维。

完整代码如下: 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 实验室设备网 版权所有