端元提取——SPA与VCA

  • SPA
    • MATLAB代码
  • VCA
    • MATLAB代码

SPA

逐次投影算法(Successive Projections Algorithm, SPA),先找到第一个初始端元,然后循环寻找一个与已提取的端元正交的投影矩阵,再将像元投影至该矩阵,投影长度最大的则为新提取的端元。下面给出代码,还请大家帮忙分析,在此表示感谢!

张兵,孙旭.高光谱图像混合像元分解[M].北京:科学出版社,2015.

MATLAB代码

这是编写的第三个端元提取的代码,由于最近编程的进步以及MATLAB的便捷,该算法的编写过程很简单。此代码仅为个人进行的尝试学习,并不保证结果的正确性。具体代码文件已上传至下载资源中,还望大家提出建议。

http://www.pudn.com/Download/item/id/3322020.html

clear all;
close all;
clc;
load sancut64_86.mat;[Lines, Columns, Bands] = size(newpic);
N = Lines * Columns;    % 像元数
iData = reshape(newpic, N, Bands);   % iData:像元 * 波段
iData = iData';     % iData:波段 * 像元
numEndmember = 4;   % 端元数% 提取第一个端元
Data = zeros();
for i = 1:NData(i,:) = (norm(iData(:,i), 2)).^2;
end
[val, id] = max(Data);
E(:,1) = iData(:,id);% 提取后续端元
Ik = eye(Bands);
for k = 1 : numEndmember-1Ek1 = E(:,1:k) / (E(:,1:k)'*E(:,1:k)) * E(:,1:k)';Ek = Ik - Ek1;for i = 1:NData(i,:) = (norm(Ek*iData(:,i), 2)).^2;end[val, id] = max(Data);E(:,k+1) = iData(:,id);
endE

VCA

顶点成分分析(Vertex Component Analysis, VCA),书中所述其与SPA的思路非常相似,只是其中的公式略有不同。下面给出代码,还请大家帮忙分析,在此表示感谢!

张兵,孙旭.高光谱图像混合像元分解[M].北京:科学出版社,2015.

MATLAB代码

这是编写的第四个端元提取的代码,由于书中所述VCA与SPA很相似,故大部分代码沿用SPA。但在计算时,矩阵维度修改了较长时间。且由于随机向量的生成,导致每次运行结果不一致。具体代码文件已上传至下载资源中,还望大家评判。

http://www.pudn.com/Download/item/id/3322020.html

clear all;
close all;
clc;
load sancut64_86.mat;[Lines, Columns, Bands] = size(newpic);
N = Lines * Columns;    % 像元数
iData = reshape(newpic, N, Bands);
iData = iData';   % iData:波段 * 像元
numEndmember = 4;   % 端元数% 提取第一个端元
Data = zeros();
for i = 1:NData(i,:) = (norm(iData(:,i), 2)).^2;
end
[val, id] = max(Data);
E(:,1) = iData(:,id);% 提取后续端元
Data = zeros();
Ik = eye(Bands);
sigma = randn(Bands, 1);
for k = 1 : numEndmember-1Ek1 = E(:,1:k) / (E(:,1:k)'*E(:,1:k)) * E(:,1:k)';Ek = Ik - Ek1;wk = (Ek * sigma) / (norm((Ek * sigma), 2));for i = 1:NData(:,i) = abs(wk' * iData(:,i));end[val, id] = max(Data);E(:,k+1) = iData(:,id);
endE

端元提取——逐次投影算法SPA与顶点成分分析VCA相关推荐

  1. 端元提取——纯像元指数PPI

    端元提取--PPI 说明 PPI MATLAB代码 疑惑 说明 为了毕业设计,本人目前在学习高光谱遥感影像混合像元分解的内容,目前接触该领域不过短短两个多月,所读文献也很有限,有太多内容不明白,故希望 ...

  2. (转)ENVI端元提取(MNF→PPI→n-D Visualizer)

    仍以cai_jian1为例说明 一.MNF变换 1.选择Spectral→MNF Rotation→Forward MNF→Estimate Noise Statistics from Data,如图 ...

  3. ica算法c语言,独立成分分析(ICA)的模拟实验(R语言)

    本笔记是ESL14.7节图14.42的模拟过程.第一部分将以ProDenICA法为例试图介绍ICA的整个计算过程:第二部分将比较ProDenICA.FastICA以及KernelICA这种方法,试图重 ...

  4. EGU-Net——端元导向的解混网络

    EGU-Net 一个自监督光谱解混模型理解 基础知识 基本术语 混合原因 最终目的 论文理解 本文主要贡献 混合模型介绍 Linear Mixing Model-based Unmixing(基于线性 ...

  5. 连续投影算法-python版

    连续投影算法 - SPA python版 文章目录 连续投影算法 - SPA python版 原理 连续投影算法大量用于光谱特征波长选择中,翻遍全网,SPA算法只找到了MATLAB版本. 该版本为MA ...

  6. 论文阅读-Endmember-Guided Unmixing Network (EGU-Net) 端元指导型高光谱解混网络

    标题:端元引导分解网络(EGU-NET):一种通用的自监督高光谱分解深度学习框架 期刊: IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTE ...

  7. OpenCV中直方图反向投影算法详解与实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自:opencv学堂 一:直方图交叉 OpenCV中直方图反向 ...

  8. 基于投影算法实现电表读数识别的Matlab程序

    基于投影算法实现电表读数识别的Matlab程序 电能表是智能电网中的核心设备之一,其精度和稳定性对电能计量和计费的准确性有重要影响.传统的电表读数需要人工进行,不仅费时费力而且容易出现误差.为了提高电 ...

  9. FPGA篇(一) 基于verilog的定点开方运算(1)-逐次逼近算法

    目录 1.逐次逼近算法描述 2.Verilog实现 3.Testbench编写 1.逐次逼近算法描述 逐次逼近算法流程如图 1所示,首先数据输入data[7:0],接着设置实验值D_z[3:0]和确定 ...

  10. 高光谱地物识别练习-从ENVI标准波普库中选择端元进行物质识别

    高光谱地物识别练习-从ENVI标准波普库中选择端元进行物质识别 1.首先打开一个高光谱文件 2.打开标准波普库里的展示 3.选择矿物质有14个数据的一类 4.从14个数据中选

最新文章

  1. 团队-团队编程项目作业名称-需求分析;
  2. 文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍...
  3. JavaScript专题之模拟实现new
  4. 新手学习Java必需要知道的这些基本概念!
  5. 怎样用css设置图片下的投影,css – 做这种投影的最佳方法是什么?
  6. 【NetApp】可以使用查设备备件型号的链接
  7. vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!...
  8. IplImage 加载图像
  9. [转]“新欢乐时光”病毒源代码分析
  10. python 假设检验
  11. 论文笔记——Thompson Sampling for Contextual Bandits with Linear Payoffs(线性收益)
  12. 红米note3android驱动,为何我的红米NOTE3 装不了USB驱动
  13. 腾讯im及时登录注册
  14. Unity3d 中创建实时视频聊天
  15. 世界哲学语录100句(句句珠玑,细细品味)
  16. linux魔兽世界黑屏,在UBUNTU下玩魔兽世界并不轻松。许多问题无法自己解决,请有兴趣的...
  17. 通用计算机考试系统,通用考试评卷系统
  18. 关于Socket类型中SOCK_STREAM和SOCK_DGRAM区别
  19. html5 即时生成图片,HTML5 canvas生成图片马赛克特效插件
  20. 浅谈如何通过互联网推广软件产品

热门文章

  1. 断言(C++大师Andrei Alexandrescu的文章)
  2. windows系统重装(绝对干净)、备份还原、引导修复步骤
  3. [React Native]导航器Navigator
  4. 如何清除计算机的u盘使用记录,如何清除U盘使用痕迹
  5. 一次失败的鼠标修理经验
  6. 贼好玩!我用Python写了一个AI玩星际争霸2!
  7. JavaEE | 语言基础部分、对象与类
  8. 股票集合竞价什么意思?集合竞价时间及集合竞价技巧?
  9. 看小伙如何跟反爬抗争到底
  10. python opendr_《网络工程师的Python之路》出书了!