SPA
逐次投影算法(Successive Projections Algorithm, SPA),先找到第一个初始端元,然后循环寻找一个与已提取的端元正交的投影矩阵,再将像元投影至该矩阵,投影长度最大的则为新提取的端元。下面给出代码,还请大家帮忙分析,在此表示感谢!
张兵,孙旭.高光谱图像混合像元分解[M].北京:科学出版社,2015.
MATLAB代码
这是编写的第三个端元提取的代码,由于最近编程的进步以及MATLAB的便捷,该算法的编写过程很简单。此代码仅为个人进行的尝试学习,并不保证结果的正确性。具体代码文件已上传至下载资源中,还望大家提出建议。
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; % 端元数