ENVI分类后处理

本文详细介绍了如何利用Majority分析、聚类处理Clump和过滤处理Sieve对遥感分类结果进行优化,包括步骤详解和关键统计分析。通过这些方法,可以改善分类的平滑性和准确性,为后续的叠加和矢量化提供高质量的基础数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验名称:

分类后处理

二、实验目的:

分类后处理

三、实验内容和要求:

1.Majority和Minority分析。

2.聚类处理(Clump)。

3.过滤处理(Sieve)。

4.分类统计。

5.分类叠加。

6.分类结果转矢量。

四、实验步骤:

一:Majority和Minority分析

1.打开分类结果——"can_tmr_class.dat”。

2.打开Majority/Minority分析工具,路径为Toolbox/Classification/Post Classification/Majority/minority Analysis,在弹出的对话框中选择“can_tmr_class.dat”,点击OK。

 

3.在Majority/Minority Parameters面板中,点击Select All Items选中所有的类别,其他参数按照默认即可,选择输出路径,点击OK执行。

 4.查看结果如图,,可以看到原始分类结果的碎斑归为了背景类别中,更加平滑。

二:聚类处理(Clump)

1. 打开分类结果——"can_tmr_class.dat”。

2.打开聚类处理工具,路径为Toolbox/Classification/Post Classification/Clump Classes,在弹出的对话框中选择“can_tmr_class.dat”,点击OK。

3.选中所有类别设置输出路径。

4.显示结果,可以看到原始分类结果的碎斑归为了背景类别中,更加平滑。4.显示结果,可以看到原始分类结果的碎斑归为了背景类别中,更加平滑。

三:过滤处理(Sieve)

1.打开分类结果——"can_tmr_class.dat”。

2.打开过滤处理工具,路径为Toolbox/Classification/Post Classification/Sieve Classes, 在弹出的对话框中选择“can_tmr_class.dat”,点击OK。

3.在Sieve Parameters面板中,点击Select all items选中所有类别,Group Min Threshould设置为5,其他参数按照默认即可,选择输出路径,点击OK执行。

4显示结果。

四:分类统计

  1.打开分类结果和原始影像——“can_tmr_class.dat”和“can_tmr.ing”。

2.打开分类统计工具,路径为Toolbox/Classification/Post Classification/Class Statistics,在弹出的对话框中选择“can_tmr_class.dat”,点击OK。

3.在Statistics Input File面板中,选择原始影像“can_tmr.img”,点击OK。

 4.在弹出的Class Selection面板中,点击Selection All Items,统计所有分类的信息,点击OK。

5.在Compute Statistics Parameters面板中可以设置统计信息,如下图所示,按照图中参数进行设置,点击Report Precision…按钮可以设置输入精度,按照默认即可,点击OK。

6.如下图所示为显示统计结果的窗口,统计结果以图和列表形式表示。从Select Plot下拉命令中选择图形绘制的对象,如基本统计信息、直方图等。从Stats for标签中选择分类结果中类别,在列表中显示类别对应输入图像文件DN值统计信息,如协方差、相关系数、特征向量等信息。在列表中的第一段显示的为分类结果中各个类别的像元数、占百分比等统计信息。

五:分类叠加

 1.打开分类结果和原始影像——“can_tmr_class.dat”和“can_tmr.img”。这里将原始影像的真彩色图像作为背景图像。

2.打开拉伸工具(Toolbox/Raster Management/Stretch Data),在弹出的对话框中选择“can_tmr_img”文件,然后点击下方选择波段1、2、3,点击OK.

3.在Data Stretching面板中,按照下图进行参数设置,点击OK即可。

4.打开分类叠加工具,路径为Toolbox/Classification/Post Classification/Overlay Classes。

5.在打开的Input Overlay RBG Image Input Bands面板中,R、B、G分别选择拉伸结果“can_tmr_background.dat”的band 3、2、1,点击OK。(如果需要一个灰度背景,为RBG三个通道输入同样的波段即可)。

6.在Classification Input File面板中选择分类图像“can_tmr_class.dat”,点击OK.

7.在Class Overlay to RGB paramenters面板中选择要叠加显示的类别(如下图所示)。

这里选择林地、裸地、沙地三个类别,设置输出路径,点击OK即可。

8.查看叠加结果,如下图所示。可以通过File>Save As将“can_tmr_overlay.dat”转换为TIFF格式,这样使用普通图片查看器便可以进行浏览,并保持了背景拉伸效果与原始图像类别颜色。

六:分类结果转矢量

1.打开分类结果——“can_tmr_class.dat”。

2.打开转矢量工具,路径为Toolbox/Classification/Post Classification/Classification to Vector。

