开始介绍高光谱降维之前,我们首先回忆PCA的原理。

推荐B站UP:交通数据小旭学长 《用最直观的方式告诉你:什么是主成分分析PCA》

一、PCA原理

1.1 引入

假设手上有一组二维数据D,它们排列成了一条直线实则一维数据,此时我们如果能找到新的一维坐标系,这些点即可存储成一维数据。本文接下来所讲述的主成分分析方法(Principal Component Analysis, PCA)就是满足这种需求的降维方法。

所以,PCA最重要的就是找一个好的坐标系,使手上的数据最大程度地保留信息。

那什么样的坐标系算好的呢?答:数据在该坐标系上的投影越分散越好,也就是方差越大越好。

1.2 PCA步骤详解

第一步,去中心化 把坐标原点放在数据中心

第二步,找坐标系 找到方差最大的方向(核心问题)

第三步,求新的坐标点

第二步是最核心的步骤,怎么找到新坐标轴的方向呢?在这之前,先复习一下数据线性表换。

拉伸矩阵S 数据D SD表示对数据D进行拉伸

旋转矩阵R RD表示对数据D进行旋转

(左乘矩阵相当于对数据进行线性变换)

白数据是我们希望得到的各坐标轴不相关的,没有冗余的数据

我们手上的数据可以通过降维得到类似白数据的形式。

白数据D可以通过拉伸和旋转得到我们手上的数据D'=RSD

手上的数据也可以通过逆变换得到白数据

旋转矩阵R怎么求呢?答:协方差矩阵的特征向量

总结:

PCA缺点:离群点的影响大

二、高光谱图像降维

数据来源:

http://www.ehu.eus/ccwintco/index.php?title=Hyperspectral_Remote_Sensing_Scenes#Salinas_scene

Indian Pines: 该场景由AVIRIS (Airborne VisibleInfrared Imaging Spectrometer,机载可见光/红外成像光谱仪) 传感器在印第安纳州西北部的印第安松树试验场采集,由145×145像素和224个光谱反射带组成,波长范围为0.4–2.5μm。空间分辨率20m,谱分辨率10nm。该数据文件下包括Indian_pines_corrected.mat和Indian_pines_gt.mat文件。其中文件名中含有corrected的.mat文件为原始三维的遥感数据。剩下的一个.mat文件是遥感数据的lable标签,它是二维数据。

%% 数据读取

filename = ['Indian_pines\Indian_pines_corrected'];

X=load(filename);

A=X.indian_pines_corrected; %高光谱数据X是结构体,需要X.来进行调用;

%% 数据降维 reshape

[m,n,p]=size(A); %m行数 n列数 p波段数

t=m*n;

M=reshape(A,t,p);% M[样本数 波段数]

%% 主成分分析

[pc,score,latent,tsquare]=pca(M);%pc为主成分系数,score为主成分的结果,latent为方差

k=3;

feature_after_PCA=score(:,1:k);

RES=reshape(feature_after_PCA,m,n,k);

Matlab高光谱图像PCA降维[附代码]相关推荐

  1. 高光谱图像pca降维_高光谱图像的数据特性之探讨

    图像是获取信息以及探知世界的重要媒介.近年来,传感科技与成像技术实现了跨越式发展,促使图像获取在质与量上均获得了显著提升.在多样化成像手段中,光谱成像技术是成像科技的重要组成部分,是人类借助光这一能量 ...

  2. MATLAB坐标系变换动画gif(附代码):坐标系旋转动画+坐标系平移动画代码

    MATLAB坐标系变换动画gif(附代码) 以之前的文章中的例题为例,绘制一个向量和一个运动坐标系在空间中的变换过程,并生成gif动画. 已知坐标系{B}的初始位姿与{A}重合,首先{B}相对于{A} ...

  3. MATLAB高光谱图像构建KNN图

    在高光谱图像的特征提取过程中,采用非线性降维的方式对高光谱图像降维的过程中,采用图自编码器来对数据进行降维,需要将利用高光谱图像的结构信息和内容信息,则需要将高光谱图像数据构造为一个图结构,图结构的构 ...

  4. MATLAB实战系列(一)-二维路径规划算法续集-图像边缘提取(附代码)

    用MATLAB实现的图像边缘提取的代码: clear;clc;I=imread('lena.bmp'); I=rgb2gray(I); imshow(I,[]); title('Original Im ...

  5. 基于python的pca实现(附代码)

    前段时间根据项目需要,了解了PCA的降维方法,现将自己的心得与代码记录下来. 本文主要从python代码的实现入手,对理论知识剖析较少. PCA,即为主成分分析法,旨在通过纯数理的方式将多个特征维度降 ...

  6. 写一个基于MATLAB的图像均值滤波去噪代码

    首先,需要载入图像.在 MATLAB 中,可以使用函数 imread 来载入图像.例如: I = imread('image.jpg'); 然后,可以使用函数 imfilter 来对图像进行均值滤波. ...

  7. 2022年 change detection遥感图像变化检测 论文附代码

    1.Remote Sensing Change Detection using Denoising Diffusion Probabilistic Models 论文 代码 22-6 动机: 可用于训 ...

  8. PCA降维算法总结以及matlab实现PCA(个人的一点理解)

    转载请声明出处.by watkins song 鉴于本文比较混乱, 所以写了一个新的PCA的详细介绍, 请参见: http://blog.csdn.net/watkinsong/article/det ...

  9. MATLAB处理高光谱图像数据

    以下内容主要包括四个方面: (1)显示第2到5条光谱反射率和波长的关系(折线图): (2)显示前四条叶绿素值的条形图 (3)显示叶绿素与各个波段的相关性折线图 (4)计算植被指数NDVI与叶绿素对应的 ...

最新文章

  1. 这二维码鬼畜起来了,加颜色加插画还能加GIF
  2. 演练:有效减法设计,才能开放加法
  3. 什么是Ext(ExtJs)【转载】
  4. WCF中的REST是什么
  5. ffmpeg 截图太模糊了_技法课堂 | 巧用截图工具,一小时迅速完成线稿风效果图...
  6. 2月之最---2012年最后一个2月((*^__^*) )
  7. 印象笔记Markdown样式美化
  8. MFC 通用对话框之“查找/替换“对话框
  9. 《阴阳师·2栀子女》原作:梦枕貘
  10. OSPF配置及MD5验证
  11. 荣耀4a android art,荣耀4A黑科技大揭秘,真是给工程师给跪了!!
  12. WinRAR压缩软件去除广告
  13. 英文学习20180621
  14. 华为云鲲鹏服务器部署文档--java微服务
  15. Linux进程(上)
  16. 三星新硬盘 旧硬盘_我应该如何存放旧硬盘和电子组件?
  17. 安全测试:xss,cookie,xst注入攻防
  18. vue+element-tiptap
  19. DSP篇--C6701 BOOT(头文件烧写法)
  20. 运维工程师面试试题(一)

热门文章

  1. 【JOI 2015 Final】铁路旅行
  2. mysql left join 去重_SQL LEFT JOIN 数据去重复
  3. 一个没有演讲经验的人,怎样迅速提高演讲能力?
  4. PAT甲级训练合集(1-70)
  5. 如何成长为一名优秀的产品经理?
  6. 疑难杂症:内存明明很富裕,却还是申请不到?
  7. 我的java自学经历,土木转行java的
  8. 《灵犬雪莉》主题曲《Belle》歌词翻译(非原创)
  9. Symbian Belle短信备份程序
  10. 如何查看键盘上面的键值?