主要内容

ppi

利用像素纯度指数提取端成员签名

    描述

    例子

    endmembers= ppi (inputDatanumEndmembers从高光谱数据中提取端元签名多维数据集采用像素纯度指数(PPI)算法。numEndmembers为使用PPI算法提取的端成员签名数。

    该函数将高光谱数据投射到一组随机生成的单位向量上。在单位向量方向上具有极值的像素被认为是纯像素,它们构成端元。输入数据中所有光谱波段上的端元值组成端元签名。有关更多信息,请参见算法

    例子

    endmembers= ppi (inputDatanumEndmembers名称,值除前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。使用此语法可设置的选项

    • 用于投影的随机生成的单位向量的个数。

    • 从简化的高光谱数据中提取端元特征。

    请注意

    此函数需要图像处理工具箱™高光谱成像库.您可以安装图像处理工具箱高光谱成像库从Add-On Explorer。有关安装外接程序的详细信息,请参见获取和管理外接组件

    例子

    全部折叠

    读取高光谱数据到工作区。

    超立方体(“paviaU.hdr”);

    求高光谱数据立方体中存在的光谱不同端元的数量countEndmembersHFC函数。

    numEndmembers = countEndmembersHFC(hcube,PFA的, 10 ^ 7);

    使用像素纯度指数(PPI)方法计算端元。默认情况下,ppi函数采用最大噪声分数(MNF)变换进行预处理。用于投影的默认串数为 1 0 4 10的4次方

    endmembers = ppi(hcube.DataCube,numEndmembers);

    绘制高光谱数据的端元。

    图(端成员)xlabel(带数字的) ylabel (的像素值)标题({“Endmembers光谱”, ('端成员数= 'num2str (numEndmembers)]});ylim (9000 [0])

    读取高光谱数据到工作区。

    超立方体(“paviaU.hdr”);

    求高光谱数据立方体中存在的光谱不同端元的数量countEndmembersHFC函数。

    numEndmembers = countEndmembersHFC(hcube,PFA的, 10 ^ 7);

    使用像素纯度指数(PPI)方法计算端元。指定用于投影的单位向量的数量为100。选择主成分分析(PCA)方法进行降维。

    端元= ppi(hcube。DataCube numEndmembers,“NumVectors”, 100,“ReductionMethod”主成分分析的);

    绘制高光谱数据的端元。

    图(端成员)xlabel(带数字的) ylabel (的像素值ylim([0 9000]) title({“Endmembers光谱”, ('端成员数= 'num2str (numEndmembers)]});

    输入参数

    全部折叠

    输入高光谱数据,指定为3-D数值数组或超立方体对象。如果输入是a超立方体对象,然后该函数从其对象中读取高光谱数据立方体DataCube财产。

    高光谱数据是一个大小的数字数组——- - - - - -N——- - - - - -C而且N分别为高光谱数据中的行数和列数。C是高光谱数据中的光谱带数。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    要提取的端成员数,指定为正标量整数。取值范围必须为[1C]。C为输入高光谱数据中的光谱波段数。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

    在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

    例子:ppi (inputData 7“NumVectors”,100年,“方法”,“没有一个”)

    随机单位向量的数目,指定为逗号分隔的'NumVectors'和一个正标量整数。提取的端元的准确性随着用于投影的向量的数量而增加。然而,增加向量的数量也会增加计算的复杂性。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    降维方法,指定为逗号分隔的'ReductionMethod”,“延长”主成分分析的,或“没有”

    如果将值指定为“延长”主成分分析的,该函数首先通过指定的方法降低输入数据的谱维。然后,从缩减后的数据中计算端点成员签名。

    • “延长”-使用最大噪声分数(MNF)方法进行维数降低。

    • 主成分分析的-使用主成分分析(PCA)方法进行降维。

    如果将值指定为“没有”时,该函数不进行降维。端成员签名直接从输入数据中提取。

    数据类型:字符|字符串

    输出参数

    全部折叠

    端成员签名,作为大小矩阵返回C——- - - - - -P数据类型与输入的高光谱数据相同。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    算法

    像素纯度指数(PPI)方法计算高光谱数据值在一组随机生成的单位向量上的正交投影.然后,该方法计算每个数据值的PPI计数。PPI计数是将数据值作为极值点投影到这些串上的次数。那些大于预期PPI计数数量的数据值构成了高光谱数据的端元。PPI是一种非迭代方法,所涉及的步骤总结如下:

    1. 利用MNF或PCA计算输入数据的主成分频带,降低输入数据的维数。将要提取的主成分频带数设置为要提取的端元数。

    2. 生成k长度与输入数据相同的串数。

    3. r是表示像素光谱的样本向量。然后,将样本向量正交投影到每个串上并找到极值。

    4. 存储每个极值的位置并计算它们的出现次数。发生的数量称为PPI计数。

    5. 找出输入数据立方体中每个像素光谱的PPI计数。

    6. 将像素光谱按其PPI计数降序排列,并确定第一个n在有序集合中作为端元的像素谱的个数。要选择的端成员的数量由输入参数指定numEndmembers

    参考文献

    [1] J.W Boardman, F.A. Kruse和R.O. Green,“基于部分分解的AVIRIS数据映射目标特征”,技术报告,加利福尼亚,1995。

    版本历史

    R2020a中引入