面向对象影像分类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象影像分类

面向对象的影像分类是在面向对象特征提取的基础上进行的。在分类之前,必须根据需要提取的地物类别,选择合适的尺度和合适的特征,然后根据地物类别的性质,设计好分类策略和步骤。对于给出的实验数据,我们的要求是分成草地、道路、房屋和湖泊四个类,根据面向对象特征提取中的经验可以发现,在Object Features -> Layer Values -> Mean -> Layer 3上可以很好地将草地/湖泊和道路/房屋分开,然后根据Object Features -> Geometry -> Extent -> Length/Width提取道路,因此分类策略是:先将草地/湖泊和道路/房屋分开,然后再分别针对草地/湖泊和道路/房屋的特征,将草地和湖泊、道路和房屋分开。

具体分类步骤如下:

1、多尺度分割:按照面向对象特征提取中的步骤,设置三个尺度100、70和50,并进行分割,分别得到L1、L2和L3层尺度影像,在尺度层网络中,L1尺度最大,在最上面,往下分别是L2和L3。最后的分类结果需要集中显示在一个层,因此还需要再加一个尺度层,只不过这个尺度层不纳入上面的尺度层网络中。在Process Tree中点右键,选择Append New,算法选择Segmentation -> multiresolution segmentation,Image Object Domain设为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和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。因此在这个层次结构中,level1处于最上层,所以level属性值为4,区间为3到5,依次类推,level2的level属性值为3,level3的level属性值为2,level4的level属性值为1。按照这个属性值分别设置完level1至level4的所有level属性。需要注意的是,Class Hierarchy视图有Group和Inheritance两个标

签,这两个标签类的这种层次结构应该是一致的,否则会出错。在编辑每个类的属性时,都

可以通过双击这两个标签中类的名称,但是在一个标签中改变类的层次结构,在另一个标签中却不会出现相应的改变,因此需要手动改变。

4、添加level1类的规则:双击“人工”,在弹出的对话框中依次双击add(min),Threshold,Object Features -> Layer Values -> mean,如下图:

双击Layer 3,在弹出的对话框中设置如下,点击OK。

双击“非人工”,在弹出的对话框中依次双击add(min),Similarity to classes -> 人工,如下图:

此时即设置“非人工”与“人工”具有相同的性质,而实际上它们应该具备相反的性质,因此需要设置“非人工”为“人工”的反义。在add(min) -> 人工上右键,选择Invert Expression,此时变成了“not 人工”,即完成取反。

5、对level1层次进行分类:在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),双击threshold,选择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”,依次双击add(min) -> Threshold -> Object

features -> Layer Values -> Mean -> Layer 1:

相关文档
最新文档