主要内容

spectralMatch

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

    描述

    例子

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

    例子

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

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

    请注意

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

    例子

    全部折叠

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

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

    fileroot = matlabshared.万博1manbetxsupportpkg.getSupportPackageRoot();文件名= fullfile(fileroot)“工具箱”“图片”“万博1manbetxsupportpackages”高光谱的“hyperdata”...“ECOSTRESSSpectraFiles”“vegetation.tree.tsuga.canadensis.vswir.tsca - 1 - 47. ucsb.asd.spectrum.txt”);libData = readecostress ssig(文件名);

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

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

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

    score = spectralMatch(libData,hcube);

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

    图imagesc(score)色条

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

    阈值= 0.3;

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

    Bw =分数<阈值;

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

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

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

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

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

    rgbImg = colorize(hcube,“方法”“rgb”“ContrastStretching”,真正的);segmenteddimg = colorize(segmentedDataCube,“方法”“rgb”“ContrastStretching”,真正的);

    控件将二进制图像覆盖在原始数据多维数据集的RGB版本上imoverlay函数。

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

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

    图蒙太奇({rgbImg segmentedImg B},“大小”,[1 3])标题([“原始图像|”“分段图像|”“显示图片”])

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

    fileroot = matlabshared.万博1manbetxsupportpkg.getSupportPackageRoot();Dirname = fullfile(fileroot,“工具箱”“图片”“万博1manbetxsupportpackages”高光谱的“hyperdata”“ECOSTRESSSpectraFiles”);libData = readecostress ssig (dirname);

    加载一个.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其中包含与测试频谱最接近的参考频谱。

    [value,ind] = min(分数);

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

    匹配谱= libData(ind)
    matchingSpectra =带字段的结构:名称:“海洋泡沫”类型:“水”类:“海水”子类:“无”粒子:“液体”属:[0×0串]种:[0×0串]SampleNo:“海洋泡沫”所有者:“约翰霍普金斯大学地球与行星科学系”波长:“TIR”来源:“JHU红外光谱实验室。”收藏日期:“无”描述:“海水泡沫水。原始文件名FOAM ASTER光谱库名称为jhu.becknic.water.sea.none.liquid.seafoam.spectrum.txt"测量:"定向(10度)半球反射率"第一列:"X"第二列:"Y"波长单位:"千分尺"数据单位:"反射率(百分比)"FirstXValue: "14.0112" LastXValue: "2.0795" NumberOfXValues: "2110"附加信息:"none"波长:[2110×1 double]反射率:[2110×1 double]

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

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

    输入参数

    全部折叠

    来自ECOSTRESS文件的光谱数据,作为1 × -返回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已测量反射率值的波长数。

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

    名称-值参数

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

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

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

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

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

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

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

    • “jmsam”- Jeffries Matusita-光谱角度映射器(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-element列向量,或标量。的维数决定了输出分数的维数libData以及测试数据是否为a超立方体对象或波长而且反射对。

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

    输入参数的维数libData 输出尺寸分数
    1 -K,包含K从引用签名中读取K频谱文件数量

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

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

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

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

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

    数据类型:

    更多关于

    全部折叠

    光谱角度绘图仪

    给定测试光谱t还有一个参考光谱r的长度C, SAM分数α的计算方法为

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

    光谱信息发散(SID)

    光谱信息发散度(SID)方法是基于两个光谱概率分布的发散度来计算光谱相似度。让r而且t分别为参考光谱和测试光谱。计算参考光谱的分布值为:

    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方法基于两个光谱之间的Jeffries Matusita (JM)和SAM距离计算光谱相似度。让r而且t分别为参考光谱和测试光谱。

    首先,计算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

    最后,计算JMSAM分数为:

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

    归一化谱相似度(NS3)

    NS3方法基于两个光谱之间的欧几里得距离和SAM距离计算光谱相似度。让r而且t分别为参考光谱和测试光谱。计算两个光谱之间的欧几里得距离为:

    一个 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中引入