主要内容

Sidsam.

使用光谱信息发散光谱角映射器混合方法测量光谱相似度

    描述

    例子

    分数= sidsam (inputDatarefSpectrum的)测量高光谱数据中每个像素的频谱之间的光谱相似性inputData和指定的参考光谱refSpectrum通过使用光谱信息分歧光谱角映射器(SID-SAM)混合方法。使用此语法识别高光谱数据立方体中的不同区域或材料。有关SID-SAM方法的信息,请参阅更多关于

    例子

    分数= sidsam (testSpectrumrefSpectrum的)测量指定测试谱之间的光谱相似性testSpectrum和参考光谱refSpectrum采用SID-SAM混合方法。使用此语法将未知物质的光谱特征与参考光谱进行比较,或计算两个光谱特征之间的光谱变异性。

    笔记

    此函数需要图像处理工具箱™高光谱成像库.你可以安装图像处理工具箱高光谱成像库从附加资源管理器。有关安装加载项的更多信息,请参阅获取和管理附加组件

    例子

    全部折叠

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

    hcube =超立方体('jasperride2_r198.hdr');

    使用方法估计数据立方体中光谱不同端元的数量countendmembershfc.功能。

    numEndmembers = countEndmembersHFC (hcube,PFA的,10 ^ -7);

    使用NFINDR算法从数据多维数据集中提取终点谱签名。

    endmembers = nfindr (hcube numEndmembers);

    绘制提取的端元的光谱特征。

    图绘制(endmembers)包含(“乐队”) ylabel ('反思') 传奇(“位置”“最好的方向”的)

    计算数据立方体中每个端元与每个像素光谱之间的SID-SAM距离。

    分数= 0(大小(hcube.DataCube, 1),大小(hcube.DataCube, 2), numEndmembers);为了i = 1:numendmembers得分(:,:,i)= sidsam(hcube,endmembers(:,i));结尾

    从每个像素谱相对于所有端点的距离得分计算最小得分值。每个最小分数的索引确定像素谱与之具有最大相似性的端元谱。索引值,N.,在空间位置(Xy)表示该像素在空间位置(Xy的光谱特征最匹配N.endmember。

    [〜,matchingidx] = min(得分,[],3);

    估计输入数据的RGB图像彩色化功能。

    RGBIMG = COLORIZE(HCUBE,'方法'“rgb”“ContrastStretching”,真的);

    显示RGB图像和匹配索引值的矩阵。

    图(“位置”,[0 0 800 400])副图(“位置”,[0 0.1 0.4 0.8])ImageC(RGBIMG)轴标题('高光谱数据的RGB图像')子图(“位置”,[0.45 0.1 0.45 0.8]) imagesc(matchingIdx)轴标题('匹配endmembers的指数') colorbar

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

    hcube =超立方体('jasperride2_r198.hdr');

    找出高光谱数据的前10个端元。

    numEndmembers = 10;endmembers = nfindr (hcube numEndmembers);

    将第一个终点作为参考光谱和其余的终端中的测试谱。

    refSpectrum = endmembers (: 1);testSpectra = endmembers(:, 2:结束);

    绘制参考光谱和其他端环谱。

    图绘图(RefSpectrum,'行宽'2);抓住绘图(TestSpectra);抓住标签=细胞(1、numEndmembers-1);标签{1}=“参考”;为了itr = 1:numEndmembers-1 label{itr+1} = [“Endmember -”num2str(ITR)];结尾包含(“乐队”) ylabel ('反思')传说(标签,“位置”“最好的方向”);

    计算参考和测试光谱之间的SID-SAM分数。

    分数= 0(1、numEndmembers-1);为了ITR = 1:NumendMembers-1 TestSpectrum = TestSpectra(:,ITR);得分(ITR)= SIDSAM(TESTSPECTRUM,REFSPECTRUM);结尾

    找出与参考光谱具有最大相似度(最小距离)的测试光谱。然后找出与参考光谱具有最小相似度(最大距离)的测试光谱。

    [Minval,Minidx] = min(得分);maxmatch = testspectra(:,minidx);[maxval,maxidx] = max(得分);minmatch = testspectra(:,maxidx);

    绘制参考光谱,最大相似度和最小相似性测试光谱。具有最小分数值的测试频谱表示与参考终点的最高相似性。另一方面,具有最大得分值的测试光谱具有最高的光谱变异性,并表征了两种不同材料的光谱行为。

    图绘图(RefSpectrum,'行宽',2)持有情节(maxMatch“k”)绘图(minmatch,'r')包含('频段号') ylabel ('数据值') 传奇(参考光谱的“最大匹配测试谱”'最小匹配测试谱'......“位置”'southoutside')标题(“光谱之间的相似性”1000年)文本(20日,(“马克斯得分:”num2str (maxval)),“颜色”'r')文本(145、1800、'分数:'num2str(minval)],“颜色”“k”的)

    输入参数

    全部折叠

    输入高光谱数据,指定为ahypercube.对象或包含数据多维数据集的3-D数字数组。如果输入是一个hypercube.对象中读取的数据DataCube物体的财产。

    测试光谱,指定为C- 再生矢量。测试频谱是未知区域或材料的光谱特征。

    数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

    参考光谱,指定为C- 再生矢量。参考光谱是已知区域或材料的光谱特征。该函数与这些值匹配测试频谱。

    数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

    输出参数

    全部折叠

    SID-SAM分数,作为标量或矩阵返回。输出是一个

    • 标量-如果指定testSpectrum输入参数。该函数将测试光谱签名与参考光谱签名进行匹配,并返回一个标量值。测试光谱和参考光谱必须是长度相同的向量。

    • 矩阵 - 如果您指定了inputData输入参数。该函数将数据立方体中每个像素的光谱签名与参考光谱签名进行匹配,并返回一个矩阵。如果数据立方体的大小M.——- - - - - -N.——- - - - - -C参考光谱是一个长度矢量C,输出矩阵大小M.——- - - - - -N.

    SID-SAM值越小,说明测试签名与参考签名匹配越强。

    数据类型:单身的|

    更多关于

    全部折叠

    SID-SAM

    给出测试光谱T.和参考光谱R.的长度C,萨姆分数α计算为

    α = 因为 - 1 σ. 一世 = 1 C T. 一世 R. 一世 σ. 一世 = 1 C T. 一世 2 σ. 一世 = 1 C R. 一世 2 的)

    使用参考的概率分布和测试光谱来计算SID值:

    S. 一世 D. = σ. 一世 = 1 C P. 一世 日志 P. 一世 问: 一世 的) + σ. 一世 = 1 C 问: 一世 日志 问: 一世 P. 一世 的)

    在哪里,

    问: 一世 = R. 一世 σ. 一世 = 1 C R. 一世

    P. 一世 = T. 一世 σ. 一世 = 1 C T. 一世

    然后计算SID-SAM混合评分为

    S. 一世 D. S. 一种 M. = S. 一世 D. × 棕褐色 α 的)

    参考文献

    [1], Chein-I。用于光谱表征的高光谱鉴别新方法。光学工程43,不。8(2004年8月1日):1777。https://doi.org/10.1117/1.1766301

    在R2020B中介绍