1、面向对象影像分类规则模式面向对象影像分类面向对象的影像分类是在面向对象特征提取的基础上进行的。在分类之前,必须根据需要提取的地物类别,选择合适的尺度和合适的特征,然后根据地物类别的性质,设计好分类策略和步骤。对于给出的实验数据,我们的要求是分成草地、道路、房屋和湖泊四个类,根据面向对象特征提取中的经验可以发现,在Object Features - Layer Values - Mean - Layer 3上可以很好地将草地/湖泊和道路/房屋分开,然后根据Object Features - Geometry - Extent - Length/Width提取道路,因此分类策略是:先将草地/湖泊和
2、道路/房屋分开,然后再分别针对草地/湖泊和道路/房屋的特征,将草地和湖泊、道路和房屋分开。具体分类步骤如下:1、多尺度分割:按照面向对象特征提取中的步骤,设置三个尺度100、70和50,并进行分割,分别得到L1、L2和L3层尺度影像,在尺度层网络中,L1尺度最大,在最上面,往下分别是L2和L3。最后的分类结果需要集中显示在一个层,因此还需要再加一个尺度层,只不过这个尺度层不纳入上面的尺度层网络中。在Process Tree中点右键,选择Append New,算法选择Segmentation - multiresolution segmentation,Image Object Domain设为
3、pixel level,尺度设为40,新层的名称为L4,同时运行该分割,得到L4层的分割结果。2、在Class Hierarchy中添加4个类,右键点击空白处,选择Insert Class,在弹出的对话框中分别命名为level1、level2、level3和level4,颜色都选择为灰白色:3、给三个类层次添加level属性:双击level1类,双击Contained - add(min),弹出Insert Expression对话框,依次选择Object features - Hierarchy - level,双击level,打开Membership function,单击按钮,在处输入3
4、和5,表示该函数的值为4,点击OK按钮,即完成给level1类添加level属性的操作。这里level1类的level属性值为4,是因为整个分类过程要分成四个层次,如下图所示:在level1层,将人工目标(道路、房屋)与非人工目标(草地、湖泊)区分开;在level2层设置非人工1,该类完全继承了level1中的非人工,在非人工1上再将草地1和湖泊1区分开;在level3层设置人工1,该类完全继承了level1中的人工,在人工1上再将道路1和房屋1区分开;在level4层为最终的分类层,其中草地和湖泊完全继承了level2中的草地1和湖泊1,道路和房屋完全继承了level3中的道路1和房屋1。因
5、此在这个层次结构中,level1处于最上层,所以level属性值为4,区间为3到5,依次类推,level2的level属性值为3,level3的level属性值为2,level4的level属性值为1。按照这个属性值分别设置完level1至level4的所有level属性。需要注意的是,Class Hierarchy视图有Group和Inheritance两个标签,这两个标签类的这种层次结构应该是一致的,否则会出错。在编辑每个类的属性时,都可以通过双击这两个标签中类的名称,但是在一个标签中改变类的层次结构,在另一个标签中却不会出现相应的改变,因此需要手动改变。4、添加level1类的规则:双击
6、“人工”,在弹出的对话框中依次双击add(min),Threshold,Object Features - Layer Values - mean,如下图:双击Layer 3,在弹出的对话框中设置如下,点击OK。双击“非人工”,在弹出的对话框中依次双击add(min),Similarity to classes - 人工,如下图:此时即设置“非人工”与“人工”具有相同的性质,而实际上它们应该具备相反的性质,因此需要设置“非人工”为“人工”的反义。在add(min) - 人工 上右键,选择Invert Expression,此时变成了“not 人工”,即完成取反。5、对level1层次进行分类:
7、在Process Tree中右键选择Append New,弹出的对话框中Algorithm选择Basic Classification - Classification,Algorithm Parameters中的Active Classes选择“人工”与“非人工”,点击OK。在Process Tree的新增加的一条记录上点右键,选择Execute,得到level1层的分类结果,如下图,可以看出,道路和房屋等人工目标以红色显示,非人工目标为灰白色。6、level2层次分类:将设置为L2层。首先将“非人工1”完全继承level1中的“非人工”。双击“非人工1”,双击add(min),双击thre
8、shold,选择class-related features - relations to super objects,双击Create new “Existence of”,在Class中选择“非人工1”,Distance设置为1,点击OK,如下图:弹出如下的对话框:这里设置为“=1”,表示完全将“非人工1”类继承下来。设置“湖泊1”的规则:双击Feature View视图中的Object Features - Layer Values - mean - layer 1,可以发现湖泊在该特征上的值非常低,均低于36,而草地的值高于36,因此用该特征可以将草地与湖泊分开。双击“湖泊1”,依次双
9、击add(min) - Threshold - Object features - Layer Values - Mean - Layer 1:在弹出的对话框中设置为“ classification,Algorithm Parameters中的Active Classes中选择“草地1,湖泊1”,如下图:此时Process Tree中多了一条记录,右键选择Execute,查看level2层的分类结果,如下图:7、level3的分类:将设置为L3,按照步骤6,将“人工1”完全继承level1中的“人工”,有一点不同的是,在下面的对话框中,Distance应该设置为2,因为level3和level
10、1的层间距离为2,其余的设置是一样的:设置“道路1”的规则:由于道路对象具有长条的形状,因此可以使用Object features - Geometry - Extent - Length/Width特征,大于6可以认为是道路,否则可以认为是房屋,设置好的规则如下:设置“房屋1”为“道路1”的反义,具体操作参见步骤4使用规则进行分类:在Process Tree中右键选择Append New,Algorithm中选择Basic Classification - classification,Algorithm Parameters中的Active Classes中选择“道路1,房屋1”,如下图:
11、此时Process Tree中多了一条记录,右键选择Execute,查看level3层的分类结果,如下图:到此需要分类的地物都已经在不同的尺度层上区分出来,最后一步就是在level4层上将上述处理的结果进行继承,得到最终的分类图。8、level4分类:将设置为L4。双击“草地”,依次双击add(min) - Threshold - class-related features - relations to super objects,双击Create new “Existence of”,在Class中选择“草地1”,设置Distance为2。其他地物的继承方式同“草地”,不同的是Distance,草地和湖泊的Distance为2,道路和房屋的Distance为1。按规则分类:在Process Tree中右键选择Append New,Algorithm中选择Basic Classification - classification,Algorithm Parameters中的Active Classes中选择“道路,房屋,草地,湖泊”,如下图:此时Process Tree中多了一条记录,右键选择Execute,查看level4层的分类结果,即为最终的分类结果。如下图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1