主要内容

sidsam

利用光谱信息发散-光谱角制图混合方法测量光谱相似性

    描述

    例子

    分数= sidsam (inputDatarefSpectrum测量高光谱数据中每个像素的光谱之间的光谱相似性inputData和指定的参考光谱refSpectrum采用光谱信息发散-光谱角度制图(SID-SAM)混合方法。使用这种语法来识别高光谱数据立方体中的不同区域或材料。有关SID-SAM方法的信息,请参见更多关于

    例子

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

    请注意

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

    例子

    全部折叠

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

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

    使用方法估计数据立方体中光谱不同端元的数量countEndmembersHFC函数。

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

    使用NFINDR算法从数据立方体中提取端元光谱特征。

    endmembers = nfindr (hcube numEndmembers);

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

    图绘制(endmembers)包含(“乐队”) ylabel (“反射”)传说(“位置”“Bestoutside”

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

    分数= 0(大小(hcube.DataCube, 1),大小(hcube.DataCube, 2), numEndmembers);i = 1:numEndmembers score(:,: i) = sidsam(hcube,endmembers(:,i));结束

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

    [~, matchingIdx] = min(得分,[],3);

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

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

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

    图(“位置”,[0 0 800 400])副图(“位置”,[0 0.1 0.4 0.8]) imagesc(rgbImg)轴标题(“高光谱数据的RGB图像”)次要情节(“位置”,[0.45 0.1 0.45 0.8]) imagesc(matchingIdx)轴标题(“匹配端元的指标”) colorbar

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

    hcube =超立方体(“jasperRidge2_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 (“相对于红光”)传说(标签,“位置”“Bestoutside”);

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

    分数= 0(1、numEndmembers-1);itr = 1:numEndmembers-1 testSpectrum = testSpectra(:,itr);分数(itr) = sidsam (testSpectrum refSpectrum);结束

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

    [minval, minidx] =分(分数);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”

    输入参数

    全部折叠

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

    测试光谱,指定为C元向量。测试光谱是未知区域或物质的光谱特征。

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

    参考光谱,指定为C元向量。参考光谱是已知区域或物质的光谱特征。该函数将测试谱与这些值进行匹配。

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

    输出参数

    全部折叠

    SID-SAM得分,作为标量或矩阵返回。输出为

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

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

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

    数据类型:|

    更多关于

    全部折叠

    SID-SAM

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

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

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

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

    在那里,

    r 1 C r

    p t 1 C t

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

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

    参考文献

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

    介绍了R2020b