3.在Raster to Vector Input Band 面板中,选择“can_tmr_class.dat“文件的波段,点击OK. 

 4.在Raster To Vector Parameters面板中选择分类结果,选择输出路径,输出.evf类型文件。

 5.查看输出结果,打开刚才生成的evf文件,并加载到视图中。可以在图层列表右键点击矢量文件名,选择Properties,在弹出面板中可以根据Class_Name修改不同类别的颜色,如下图所示。

### MATLAB 中 SMOTE 方法的扩展实现 #### 扩展功能概述 为了应对更复杂的数据分布情况,在基本SMOTE算法基础上进行了多种改进和扩展。这些扩展旨在解决原始算法可能存在的局限性,比如边界区域样本生成不足等问题[^1]。 #### 边界SMOTE (Borderline-SMOTE) 针对少数类样本中的危险样本(即那些靠近决策边界的实例),提出了边界SMOTE变体。该方法仅对处于边界附近的样本执行过采样操作,从而减少噪声影响并改善泛化能力。具体来说,对于每一个少数类样本\(x_i\)及其最近邻k个邻居: - 如果超过一半以上的邻居属于多数类别,则认为这是一个“危险”样本; - 对于这类样本,采用传统方式合成新样本;而对于其他非危险样本则保持不变。 ```matlab function borderlineSample = BorderlineSMOTE(X_minority, X_majority, N, k) % Implementation of Borderline-SMOTE algorithm. % Inputs: % X_minority - minority class samples matrix; % X_majority - majority class samples matrix; % N - number of synthetic instances to generate per original instance; % k - number of nearest neighbors. % Calculate distances between all pairs of points from both classes... [D, idx] = pdist2(X_minority, [X_minority; X_majority], 'euclidean'); D = squareform(D); borderlineSample = []; for i = 1:size(X_minority, 1) % Find the indices corresponding to the first `size(X_minority, 1)` elements, % which represent intra-class distance within minority group itself. neighborIdxs = sort(idx(i, :))'; dangerCount = sum(ismember(neighborIdxs(k+1:end), size(X_minority, 1)+1:length([X_minority; X_majority]))); if dangerCount >= floor((length(neighborIdxs)-1)/2) % Generate new samples only when current point is considered as "dangerous". for j = 1:N diffVec = X_minority(randi(size(X_minority, 1)), :) - X_minority(i,:); borderlineSample(end+1,:) = X_minority(i,:)+rand()*diffVec; end end end ``` #### ADASYN 自适应合成抽样法 ADASYN是一种自适应地调整不同区域内的重采样密度的方法。它不仅考虑了局部密度差异还引入了权重机制来决定每个样本应该被复制多少次。这样做的好处是可以更好地捕捉到数据内部结构特征而不至于过度拟合特定模式。 ```matlab function adaSyntheticSamples = ADASYN(X_minority, y_minority, beta) % Adaptive Synthetic Sampling approach implemented in Matlab. % Parameters: % X_minority - feature vectors associated with minority labels; % y_minority - target values related to those features; % beta - parameter controlling how aggressively we want to upsample difficult regions. adaSyntheticSamples = []; % Compute density ratio r_i for each minority example based on its neighborhood composition. densityRatios = zeros(length(y_minority), 1); for i = 1:length(densityRatios) distToNeighbors = pdist2(X_minority(i,:), X_minority, 'cityblock').'; %#ok<STOD> [~, sortedIndices] = sort(distToNeighbors); numMinoritiesInNeighborhood = sum(ismember(sortedIndices(2:6), find(y_minority))); densityRatios(i) = max(numMinoritiesInNeighborhood / length(find(y_minority))-0.5, 0)^beta; end totalWeightSum = sum(densityRatios); targetNumOfNewInstances = round(totalWeightSum * mean(cellfun(@numel, arrayfun(@(x)x{ones(1,ceil(sum(~y_minority)/sum(y_minority)))}, unique(y_minority,'rows'))))); generatedCounts = randi([floor(targetNumOfNewInstances/length(y_minority)), ceil(targetNumOfNewInstances/length(y_minority))], length(y_minority), 1).*densityRatios./max(densityRatios); for i = 1:length(generatedCounts) for _ = 1:round(generatedCounts(i)) randomNeighborIndex = randperm(length(y_minority)); while ~all(pdist2(X_minority(randomNeighborIndex,:), X_minority(i,:), 'chebychev') < eps) randomNeighborIndex = randperm(length(y_minority)); end adaSyntheticSamples(end+1,:) = interp1(linspace(0, 1, 2)', ... [X_minority(i,:); X_minority(randomNeighborIndex,:)], ... linspace(0, 1, 2)'*(rand()+eps)); end end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super毛毛穗

今天晚饭加什么?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值