主要内容

nfindr.

使用N-FINDR提取端成员签名

    描述

    例子

    终点= nfindr (inputDataNumendmembers.从高光谱数据中提取端元特征多维数据集通过使用N-finder (N-FINDR)算法。Numendmembers.为使用N-FINDR算法提取的端成员签名的个数。有关N-FINDR方法的更多信息,请参见算法

    例子

    终点= nfindr (inputDataNumendmembers.名称,值除了前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。使用此语法设置迭代次数和降维选项。

    请注意

    此功能需要图像处理工具箱™高光谱成像库.你可以安装图像处理工具箱高光谱成像库从附加的探险家。有关安装附加组件的详细信息,请参见获取和管理附加组件

    例子

    全部收缩

    将高光谱数据读入工作区。

    hcube = hypercube('paviau.hdr');

    通过使用找到超细数据立方体中存在的频谱不同endmembers的数量countEndmembersHFC函数。

    numendmembers = counterendmembershfc(hcube,'pfa', 10 ^ 7);

    使用N-FINDR方法计算端成员。默认情况下,nfindr.功能使用最大噪声分数(MNF)变换进行预处理。迭代次数的默认值是估计endmembers次数的3倍。

    EndMembers = nfindr(Hcube.datacube,Numendmembers);

    绘制超光谱数据的终点。

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

    将高光谱数据读入工作区。

    hcube = hypercube('paviau.hdr');

    通过使用找到超细数据立方体中存在的频谱不同endmembers的数量countEndmembersHFC函数。

    numendmembers = counterendmembershfc(hcube,'pfa', 10 ^ 7);

    使用N-FINDR方法计算端成员。将迭代次数的值指定为1000。选择主成分分析(PCA)作为预处理的维度减少方法。

    EndMembers = Nfindr(HCube.Datacube,NumendMembers,'numiteration', 1000,“ReductionMethod”'pca');

    绘制超光谱数据的终点。

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

    输入参数

    全部收缩

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

    高光谱数据是大小的数字数组-经过-N-经过-CN分别是高光谱数据中的行数和列数。C是高光谱数据中的光谱频带数。

    数据类型:|双倍的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64

    提取的endmembers数量,指定为正标量整数。该值必须在范围内[1C]。C为输入的高光谱数据中的光谱波段数。

    数据类型:|双倍的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64

    名称值对参数

    指定可选的逗号分隔的对名称,值论点。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

    例子:nfindr(立方体,7,'numitrations',100,'方法','none')

    指定为正标量整数的迭代次数。默认值是3.PP是要提取的终结签名的数量。算法的计算时间随着迭代次数的增加而增加。

    数据类型:|双倍的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64

    降维方法,指定为以下值之一:

    • “延长”—使用最大噪声分数(MNF)方法进行降维。这是默认值。

    • 'pca'—采用主成分分析(PCA)方法降维。

    如果指定此参数,则该函数首先使用指定的方法降低输入数据的光谱维数。然后,从简化后的数据中计算端成员签名。

    数据类型:char|字符串

    输出参数

    全部收缩

    EndMember签名,作为大小的矩阵返回C-经过-P和数据类型与输入超光谱数据的数据类型相同。

    数据类型:|双倍的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64

    算法

    N-FINDR是一种寻找高光谱数据端元的迭代方法。该方法假定由端元(最纯粹的像素)形成的单形的体积大于由任何其他像素[1]组合定义的任何其他体积。所涉及的步骤如下:

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

    2. 随机选择n将简化后的数据中的像素光谱数作为初始端元集。

    3. 对于迭代1,表示初始的终端组合器 e 1 1 e 2 1 e p 1

      将端元视为单形的顶点,用

      V E 1 | 依据 E 1 |

      在哪里 E 1 1 1 1 e 1 1 e 2 1 e p 1

    4. 对于迭代2,选择一个新的像素光谱r,这样 r e 1 1 e 2 1 e p 1

    5. 将集合中的每个端成员替换为r并计算单面的音量VE(2)

    6. 取代th在集合中的终点r,如果计算的卷VE(2)大于VE(1).这将产生一组更新的端元。例如,如果= 2,在第二次迭代结束时导出的新一组终点 e 1 2 e 2 2 r e p 2

    7. 对于每次迭代,选择一个新的像素谱r重复步骤5和6。每次迭代都会产生一个端成员的更新集。当迭代总数达到指定值时,迭代结束NumIterations

    参考

    “N-FINDR:高光谱数据中快速自主光谱端元确定的算法”。SPIE成像光谱法3753,(1999年10月):266-75。https://doi.org/10.1117/12.366289。

    介绍了R2020a