主要内容

fippi

使用快速迭代像素纯度指数提取末端签名

    Description

    example

    endmembers= fippi(inputData,numendMembers)extracts endmember signatures from hyperspectral datainputData通过使用快速迭代像素纯度指数(FIPPI)算法。numendMembers是使用FIPPI算法提取的末端签名数。有关FIPPI方法的更多信息,请参阅算法.

    example

    endmembers= fippi(inputData,numendMembers,'ReductionMethod',method)additionally specifies the option for selecting the dimensionality reduction method to be used before computing the endmembers.

    Note

    This function requires the图像处理工具箱™高光谱成像库. You can install the图像处理工具箱Hyperspectral Imaging Libraryfrom Add-On Explorer. For more information about installing add-ons, seeGet and Manage Add-Ons.

    Examples

    collapse all

    在工作区中阅读高光谱数据。

    hcube = hypercube('paviau.hdr');

    通过使用高光谱数据立方体中存在的频谱不同的末端成员的数量countEndmembersHFCfunction.

    numEndMembers = CountendMembersHFC(HCUBE,,'PFA',10^-7);

    Compute the endmembers using the fast iterative pixel purity index (FIPPI) method. By default, thefippi功能使用最大噪声分数(MNF)变换进行预处理。

    endmembers = fippi(hcube.datacube,numendMembers);

    绘制高光谱数据的最终成员。

    图图(Endmembers)Xlabel('Band Number')ylabel(“像素值”) ylim([0 9000]) title({'Endmembers Spectra',[['endmembers ='num2str(numEndmembers)]});

    在工作区中阅读高光谱数据。

    hcube = hypercube('paviau.hdr');

    通过使用高光谱数据立方体中存在的频谱不同的末端成员的数量countEndmembersHFCfunction.

    numEndMembers = CountendMembersHFC(HCUBE,,'PFA',10^-7);

    Compute the endmembers using the fast iterative pixel purity index (FIPPI) method. Select principal component analysis (PCA) as the dimensionality reduction method for preprocessing.

    endmembers = fippi(hcube.DataCube,numEndmembers,'ReductionMethod','pca');

    绘制高光谱数据的最终成员。

    图图(Endmembers)Xlabel('Band Number')ylabel(“像素值”) ylim([0 9000]) title({'Endmembers Spectra',[['endmembers ='num2str(numEndmembers)]});

    Input Arguments

    collapse all

    输入高光谱数据,指定为3-D数字阵列或一个hypercubeobject. If the input is ahypercube对象,然后函数读取高光谱data from itsDataCubeproperty.

    高光谱数据是大小的数字阵列M-经过-N-经过-C.MNare the number of rows and columns in the hyperspectral data respectively.C是高光谱数据中的光谱带的数量。

    Data Types:single|double|int8|INT16|INT32|int64|uint8|UINT16|uint32|uint64

    要提取的末端成员的数量,指定为正标性整数。该值必须在范围内[1C]。Cis the number of spectral bands in the input hyperspectral data. You can find the number of spectrally distinct endmembers in the input data by using thecountEndmembersHFCfunction.

    Data Types:single|double|int8|INT16|INT32|int64|uint8|UINT16|uint32|uint64

    Dimensionality reduction method, specified as a comma-separated pair of '还原术'和之一'MNF'或者'pca'.

    Specify the value as

    • 'MNF'- 使用最大噪声分数(MNF)方法执行尺寸降低。

    • 'pca'— To perform dimensionality reduction using the principal component analysis (PCA) method.

    The function computes the endmembers from the reduced data.

    Data Types:char|string

    Output Arguments

    collapse all

    末端签名,返回为大小的矩阵C-经过-K数据类型与输入高光谱数据相同。

    Data Types:single|double|int8|INT16|INT32|int64|uint8|UINT16|uint32|uint64

    算法

    FIPPI is an iterative approach that iteratively selects the better candidates for endmembers after each iteration. Unlike pixel purity index (PPI) technique, the FIPPI method selects the initial set of skewers by using the automatic target generation process (ATGP) [1]. As a result the algorithm converges faster and generates unique pixel for each endmember. The steps involved in FIPPI approach are summarized as follows:

    1. 计算主组件频段,并使用MNF或PCA降低输入数据的光谱维度。将要提取的主组件频段的数量设置为等于要提取的末端成员的数量。

    2. 使用ATGP方法找到初始成员的初始成员。最初的末日组形成了一组串 { j ( 1 ) } j = 1 p onto which you project the input data.

    3. For iteration 1, Letr1be a sample vector that denote a pixel spectra. Then, orthogonally project the sample vector onto each skewers and find the extrema.

    4. Store the location of each extreme value and count their occurrences. The number of occurrences is known as the PPI count.

    5. Find the PPI count for each pixel spectra and identify the set of sample vectors {rk} with maximum PPI count as endmembers.

    6. Generate a new set of skewers by combining the set of new endmembers with the initial set of skewers.

      { j ( 2 ) } = { r k ( 1 ) } { j ( 1 ) }

    7. 对于迭代2,将所有样本向量投影到新的串串上,并识别新的Endmembers。然后,为下一个迭代生成新的串串, { j ( 3 ) } .

    8. 迭代停止,如果在两个连续迭代中生成的串串集保持不变。这组最终的串是输入数据的最终成员。

      { j ( n + 1 ) } = { j ( n ) }

    参考

    [1] Chang,C.-I。和A. Plaza。“用于实现像素纯度索引的快速迭代算法。”IEEE地球科学和遥感信件3,不。1(2006年1月):63-67。https://doi.org/10.1109/lgrs.2005.856701。

    Version History

    Introduced in R2020a