主要内容

spectralMatch

使用光谱库识别未知区域或材料

    描述

    例子

    分数= spectralMatch (libDatahcube通过将每个像素的光谱特征与从ECOSTRESS光谱库读取的光谱数据进行匹配,识别高光谱数据立方体中的区域libData

    例子

    分数= spectralMatch (libData反射波长通过匹配光谱反射率值来识别区域或材料,指定为反射波长,其值可在ECOSTRESS谱库中获得libData

    分数= spectralMatch (___名称,值除了前面语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。

    请注意

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

    例子

    全部折叠

    光谱匹配方法将高光谱数据立方体中每个像素的光谱特征与ECOSTRESS光谱文件中的参考植被光谱特征进行比较。

    阅读ECOSTRESS光谱库中植被的光谱特征。

    fileroot = matlabshared.金宝appsupportpkg.getSupportPackageRoot ();文件名= fullfile (fileroot,“工具箱”“图片”“金宝appsupportpackages”高光谱的“hyperdata”...“ECOSTRESSSpectraFiles”“vegetation.tree.tsuga.canadensis.vswir.tsca - 1 - 47. ucsb.asd.spectrum.txt”);libData = readEcostressSig(文件名);

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

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

    计算高光谱数据像素相对于参考光谱的光谱的距离分数。

    分数= spectralMatch (libData hcube);

    显示距离分数。距离分数低的像素与参考光谱的匹配度更强,更有可能属于植被区域。

    图显示亮度图像colorbar(得分)

    定义一个阈值,用于检测对应于植被区域的距离分数。

    阈值= 0.3;

    通过指定强度值生成二值图像1对于分数小于指定阈值的像素。其他区域的强度值为0。二值图像中的最大强度区域对应于高光谱数据立方体中的植被区域。

    Bw =评分<阈值;

    利用二值图像中最大强度区域的指数分割高光谱数据立方体的植被区域。

    T =重塑(hcube.DataCube,[size(hcube.DataCube,1)*size(hcube.DataCube,2) size(hcube.DataCube,3)]);T = 0(大小(T));T(bw==1,:) = T(bw==1,:)Ts =重塑(Ts,[size(hcube.DataCube,1) size(hcube.DataCube,2) size(hcube.DataCube,3)]);

    .创建一个新的超立方体对象,该对象只包含分段的植被区域。

    hcube.Wavelength segmentedDataCube =超立方体(Ts);

    对原始数据立方体和分割后的数据立方体进行RGB彩色图像估计彩色化函数。

    rgbImg =再着色(hcube,“方法”“rgb”“ContrastStretching”,真正的);segmentedImg =再着色(segmentedDataCube,“方法”“rgb”“ContrastStretching”,真正的);

    将二值图像叠加到原始数据立方体的RGB版本上imoverlay函数。

    B = imoverlay (rgbImg bw,“黄色”);

    将原始数据立方体和分割后的数据立方体的RGB彩色图像随叠加图像一起显示。分割后的图像只包含从原始数据立方体中分割出来的植被区域。

    {rgbImg segmentdimg B},“大小”3[1])标题(['Original Image | ''分割图像| '“显示图片”])

    阅读ECOSTRESS光谱库中的参考光谱签名。该图书馆由15个光谱特征组成,它们属于人造材料、土壤、水和植被。输出是一个结构数组,存储从ECOSTRESS库文件读取的光谱数据。

    fileroot = matlabshared.金宝appsupportpkg.getSupportPackageRoot ();目录名= fullfile (fileroot,“工具箱”“图片”“金宝appsupportpackages”高光谱的“hyperdata”“ECOSTRESSSpectraFiles”);libData = readEcostressSig(目录名);

    加载一个.mat文件,其中包含一个未知材料的反射率和波长值进入工作空间。反射率和波长值一起组成了测试光谱。

    负载spectralData“反射”“波长”

    利用光谱信息发散(SID)方法计算参考光谱与测试光谱的光谱匹配。该函数只计算那些带宽与测试光谱重叠的参考光谱的距离分数。该函数为所有其他光谱显示警告信息。

    分数= spectralMatch (libData、反射波长,“方法”“席德”);
    警告:无法在测试光谱和库签名号8之间找到重叠波长
    警告:无法找到测试光谱和库信号9之间的重叠波长
    警告:无法在测试光谱和库签名号11之间找到重叠波长

    显示测试光谱的距离分数。距离分数越低的像素与参考光谱的匹配越强。距离得分值为对应的参考频谱和测试频谱不满足重叠带宽阈值。

    分数
    分数=1×15297.8016 122.5567 203.5864 103.3351 288.7747 275.5321 294.2341 NaN NaN 290.4887 NaN 299.5762 171.6919 46.2072 176.6637

    找出最小距离分数和相应的指数。返回的索引值指示结构数组的行libData它包含与测试光谱最接近的参考光谱。

    [价值,印第安纳州]=分(分数);

    利用最小距离评分指标查找匹配参考光谱,并在ECOSTRESS库中显示匹配光谱数据的详细信息。结果表明,测试光谱与海水的光谱特征最为吻合。

    matchingSpectra = libData(印第安纳州)
    matchingSpectra =结构体字段:名称:“海泡”类型:“水”类:“海水”亚类:“无”粒子:“液体”属:[0×0 string]物种:[0×0 string] SampleNo:“海泡”所有者:“约翰霍普金斯大学地球与行星科学系”波长:“TIR”来源:“JHU红外光谱实验室”。收集日期:“无”说明:“海水泡沫水。原始文件名FOAM原始ASTER光谱库名称为jhu. becknico .water.sea.none.liquid.seafoam.spectrum.txt"测量:"方向(10度)半球反射"第一列:"X"第二列:"Y"波长单位:"微米"数据单位:"反射率(百分比)"FirstXValue: "14.0112" LastXValue: "2.0795" NumberOfXValues: "2110" AdditionalInformation: "none"波长:[2110×1 double]反射:[2110×1 double]

    绘制测试光谱和相应的参考光谱的反射率值。为了绘制和可视化反射率曲线的形状,将反射率值重新缩放到[0,1]范围,并插值测试反射率值以在数量上与参考反射率值相匹配。

    图testReflectance = rescale(反射率,0,1);refReflectance =重新调节(matchingSpectra.Reflectance 0 1);testLength =长度(testReflectance);newLength =长度(testReflectance) / (refReflectance);testReflectance = interp1 (1: testLength testReflectance 1: newLength: testLength);情节(refReflectance)情节(testReflectance“r”)举行传奇(“匹配参考反射”“测试反射”)包含(样品的数量) ylabel (的反射率值

    输入参数

    全部折叠

    光谱数据来自ECOSTRESS文件,返回为1-by-K结构数组。K是函数读取的频谱文件的数量。结构数组的每个元素都有24个字段,这些字段包含频谱文件的头信息。

    字段名称 描述
    的名字 被测样品或材料的名称
    类型 样本类型,例如“矿物”“岩石”“树”,或“人造”

    样本类型的类别

    例如,如果样本类型为“矿物”然后类可以是:“本地元素”“硅酸盐”“氧化”“硫化物”“硫酸盐”“卤化物”“碳酸盐”“磷酸盐”,或“准矿物”

    子类

    样本类型的子类

    该字段包含一个空数组或“没有”,除非类型值是“矿物”“岩石”“人造”“土壤”“月球”,或“陨石”

    ParticleSize

    样品类型的粒度

    该字段包含一个空数组,除非类型值是“矿物”“岩石”“人造”“土壤”“月球”,或“陨石”

    样品属

    该字段包含一个空数组,除非类型值是“植物”“中非光合”

    物种

    样本的种类

    该字段包含一个空数组,除非类型值是“植物”“中非光合”

    SampleNo

    样本数量

    此值是相关示例的标识符。

    老板 样本所有者
    WavelengthRange

    测量样品的波长范围

    该值必须为“所有”“行动”,或“VSWIR”

    起源 获取数据的位置
    CollectionDate

    收集样本的日期

    这个值是mm / dd / yy格式。

    描述

    被测样品的描述

    该字段提供有关样本特征的附加信息。

    测量 光谱测量方式用于测量样品
    FirstColumn 频谱文件中数据值的第一列
    SecondColumn 频谱文件中数据值的第二列
    WavelengthUnit

    样品光谱波长的测量单位

    每个样本类型的值为“微米”.该字段对应于X单位字段的头数据在ECOSTRESS谱文件。

    DataUnit

    光谱测量模式单位

    光谱测量方式包括反射率、透射率和透射率。单位为百分比。该字段对应于Y单位字段的头数据在ECOSTRESS谱文件。

    FirstXValue 频谱文件中数据值的第一列中的第一个值
    LastXValue 频谱文件中第一列数据值的最后一个值
    NumberofXValues 频谱文件第一列中的数据值的总数
    AdditionalInformation

    关于示例的附加信息

    这个领域包括不属于光谱数据的信息。

    波长 测量反射率的波长值
    反射 在每个波长测量的反射值

    输入高光谱数据,指定为超立方体对象。的DataCube财产的超立方体对象包含高光谱数据集。

    反射值,指定为aC元向量。C为已测量反射率值的波长数。

    波长值,指定为C元向量。C为已测量反射率值的波长数。

    名称-值参数

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

    例子:spectralMatch (libData、hcube MinBandWidth, 0.5)

    谱匹配方法,指定为逗号分隔对组成“方法”其中一个价值观是:

    • “山姆”-光谱角度映射(SAM)方法,通过计算两个光谱之间的角度距离来测量它们之间的相似性。

    • “席德”-光谱信息发散(SID)方法,通过计算两个光谱的概率分布值的差值来度量它们之间的相似性。

    • “sidsam”-混合光谱相似法,通过结合SID和SAM距离测量测量两个光谱之间的相似度。

    • “jmsam”- Jeffries Matusita- spectral Angle Mapper (JMSAM),通过结合Jeffries Matusita (JM)和SAM距离测量测量两个光谱之间的相似性。

    • “ns3”-归一化光谱相似度评分(NS3)方法,该方法结合欧几里得距离和SAM距离度量来度量两个光谱之间的相似度。

    这些光谱匹配方法的详细信息请参见更多关于

    数据类型:字符|字符串

    最小重叠带宽,指定为逗号分隔对组成“MinBandWidth”以纳米为单位的正标量。参考光谱与测试光谱的重叠带宽定义为:

    BW重叠W马克斯W最小值

    W最小值是参考光谱和测试光谱中最小波长的最大值。

    W马克斯是参考光谱和测试光谱中最大波长的最大值。

    “MinBandWidth”参数定义了测试材料的光谱值与ECOSTRESS光谱数据之间重叠带宽的最小期望值。

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

    输出参数

    全部折叠

    距离分数,以三维数字数组、矩阵的形式返回,K元素列向量或标量。输出分数的维度取决于libData以及测试数据是否为a超立方体对象或一个波长反射对。

    如果测试谱特征被指定为超立方体对象,hcube数据立方体的大小——- - - - - -N——- - - - - -C

    输入参数维数libData 维度的输出分数
    1 -K,包含K引用签名从K频谱文件数

    大小的三维数字数组——- - - - - -N——- - - - - -K包含每个像素相对的距离分数K参考签名

    的每个通道中的值K每个像素的光谱相对于对应行的光谱数据的距离分数是多少libData.同样,第二通道中的值与的第二行光谱数据相关libData

    1 * 1,包含从一个频谱文件读取的引用签名(K= 1) 矩阵的大小——- - - - - -N,矩阵包含每个像素光谱相对于参考签名的距离分数。

    如果指定测试谱特征为反射波长价值观:

    输入参数维数libData 维度的输出分数
    1 -K,包含K引用签名从K频谱文件数 K元素向量,包含测试光谱相对的距离分数K参考签名。向量的每个元素是测试反射率值相对于对应行的光谱数据的距离分数libData
    1 * 1,包含从一个频谱文件读取的引用签名(K= 1) 标量

    数据类型:

    更多关于

    全部折叠

    光谱角测图仪

    给出测试光谱t和参考光谱r的长度C, SAM得分α是计算

    α 因为 1 1 C t r 1 C t 2 1 C r 2

    光谱信息发散(SID)

    谱信息发散(SID)方法是根据两个谱的概率分布之间的发散度来计算谱的相似度。让rt分别为参考光谱和测试光谱。计算参考光谱的分布值为:

    r 1 C r

    计算测试谱的分布值为:

    p t 1 C t

    然后,利用参考谱和测试谱的概率分布计算SID值:

    年代 D 1 C p 日志 p + 1 C 日志 p

    SID-SAM

    SID-SAM方法计算谱相似度为:

    年代 D 年代 一个 年代 D × 棕褐色 α

    Jeffries matusita光谱角度制图仪(JMSAM)

    JMSAM方法基于两个光谱之间的Jeffries Matusita (JM)和SAM距离计算光谱相似性。让rt分别为参考光谱和测试光谱。

    首先,计算JM距离,

    J 距离 2 1 e B

    在哪里B是巴塔查里亚距离,

    B 1 8 μ t μ r T σ t + σ r 2 1 μ t μ r + 1 2 ln | σ t + σ r 2 | | σ t | | σ r |

    μrμt分别为参考谱和测试谱的平均值。σrσt分别为参考谱和测试谱的协方差值。

    然后,计算SAM值α利用测试光谱t参考光谱r的长度C

    α 因为 1 1 C t r 1 C t 2 1 C r 2

    最后,计算jmssam得分为:

    J 年代 一个 J d 年代 t 一个 n c e × 棕褐色 α

    归一化谱相似性评分(NS3)

    NS3方法基于两个光谱之间的欧氏距离和SAM距离计算光谱相似性。让rt分别为参考光谱和测试光谱。计算两个光谱之间的欧氏距离如下:

    一个 E u c l d e 一个 n 1 C 1 C t r 2

    然后,计算SAM值α

    α 因为 1 1 C t r 1 C t 2 1 C r 2

    最后,计算NS3得分如下:

    N 年代 3. 一个 E u c l d e 一个 n 2 + 1 因为 α 2

    介绍了R2020a