当然,shapes.tif是光栅图像,要开始任何有意义的分析,我们必须指示软件将元素识别为对象;完成此操作后,我们可以添加更多级别的分类。在eCognition软件中,这些指令称为规则集,它们被写入并显示在Process Tree窗口中。
任何分析的第一步都是软件将图像划分为定义的区域——这称为分割并创建未定义的对象。根据定义,这些对象将相对粗糙,但我们可以稍后通过进一步的规则集来完善它们。最好创建相当大的对象,因为较小的数字更容易使用。
在Process Tree窗口中单击鼠标右键,然后从右键单击菜单中选择Append New。出现“编辑进程”对话框。在名称字段中,输入“创建对象并删除背景”。按确定。
在Process Tree窗口中,右键单击此新规则并选择Insert Child。在算法下拉框中,选择多分辨率分割。在现在出现在对话框右侧的分段设置中,将Scale Parameter更改为50。按Execute。
图像现在分解为大区域。当您现在单击图像的某些部分时,您会看到——因为我们的初始图像非常清晰——软件已经相当准确地隔离了形状。它还从白色背景中创建了几个大型对象。
此操作说明了eCognition Developer中的父子概念。可以继续使用Append New来添加越来越多的规则,但是当您希望一系列流程创建特定结果时,最好将相关规则分组在一个容器(父流程)中。您可以通过使用插入子命令将兄弟进程添加到父进程来实现此目的。
3、识别背景
背景的明显属性是它非常均匀,并且就颜色而言,与其中的形状不同。
在eCognition Developer中,您可以从大量的形状、纹理和颜色变量中进行选择,以便对特定对象或对象组进行分类。在这种情况下,我们将使用亮度功能,因为背景比形状要亮得多。
您可以使用“特征视图”窗口对这些属性进行测量。Feature View窗口本质上允许您测试算法并更改其参数;双击感兴趣的特征,然后将鼠标指向对象以查看它为您提供的数值。该值显示在图像对象信息窗口中。然后,您可以使用此信息来创建规则。
提示:从功能视图树运行算法和更改值不会影响项目文件或任何规则集中的任何图像设置。尝试不同的设置和算法是安全的。
4、编写规则集
从特征视图树中,选择对象特征 > 图层值 > 平均值,然后双击亮度标签。亮度值现在出现在图像对象信息窗口中。单击我们的新对象图元现在会给出一个亮度值,这些值都在 254 的范围内。相反,形状的亮度值要低得多(在 80 到 100 之间)。因此,例如,我们现在可以做的是将任何亮度值超过 250 的东西定义为背景。
右键单击您刚刚创建的同级('200 [shape: 0.1 ...' 过程)并选择 Append New - 这将在同一级别创建一个新规则。(一旦我们分离出背景,我们将把这些碎片粘在一起并赋予它“背景”的值。)
在算法下拉框中,选择分配类。我们需要通过按下 Condition 旁边的值列中的省略号 (...) 来输入刚刚确定的亮度属性,这将启动 Edit Condition 窗口。转到Value 1字段,选择From Feature ...然后选择 Object Features > Layer Values > Mean 并双击 Brightness。我们可以将背景定义为亮度超过 230 的任何内容,因此选择“大于”按钮 (>) 并在值 2字段中输入 230。按确定。
最后要做的是对我们的新标准进行分类。在 Edit Process 窗口右侧的 Algorithm Parameters 的 Use Class 参数中,覆盖“unclassified”,输入“Background”并回车。将出现 Class Description 框,您可以在其中将颜色更改为白色。按 OK 关闭该框,然后在 Edit Process 对话框中按 Execute。
提示:在这个阶段,在编写规则集时很容易漏掉一个函数。根据本节末尾的“进程树”窗口的屏幕截图检查规则的结构和内容。
结果,当您将鼠标指向白色区域时,我们刚刚创建的背景分类出现在光标下方。此外,“背景”现在出现在屏幕右上角的“类层次结构”窗口中。非背景对象(所有形状)的分类为“未分类”。
5、加入背景片段
由于我们现在有几块具有“背景”分类的背景,我们可以将所有块合并为一个对象。
再次,右键单击进程树中的最后一个规则集并选择追加新,以在“创建对象并删除背景”父进程中创建第三条规则。
在算法下拉框中,选择合并区域。在启动“编辑分类过滤器”框的“类过滤器”参数中,选择“背景”——我们想要合并背景对象,以便以后可以细分剩余的对象(形状)。按OK关闭该框,然后按Execute。背景现在是单个对象。
提示:要查看图像中图像对象的分类,您必须选择水平工具栏上的查看分类按钮。将光标悬停在对象上时会显示分类。
6、形状及其属性
圆的一些性质:
与面积相关的小周长
恒定曲率
没有直边
正方形的一些性质:
长宽比为1:1
所有边的长度相等
星星的一些属性:
与区域相比,边界相对较长
没有弯曲的边缘
7、隔离圈子
eCognition Developer有一个称为Elliptic Fit的内置算法;它基本上测量一个对象与相似区域的椭圆的拟合程度。椭圆拟合也可以在特征视图中找到,可以通过选择对象特征>几何>形状,然后双击椭圆拟合来找到。当然,一个完美的圆的椭圆拟合为1(最大值),所以——至少在这个例子中——我们真的不需要检查这个。但是您可能还是想练习使用功能视图。
为了隔离圈子,我们需要建立一个新规则。我们希望此规则与我们的第一个“创建对象...”规则集处于同一层次,最简单的方法是右键单击“创建对象”规则集并选择追加新,这将创建一个在同一级别处理。将此过程称为“定义和隔离圈子”。
要添加规则,请右键单击新进程并选择插入子进程。在算法下拉框中,选择分配类。单击条件并转到值1字段。选择From Feature并使用前面描述的路径导航到Elliptic Fit特征。为了允许一点图像质量下降,我们将把一个圆定义为任何值超过0.95的东西,因此您应该使用“大于”符号作为运算符并在值2字段中输入值0.95。按确定。
回到Edit Process窗口,我们将为分类命名。将Use Class中的'unclassified'值替换为'Circle',按Enter并为其分配您选择的颜色。按确定。最后,在Edit Process窗口中,按Execute运行该进程。现在类层次结构中有一个“圆形”分类,将光标放在圆形上将显示新分类。
8、隔离正方形
我们还可以使用一种方便的算法来识别正方形;矩形拟合值(对于正方形,当然是一)。
该方法与圆的方法相同——创建一个新的父类并将其命名为“定义和隔离正方形”当您创建子类时,您将能够通过转到对象特征>几何>形状>找到算法长方形。将范围设置为“=1”并将其分配给一个新类(“Square”)。
9、隔离星星
您可以使用一些标准来识别星星,但由于我们使用该软件来分离和分类正方形、圆形和星星,我们可以务实——在定义背景、圆形和正方形之后,星星是唯一剩下的物体。所以剩下要做的就是将任何“未分类”的东西归类为明星。
只需设置一个名为“定义和隔离星”的父级,选择分配类,在类过滤器中选择“未分类”,并在使用类中为其指定值“星”。