ENVI中计算分类样本可分离性报错及解决方法
在监督分类或者挖掘决策树规则时,需要选择训练样本,训练样本的好坏直接影响分类精度。因此ENVI提供了分析样本质量的工具:Compute ROI Separability,计算样本可分离性。
问题来了
为了提高分类精度,有时会在多光谱图像中增加其他波段,如NDVI、非监督分类结果、PCA变换结果等等。那么问题来了,使用ROI Tool中的Compute ROI Separability计算样本可分离性时候报错,如下图所示:
图:计算样本可分离性报错
最好得到的样本可分离性报表都是0,如下图所示:
图:结果异常的样本可分离性报表
原因分析
造成这个原因主要是参与分类各个波段值范围相差太远,如影像波段为0~255(8bit),NDVI为-1~1,非监督分类结果为0~5整数,等等。
这些数据范围不一致就会造成Jeffries-Matusita算法的"溢出",出现上述的错误。
解决方法
通过分析原因,我们可能会想到,将影像波段以外的波段使用线性拉伸的方法归一化为0~255范围内。但是归一化后的数据有可能会有信息的损失,与"增加多源数据提高分类精度的初衷"相违背。
另外一种思路是增加样本的数量,这个倒是能解决算法"溢出"的问题。但是这个数量不好把握。
其实我们可以从样本的本质考虑,样本就是不同地物的集合,一般通过目视解译方式从影像上选择。因此我们直接在多光谱影像数据上选择样本,并计算样本的可分离度,当可分离度满足要求时候,将该样本应用于包括NDVI、PCA变换等多源数据文件上进行相应的分类。
注:1、如果在classic或者5.1之前的版本上选择ROI作为样本,需要使用ROI Tool上的Reconcile ROIS 或者Reconcile ROIS via Map工具,将当前选择的ROI样本转到别的文件上,如这里的多源数据文件上。
2、ENVI5.1版本的ROI文件带有坐标,可用于任何与之有地理重叠的栅格数据,支持坐标自动重投影。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)