主要内容

sharpencnmf

耦合非负矩阵分解(CNMF)方法锐化高光谱数据

    描述

    例子

    outputData= sharpencnmf (lrDatahrData锐化低分辨率的高光谱数据,lrData利用耦合非负矩阵分解(CNMF)方法对场景进行分解。CNMF方法是一种迭代方法,使用高分辨率的多光谱或全色数据,hrData用于锐化高光谱数据。

    高光谱图像锐化通过融合来自高分辨率多光谱数据或全色数据的信息来提高高光谱数据的空间分辨率。锐化过程也称为图像融合(融合多光谱和高光谱数据)或pan-sharpening(融合全色和高光谱数据)。

    请注意

    • 高光谱数据的空间维数必须小于多光谱或全色数据的空间维数。

    • 高光谱数据中的波段数必须大于多光谱数据中的波段数。对于全色数据,光谱频带数总是1。

    例子

    outputData= sharpencnmf (lrDatahrData名称,值还使用一个或多个名称-值对参数指定选项。使用此语法设置CNMF方法的参数值。

    请注意

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

    例子

    全部折叠

    将一个场景的低空间分辨率高光谱图像读取到工作区中。

    hcube =超立方体(“EO1H0440342002212110PY_hsi.hdr”);

    将同一场景的高空间分辨率多光谱图像读取到工作空间中。

    pcube =超立方体(“EO1H0440342002212110PY_msi.hdr”);

    利用CNMF方法融合高空间分辨率多光谱数据的信息,实现低空间分辨率高光谱数据的锐化。输出是高分辨率的高光谱数据,数据立方体具有与输入的多光谱数据相同的空间分辨率。

    newhcube = sharpencnmf (hcube pcube);

    估计输入高光谱、输入多光谱和锐化高光谱输出的RGB图像。

    lrData =再着色(hcube,“方法”“rgb”“ContrastStretching”,真正的);hrData =再着色(pcube,“方法”“rgb”“ContrastStretching”,真正的);outputData =再着色(newhcube,“方法”“rgb”“ContrastStretching”,真正的);

    显示低空间分辨率高光谱(HS)图像、高空间分辨率多光谱(MS)图像和高分辨率HS输出图像。

    图蒙太奇({lrData; hrData outputData})标题('低分辨率HS输入|高分辨率MS输入|高分辨率HS输出'

    将场景的低空间分辨率高光谱图像读取到工作空间中。

    hcube =超立方体(“EO1H0440342002212110PY_hsi.hdr”);

    将同一场景的高空间分辨率多光谱图像读取到工作空间中。

    pcube =超立方体(“EO1H0440342002212110PY_msi.hdr”);

    利用CNMF方法锐化低空间分辨率高光谱数据。将收敛阈值设置为0.1。

    newhcube = sharpencnmf (hcube pcube,“ConvergenceThreshold”, 0.1);

    估计输入高光谱、输入多光谱和锐化高光谱输出的RGB图像。

    lrData =再着色(hcube,“方法”“rgb”“ContrastStretching”,真正的);hrData =再着色(pcube,“方法”“rgb”“ContrastStretching”,真正的);outputData =再着色(newhcube,“方法”“rgb”“ContrastStretching”,真正的);

    显示低空间分辨率高光谱(HS)图像、高空间分辨率多光谱(MS)图像和高分辨率HS输出图像。

    图蒙太奇({lrData; hrData outputData})标题('低分辨率HS输入|高分辨率MS输入|高分辨率HS输出'

    输入参数

    全部折叠

    低分辨率高光谱数据,指定为超立方体对象或包含该数据立方体的3-D数字数组。如果输入是a超立方体对象中读取的数据DataCube对象的属性。

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

    高分辨率输入,指定为超立方体对象、包含数据立方体或矩阵的3-D数字数组。如果输入是a超立方体对象中读取的数据DataCube对象的属性。

    高分辨率输入要么是多光谱数据,要么是全色数据。

    • 对于多光谱数据,输入值必须为超立方体对象或包含数据立方体的3-D数字数组。

    • 对于全色数据,输入值可以是以下任意值:

      • 一个超立方体对象或包含数据立方体的3-D数字数组。数据立方体中的光谱频带数必须为1。

      • 一个矩阵。

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

    名称-值对的观点

    指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

    例子:cnmf (lrData、hrData MaxConvergenceIterations, 40)

    收敛所需的最大迭代次数,指定为由逗号分隔的对组成“MaxConvergenceIterations”一个正整数标量。

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

    优化高光谱和多光谱数据的光谱分离所需的最大迭代次数,指定为逗号分隔对组成“MaxOptimizationIterations”一个正整数标量。如果输入分辨率高hrData为全色图像,光谱分解仅对高光谱数据进行。

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

    收敛阈值,指定为逗号分隔对,由“ConvergenceThreshold”一个正标量。如果增大收敛阈值,谱分离的精度会降低。

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

    谱分离的端元数,指定为由逗号分隔的对组成“NumEndmembers”一个正整数标量。

    对于默认值,sharpencnmf首先计算端元的总数(总计新兴市场)在高光谱数据中使用countEndmembersHFC函数。然后,计算出解混合像素值的端元数,min(40岁总计新兴市场).

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

    输出参数

    全部折叠

    锐化的高光谱数据,返回为超立方体对象或三维数字数组。

    若为低分辨率的高光谱数据立方体指定lrData的大小P——- - - - - -——- - - - - -C以及高分辨率数据hrData的大小——- - - - - -N——- - - - - -K然后是锐化输出

    的大小——- - - - - -N——- - - - - -C

    参考文献

    Yokoya, Naoto, Takehisa Yairi, Akira Iwasaki。“高光谱和多光谱数据融合的耦合非负矩阵分解分解”。地球科学与遥感学报50,不。2(2012年2月):528-37。https://doi.org/10.1109/TGRS.2011.2161320。

    介绍了R2020b