主要内容

高光谱图像分类利用图书馆签名和山姆

这个例子展示了如何在高光谱图像分类像素通过使用光谱角映射器(SAM)分类算法。该算法分类测试数据通过计算每个像素的光谱匹配分数之间的一个像素的光谱和纯光谱签名从ECOSTRESS读取光谱库。这个例子使用一个数据样本碧玉岭数据集作为测试数据。测试数据包含四个endmembers潜伏,包括道路、土壤、水和树木。在本例中,您将:

  1. 生成一个分数不同地区地图出现在测试数据通过计算山姆光谱匹配分数之间的每个测试像素的光谱和光谱纯。纯光谱来自ECOSTRESS光谱库。

  2. 分类区域用最低分数标准,为每个像素和分配一个类标签的测试数据。

读取测试数据

从碧玉岭读取测试数据集使用超立方体函数。函数返回一个超立方体对象,该对象存储高光谱数据立方体和相应的波长读取测试数据和元数据信息。测试数据有198光谱乐队和他们的波长范围从399.4到2457 nm。光谱分辨率9.9 nm,每个波段图像的空间分辨率是100 - 100。

hcube =超立方体(“jasperRidge2_R198.img”)
hcube =超立方体的属性:DataCube:(100×100×198 int16)波长:(198×1双)元数据:[1×1 struct]

估计的RGB图像数据立方体。应用对比拉伸增强输出RGB图像的对比。

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

显示测试的RGB图像数据。

图显示亮度图像(rgbImg);轴图像标题(数据立方体的RGB图像)

从ECOSTRESS光谱库读取签名

ECOSTRESS光谱库由纯为个人表面材料的光谱特征。如果一个像素的光谱匹配的签名ECOSTRESS图书馆的像素完全由单一的表面材料。图书馆是一个编译的超过3400的光谱特征对自然和人造材料。既然你知道endmembers潜伏在测试数据,选择ECOSTRESS光谱库文件与这四个endmembers有关。

读谱文件相关的水、植被、土壤、混凝土从ECOSTRESS光谱库。使用这些类型的光谱特征:

  • 人工分类的道路和高速公路结构

  • 土壤分类沙子、淤泥和粘土地区

  • 植被分类树的地区

  • 水对水区域进行分类

fileroot = matlabshared.金宝appsupportpkg.getSupportPackageRoot ();目录(fullfile (fileroot,“工具箱”,“图片”,“金宝appsupportpackages”,高光谱的,“hyperdata”,“ECOSTRESSSpectraFiles”));文件名= [“water.seawater.none.liquid.tir.seafoam.jhu.becknic.spectrum.txt”,“vegetation.tree.eucalyptus.maculata.vswir.jpl087.jpl.asd.spectrum.txt”,“soil.utisol.hapludult.none.all.87p707.jhu.becknic.spectrum.txt”,“soil.mollisol.cryoboroll.none.all.85p4663.jhu.becknic.spectrum.txt”,“manmade.concrete.pavingconcrete.solid.all.0092uuu_cnc.jhu.becknic.spectrum.txt”];自由= readEcostressSig(文件名)
自由=1×5结构体数组字段:名称类型类子类ParticleSize属物种SampleNo所有者WavelengthRange起源CollectionDate描述测量FirstColumn SecondColumn WavelengthUnit DataUnit FirstXValue LastXValue NumberOfXValues AdditionalInformation波长反射⋮

从库中提取类名称的结构。

一会= [lib.Class];

情节的纯光谱签名读ECOSTRESS光谱库。

图保存idx = 1:元素个数(自由)情节(自由(idx) .Wavelength自由(idx) .Reflectance,“线宽”,2)结束盒子标题(“纯光谱特征从ECOSTRESS图书馆”)包含(“波长(\妈妈)”)ylabel (的反射率(%))传说(类名,“位置”,“东北”)标题(传说,“类名”)举行

计算分数的像素映射测试数据

找到每个像素光谱之间的光谱匹配分数和利用图书馆的签名spectralMatch函数。默认情况下,spectralMatch函数计算两个光谱之间的相似程度,通过使用SAM分类算法。这个函数返回一个数组具有相同空间维度的高光谱数据立方体和通道的数量等于指定库签名。每个通道的得分图包含一个库签名。在这个例子中,有五个ECOSTRESS光谱库文件指定为比较,和高光谱数据立方体的每个乐队100————100像素的空间维度。输出数组的大小分地图因此是100 - 100 - 5。

scoreMap = spectralMatch(自由、hcube);

显示地图。

图蒙太奇(scoreMap,“大小”[1元素个数(自由)),“BorderSize”10)标题(“地图获得纯光谱每一门的成绩”,“字形大小”14)colormap(飞机);colorbar

分类像素使用最低得分标准

低山姆值表明更高的光谱相似。使用最低分数标准分类测试像素通过为每个像素之间找到最佳匹配库签名。结果是一个pixel-wise分类图中每个像素的值是图书馆签名文件的索引自由像素展品山姆最低价值。举个例子,如果一个像素的值在分类图1中,像素展品高相似性第一图书馆签名自由

[~,classMap] = min (scoreMap [], 3);

创建一个类表映射分类值映射到ECOSTRESS库签名用于光谱匹配。

classTable =表((min (classMap(:)):马克斯(classMap(:))),类名,“VariableNames”,{“分类映射值”,“匹配库签名”})
classTable =5×2表分类映射值匹配库签名________________________ __________________________ 1“海水”2“树”3“Utisol”4“软土”5“具体”

显示的RGB图像高光谱数据和分类的结果。目视检查表明,光谱匹配每个像素分类有效。

无花果=图(“位置”[0 0 700 300]);axes1 =轴(“父”无花果,“位置”(0.04 0 0.4 - 0.9));显示亮度图像(rgbImg“父”,axes1);轴标题(数据立方体的RGB图像)axes2 =轴(“父”无花果,“位置”(0.47 0 0.45 - 0.9));显示亮度图像(classMap“父”axes2)轴colormap (jet(元素个数(自由)))标题(“Pixel-wise分类地图”)蜱虫= linspace(1.4, 4.8,元素个数(自由);colorbar (“滴答”蜱虫,“TickLabels”类名)

引用

[1]克鲁斯,碰头,A.B. Lefkoff, J.W. Boardman, K.B. Heidebrecht, A.T. Shapiro, P.J. Barloon, and A.F.H. Goetz. “The Spectral Image Processing System (SIPS)—Interactive Visualization and Analysis of Imaging Spectrometer Data.”环境遥感44岁的没有。2 - 3(1993年5月):145 - 63。https://doi.org/10.1016/0034 - 4257 (93) 90013 - n。

另请参阅

|||

相关的话题