1基于NearestNeighbor的面向对象监督分类1.启动eCognition8.9,选择RuleSetMode,Ok。2.新建Project:File→Newproject,或者工具栏上的新建按钮。在弹出的对话框中选择要添加的文件l8_rs_wgs84_sub.img,点Ok,可以看到它包含8个分辨率为30m的图层,双击每个图层可以修改它的图层名,利于分辨。然后点图层窗口右边的Insert,在弹出的对话框中选择l8_pan_rs_wgs84_sub.img文件,Ok后将Pan波段添加进来。最后,点ThematicLayerAlias窗口右边的Insert按钮,选择2002foresttypesUTMWGS84.shp文件,Ok后将森林类型专题图添加进来,双击该矢量层,将图层名修改为Foresttype,最终效果如下图:DENG_03162ProjectName等按默认,点Ok,回到主界面,图像按前3个波段RGB显示,如下图:为了更好的辨别地物类型,点击工具栏上的图层显示编辑按钮,在弹出的对话框中点击修改RGB为NIR,Green,Blue显示:DENG_03163如果取消勾选左下角Nolayerweights,还可以设置不同波段的比重,在调整不同波段的比重时,在数值上左击鼠标增加比重,右击鼠标减少比重,如下图:点Ok进行波段显示调整后的效果如下,然后保存这个Project为l8_rs_wgs84_sub.dpr。DENG_031643.将图像分解为基本对象:首先,在ProcessTree窗口(如果没有,菜单栏View→Windows→ProcessTree调出),右击,选择AppendNew,将Name改为Segmentation,其他按默认,然后点击Ok:其次,在ProcessTree窗口,右击Segmentation这个新建规则(Rule),选InsertChild(插入子规则),Name勾选自动,Algorithm下拉菜单选择multiresolutionsegmentation(最常用的分割算法),在右边的参数窗口,找到Scaleparameter并将其设置为150,其他默认,然后点Execute(立即实行)或者Ok(稍后实行)。此处,我们先选择Ok,然后在ProcessTree窗口右击此规则,再Execute。DENG_03165运行Execute后,我们就可以看到整幅图像被分成了许多Objects(对象),而且分割的尺度比较满意,如下图:如果分割的对象太密或者太疏,我们可以通过调整规则中的Scaleparameter参数(注:数值越大,分解得到的objects数量越少),进行多次尝试,直到满意为止。4.创建图像分类特征指标:接下来,我们需要选择一些图像特征来作为分类的依据。首先,找到FeatureView窗口(如果没有,菜单栏View→Windows→FeatureView调出),选择ObjectFeaturesLayerValuesMean,再双击Brightness,等待系统计算所有Objects的Brightness值,再点击图像主窗口的任意一个对象,就可以在ImageObjectInformation窗口(可以菜单栏View→Windows→ImageObjectInformation调出)看到这个对象的Brightness特征值了:DENG_03166DENG_03167其次,找到FeatureViewObjectFeaturesLayerValuesMean,双击Createnew‘Mean’,在弹出的窗口中,在Value下选择FeatureView窗口Mean中还没有的波段,Ok,将该波段添加到Mean下,系统会自动计算所有对象的该波段值,同时该波段特征自动显示在ImageObjectInformation窗口中。重复上述波段添加过程,直到把所有需要用于分类的波段添加到Mean下:此外,我们还需要选择一些形状指数作为分类依据,这对于建筑物和道路这两个具有非常相似光谱特征的类型的分离会很有帮助。找到FeatureViewObjectFeaturesGeometryExtent,双击Length/Width;再找到FeatureViewObjectFeaturesGeometryShape,双击Shapeindex,将这两个形状指数加入到ImageObjectInformation窗口中。最后,我们还需要创建一个NDVI指数作为分类特征。找到FeatureViewObjectFeaturesCustomized,双击Createnew‘ArithmeticFeature’,在弹出的的对话框中,将Featurename修改为NDVI,点击相应的计算符以及双击波段,建立NDVI计算式,如下图,先适用再Ok后计算NDVI特征:DENG_03168至此,所有需要用于分类的特征都选择并计算完毕,ImageObjectInformation窗口如下图:5.应用分类特征空间到类:首先,在ClassHierarchy窗口(如果没有,菜单栏View→Windows→ClassHierarchy调出)中右击,选InsertClass,在弹出的对话框中将类名修改为Building,颜色修改为青色,勾选Always,Ok后新建的类出现在ClassHierarchy窗口。重复上述过程依次建立Forest,Grass,Road,Soil和Water等类,如下图:DENG_03169其次,打开样本导航器工具栏:选择主菜单ViewToolbarsSamples。调出SampleEditor窗口:点击按钮,或者主菜单View→Windows→SampleEditor。再次,定义特征空间:主菜单ClassificationNearestNeighborEditStandardNNFeatureSpace…。弹出对话框,通过双击左边的可用特征列表中需要应用于分类的特征,将其添加到右边,如下图:点击Ok后,回到主窗口,上述被选择的特征出现在SampleEditor窗口中,最右边显示各特征的分布范围和标准差,如下图:DENG_031610然后,应用分类规则到所有类:主菜单ClassificationNearestNeighborApplyStandardNNtoClasses…弹出对话框,从左边列表中双击目标类别添加到右边列表,此处,我们点击All…选择所有类,再Ok。双击ClassHierarchy窗口中的任意一个类,弹出类编辑对话框,我们可以看到所选的分类特征已经被应用到了每个类中:DENG_0316116.创建训练样本:任意点击一个Object,在SampleEditor窗口中,红色箭头指示它的各分类特征空间值:选择类的训练样本:a.从样本编辑器SampleEditor中的ActiveClass下或者ClassHierarchy中选择需要选择样本的类,如水体;b.点击样本导航器工具栏的SelectSample按钮;c.在分割图上双击样例对象,该对象被添加目标类的样本库中,同时主图像窗口中该对象以对应类的颜色显示:DENG_031612可按住Shift键选择多个样本后再双击,可同时添加多个样本。如果发生误采集,可以再次双击该对象即可取消。为该类添加不同区域多个样本,完成该类样本的采集后,关闭SelectSample按钮。依次重复上述过程,完成所有类训练样本的采集工作(注意:采集完训练样本后,应及时关闭SelectSample按钮,以避免误操作),最终训练样本选择如下图(练习时,可以利用后述的LoadTTAMask功能将训练样本加载进来):在样本采集的过程中,我们可以:a.结合使用样本导航器工具栏的SampleNavigation工具和SampleEditor窗口随时找到对应的训练样本;b.通过选择SampleEditor窗口中的Compareclass对比不同类中训练样本的分类特征空间的分布情况(被比较:黑色;比较:蓝色);c.在SampleEditor窗口中,灵活应用样本的空间特征信息和右键菜单的各个选项,为样本采集和修改提供便利;d.在每个类至少采集一个训练样本后,在SelectSample按钮打开的情况下,单击选择任意一个非训练样本的Object,在SampleSelectionInformation窗口(如果没有,可以通过菜单栏View→Windows→SampleSelectionInformation或者点击样本导航器工具栏的SampleSelectionInformation按钮调出),可以看到该对象属于各类的隶属度值:灰色代表当前Activeclass的隶属度值,红色代表隶属度值高于设定阈值的类,而绿色代表隶属度值低于设定阈值的类。阈值默认为0.7,可以通过在SampleSelectionInformation窗口中右击,选择Modifycriticalmembershipoverlap中修改。DENG_0316137.优化特征空间:一般情况下,选取的特征越多,信息越丰富,分类精度越高。但是,我们无法定量分析各个特征的具体贡献,有时候也会存在信息冗余。空间特征优化工具能计算出不同特征的贡献,帮你找出利于分类的最佳特征空间组合。它通过比较不同类的特征来找到能使这些类的训练样本之间具有最大平均最小距离的特征组合。打开特征空间优化对话框:从主菜单选择ToolsFeatureSpaceOptimization或者ClassificationNearestNeighborFeatureSpaceOptimization。弹出的对话框中,拥有训练样本的类都已经自动加载在左边列的Classes框中,可以点击SelectClasses按钮修改目标类。点击右边Features列下面的SelectFeatures按钮,将前述要用于分类的所有特征都选择进来(总数13个):DENG_031614左键点击分类特征,选择特征空间的初始组合,被选择的特征蓝色高亮显示,可以再次点击取消该特征的选择。此处,我们选择所有的特征作为初始组合。在Maximumdimension中输入最大维数,同样我们输入特征的总数13作为最大维数。设置如下图所示:DENG_031615点击Calculate按钮进行计算,结果如下图:在OptimizedFeatureSpace项显示最低分离距离为0.849,最佳维数为12。点击Advanced按钮查看各组合的详细信息,最佳组合以蓝色在ResultList和ResultChart高亮显示:DENG_031616下拉ResultList可以看到所有特征的组合的最低分离度为0.8475,小于最佳组合的0.849,也就是说并不是选择的特征空间数越多分离度就越高。但是需要注意的是:分离度是基于选定的样本计算而来,所以改变训练样本必然会影响类的分离度以及最佳组合,所以需要重新优化空间特征,再将其应用于分类。此外,点击ShowDistanceMatrix按钮,可以查看最佳组合下的不同类别间的分离矩阵:回到FeatureSpaceOptimization–AdvancedInformation对话框中,点击ApplytoClasses按钮,弹出类选择对话框,点击All---按钮将所有类加入到右边列,点Ok后应用目前的特征空间为所选的类生成最近邻体分类器;点击ApplytoStd.NN.按钮,应用目前选择的特征空间到标准最近邻体分类器。如果先勾选ClassifyProject,任意点击上述两个按钮中的一个,系统将对目前的Project中的所有对象进行分类。此处,我们不勾选。8.执行分类:首先,在ProcessTree窗口中,右击Segmentation规则,选择AppendNew,将Name修改为Objectclassification,其他默认,点Ok:DENG_031617其次,在这个新建规则上右击,选InsertChild,弹出对话框,Name自动,Algorithm