ecognition学习(2)

【软件名称及版本】:ecognition 9.02
【学习内容】:遥感影像变化检测
使用ecognition完成遥感影像的变化检测

开头提醒大家随手保存是个好习惯,我希望我浪费的时间能为您省下一刻

因为中途软件出现了恶行bug导致重做,所有有些命名有些许差异,不过诸位的慧眼一定能明确甄别

1.数据的导入
将需要对比的数据一次性导入,注意路径无中文
ecognition学习(2)_第1张图片
2.编辑图层名称
数据导入之后,可以看到共有 10 个图层,为了区分时相和波段名,下面我们根据影像的命名给它们重命名
ecognition学习(2)_第2张图片
复制地图
(1)查看原始地图
影像加载后,在默认创建的原始地图 main 中,包含了所有影像图层。为了做变化检测,我们需要把 T1 时相和 T2 时相的图层分别装在另外两个地图中,T1 时相的所有图层装在map T1 中,T2 时相的所有图层装在 map T2 中。在view的image layer mixing中可以查看已经导入的图层
ecognition学习(2)_第3张图片
(2)创建进程目录
在Process Tree中右键,在弹出菜单中点击Append New,创建一个新进程。在Edit Process
中 Name 下一栏输入“copy image”,然后点击 OK。
ecognition学习(2)_第4张图片
(3)添加复制地图进程
在”复制地图”目录进程上右键,从菜单中点击 Insert Child,插入一个子进程。打开 EditProcess 窗口编辑进程。Algorithm 选择 copy map,Target map name 输入”map T1”,Image layers右侧空白栏中点击一下,在弹出的 Select Image Layers 对话框中勾选 B-T1,G-T1,R-T1,NIR-T1,PAN-T1,将其添加进来。
ecognition学习(2)_第5张图片
在复制地图到 map T1 的进程上右键,从菜单中点击 Append New,同上操作,如下设置
ecognition学习(2)_第6张图片
4.查看复制地图结果
执行复制地图进程之后(进程edit下excute即为运行),创建了 map T1。在 Navigate 工具栏中定位到 map T1,然后点击在这里插入图片描述,进行波段组合,里面只有 T1 时相的 5 个图层了,这里可以设置一下波段组合顺序,使用 RGB 合成方式,然后使用 NIR-T1 和 PAN-T1 在绿通道上进行加强。
ecognition学习(2)_第7张图片
map T2也如上操作,rgb通道设置也完全一致,均为绿色加强
第三节 地图分类
1.创建目录进程
在 Process Tree 中,右键点击”copy map”,从菜单中点击 Append New,创建一个新进程。在 Edit Process 中 Name 下一栏输入“Separate classification”,然后点击 OK。
ecognition学习(2)_第8张图片

在 Process Tree 中,右键点击”Separate classification”,从菜单中点击 Insert Child,创建一个新进程。在 Edit Process 中 Name 下一栏输入“map T1 分类”,同时在作用域限定中将 Map 设置为 mapT1(子进程中就不需要设置了,都是在 map T1 的范围内执行进程),然后点击 OK。
ecognition学习(2)_第9张图片
在 Process Tree 中,右键点击”map T1 Separate”,从菜单中点击 copy,然后再右键点击”mapT1 Separate”,从菜单中点击 Paste。双击后来复制的进程,打开 Edit Process 对话框,在 Name下的一栏中更改为“map T2 Separate”,同时在作用域限定中将 Map 设置为 map T2(子进程中就不需要设置了,都是在 map T2 的范围内执行进程),然后点击 OK。或者完全同上操作

(2)map T1 地图分类
在 Process Tree 中右键点击”map T1 Separate”,从菜单中点击 Insert Child,创建一个分割进程,现将 map T1 进行多尺度分割。在 Edit Process 中,设置 Algorithm为multiresolutionsegmentation,算法作用域上不需要设置,算法参数中设置 Level Name 为 Level T1,ImageLayer weights 设置为(B-T1、G-T1、R-T1、NIR-T1 和 PAN-T1 的权重为 1,B-T2、G-T2、R-T2、NIR-T2 和 PAN-T2 时相的权重为 0),然后点击 OK。
ecognition学习(2)_第10张图片

执行完分割进程后,查看 map T1 的分割效果。我们要打开分窗效果,点击主菜单上的Window,在下拉菜单中点击 Spilit Horizontally 和 Side by Side View,然后修改工具栏设置对比一下原始影像和分割效果。
ecognition学习(2)_第11张图片
2.map T1 创建自定义特征
我们在 map T1 中创建一个 NDVI-T1 特征,用于植被分类。在 Feature View 中双击 Createnew ‘Arithmetic Feature’,打开 Edit Customized Feature 对话框。在 Feature Name 中输入“NDVI-T1”,然后在特征列表中右键点击 Create New Mean,从菜单中点击 Create for AllImage Layers,创建所有图层的对象均值特征,最后在特征公式编辑区域输入 NDVI-T1 的
计算公式:([Mean NIR-T1]-[Mean R-T1])/([Mean NIR-T1]+[Mean R-T1])
(为防止bug,请尽量避免复制)。
编辑完成后点击确定关闭对话框。
ecognition学习(2)_第12张图片
3.map T1 查看植被特征区间
新创建的特征 NDVI-T1 在 Feature View 窗口的 Object features > Customized 目录下,查看该特征值时,可在 NDVI-T1 特征上右键,点击 Update Range,然后在窗口左下角的复选框中点击勾选,激活渲染特征值区间工具。
ecognition学习(2)_第13张图片
效果如下,不知为何自动填充的特征值和我参考资料值不同(似乎需要自己手动筛选合适范围,这里已经筛选完成,推荐大家抄作业)
ecognition学习(2)_第14张图片
为了确定植被的 NDVI-T1 特征值区间,我们同样采用分窗的方式来查看,上窗显示原始影像,下窗显示 NDVI-T1 特征值。通过特征显示窗口观察,我们发现属于植被的对象都是用绿色来渲染的,说明植被的 NDVI-T1 值较高。于是我们在调节植被的 NDVI 特征值区间时,需要设定一个最低值,将其它类别的对象进行排除。通过调整、观察和对比,确定这个最低值为 0.32。
ecognition学习(2)_第15张图片
4. map T1 植被分类
我们在进程目录中找到 map T1 多尺度分割进程,在该进程上右键,点击 Apend New,添加一个分类进程。Algorithm 选择 assign class,Condition 处设置 NDVI-T1≥0.32,Use class设置为植被并设置颜色。如下:
ecognition学习(2)_第16张图片
执行完植被分类进程之后效果如下
ecognition学习(2)_第17张图片

  1. map T1 非植被分类
    由于系统默认存在一个 unclassified 类别,因此在对未分类对象进行分类时,不需要设定阈值,只需要把 unclassified 类别指定为非植被类别。首先我们在 map T1 植被分类进程上右键,点击 Append New,新建一个进程。Algorithm 选择 assign class,Level 选择 Level T1,Class Filter 设置为 unclassified,use class 设置为非植被-T1 并设置颜色。这里我们设置为黄色

ecognition学习(2)_第18张图片

  1. map T1 植被合并
    在 Process Tree 窗口中右键点击 map T1 非植被分类进程,点击 Append New,添加一个合并进程,将植被类别的对象进行合并。在 Edit Process 窗口中对进程进行编辑,Algorithm选择 merge region,作用域定义中将 Class Filter 设置为植被-T1,设置完成后点击 OK。
    ecognition学习(2)_第19张图片
    执行完成后,植被-T1 类别的对象就被合并了。

  2. map T1 非植被合并
    在 Process Tree 中,右键点击 map T1 植被合并的进程,从菜单中点击 copy,然后再右键点击 map T1 植被合并的进程,从菜单中点击 Paste。双击后来复制的进程,打开 Edit Process对话框。如下设置
    ecognition学习(2)_第20张图片
    执行完成后,非植被-T1 类别的对象也被合并了。
    ecognition学习(2)_第21张图片
    下面内容出现恶行bug先不要看了,最晚明天晚上完善,给诸位道个歉

//已完成修改,请放心食用//
3.map T2 地图分类
1 .map T2 分割
在 Process Tree 中右键点击”map T2 分类”,从菜单中点击 Insert Child,创建一个分割进程,现将 map T2 进行多尺度分割。在 Edit Process 中,设置 Algorithm 为 multiresolutionsegmentation,算法作用域上不需要设置,算法参数中设置 Level Name 为 Level T2,ImageLayer weights 设置为(B-T1、G-T1、R-T1、NIR-T1 和 PAN-T1 的权重为 0,B-T2、G-T2、R-T2、NIR-T2 和 PAN-T2 时相的权重为 1),如图设置然后点击 OK。(原谅我刚知道圈重点地方)
ecognition学习(2)_第22张图片

执行完分割进程后,查看 map T2 的分割效果。我们要打开分窗效果,点击主菜单上的Window,在下拉菜单中点击 Spilit Horizontally 和 Side by Side View,对比一下原始影像和分割效果。

2 . map T2 创建自定义特征
我们在 map T1 中创建一个 NDVI-T2 特征,用于植被分类。在 Feature View 中双击 Createnew ‘Arithmetic Feature’,打开 Edit Customized Feature 对话框。在 Feature Name 中输入“NDVI-T2”,然后在特征公式编辑区域输入 NDVI-T2 的计算公式。编辑完成后点击确定关闭对话框。
公式=“([Mean NIR-T2]-[Mean R-T2])/([Mean NIR-T2]+[Mean R-T2])”
ecognition学习(2)_第23张图片
3 map T2 查看植被特征区间
新创建的特征 NDVI-T2 在 Feature View 窗口的 Object features > Customized 目录下,查看该特征值时,可在 NDVI-T2 特征上右键,点击 Update Range,然后在窗口左下角的复选框中点击勾选,激活渲染特征值区间工具。和map T1中的操作相同这里不在赘述。
之后点击显示轮廓线按钮 ,显示影像的 NDVI-T2 特征,在特征值区间内的对象用蓝色或绿色进行渲染,不在特征值区间的对象用白色、黑色或灰色进行渲染。为了确定植被的 NDVI-T2 特征值区间,我们同样采用分窗的方式来查看,上窗显示原始影像,下窗显示 NDVI-T2 特征值。通过特征显示窗口观察,我们发现属于植被的对象都是用绿色来渲染的,说明植被的 NDVI-T2 值较高。于是我们在调节植被的 NDVI-T2 特征值区间时,需要设定一个最低值,将其它类别的对象进行排除。通过调整、观察和对比,确定这个最低值为 0.3。(还是心软)
效果如下
ecognition学习(2)_第24张图片
4 map T2 植被分类
我们在进程目录中找到 map T2 多尺度分割进程,在该进程上右键,点击 Apend New,添加一个分类进程。Algorithm 选择 assign class,Condition 处设置 NDVI-T2≥0.3,Use class设置为植被并设置颜色。效果如下
ecognition学习(2)_第25张图片
5 map T2 非植被分类
由于系统默认存在一个 unclassified 类别,因此在对未分类对象进行分类时,不需要设定阈值,只需要把 unclassified 类别指定为非植被类别。首先我们在 map T2 植被分类进程上右键,点击 AppendNew,新建一个进程。Algorithm 选择 assign class,Level 选择 Level T2,Class Filter 设置为 unclassifieduse class 设置为非植被-T2 并设置颜色。这里我仍然选择黄色,大多时候我们也习惯这样使用。效果如下
ecognition学习(2)_第26张图片
6 map T2 植被合并
在 Process Tree 窗口中右键点击 map T2 非植被分类进程,点击 Append New,添加一个
合并进程,将植被类别的对象进行合并。在 Edit Process 窗口中对进程进行编辑,Algorithm
选择 merge region,作用域定义中将 Class Filter 设置为植被-T2,设置完成后点击 OK。执行完成后,植被-T2 类别的对象就被合并了。如下图
ecognition学习(2)_第27张图片
7 map T2 非植被合并
在 Process Tree 中,右键点击 map T2 植被合并的进程,从菜单中点击 copy,然后再右键点击 map T2 植被合并的进程,从菜单中点击 Paste。双击后来复制的进程,打开 Edit Process对话框。如下设置
ecognition学习(2)_第28张图片
excute后效果如图
ecognition学习(2)_第29张图片
至此你的map2下子程序应如下图
ecognition学习(2)_第30张图片

第四节 同步地图
1.创建进程目录
在 Process Tree 中,右键点击”分别分类”,从菜单中点击 Append New,创建一个新进程。
在 Edit Process 中 Name 下一栏输入“Synchronous map”,然后点击 OK。
ecognition学习(2)_第31张图片
2.添加同步地图进程(map T1→main)
在 Process Tree 窗口中右键点击“Synchronous map”,从菜单中点击 Insert Child,在 Edit Process对话框中编辑进程。Algorithm 选择 synchronize map,作用域中设置 Level 为 Level T1,设置 Map 为 map T1,算法参数中设置 Target Map Name 为 main,设置 Level 名称为 Level T1。Main 地图中只有影像图层,没有对象层,需要将 map T1 的 Level T1 层同步到 main 地图的Level T1 层上,同时在 main 上创建 Level T1。进程编辑完成后点击 OK 保存进程。(哈,现在我想起来标注重点了)
ecognition学习(2)_第32张图片

执行完同步地图进程后,main 地图上就创建了 Level T1,这个对象层与 map T1 上的
Level T1 是一模一样的。
在这里插入图片描述
3.添加复制影像对象层进程
在 Process Tree 窗口中右键Synchronous map进程,从菜单中点击 Append New,在 Edit Process对话框中,设置 Algorithm 选择 copy image object level,作用域中设置 Level 为 Level T1,算法参数中设置 Level Name 为 Level T2。这个进程是在 main 地图上复制出一个新的影像对象层,该层位于 Level T1 之上,用于存储将要同步进来的 map T2 的影像对象层。(你看我又想起来了)
ecognition学习(2)_第33张图片

执行完复制影像对象层进程之后,main 地图上又创建了 Level T2 层,该层目前与 LevelT1 层一模一样。
在这里插入图片描述
4.添加同步地图进程(map T2→main)
在 Process Tree 窗口中右键点击“复制同步地图进程”,从菜单中点击 Append New,在Edit Process 对话框中编辑进程。Algorithm选择 synchronize map,作用域中设置 Level为 LevelT2,设置 Map 为 map T2,算法参数中设置 Target Map Name 为 main,设置 Level 名称为 LevelT2(map T2 中的 Level T2 同步到 main 中,取代 Level T2),Synchronize complete hierachy设置为 no(如果是 yes,main 中的 Level T1 将被取代为无)。进程编辑完成后点击 OK 保存进程。(阅读理解:请问连续几次出现的括号起什么作用)
ecognition学习(2)_第34张图片
执行完同步地图(map T2→main)进程后,main 地图上位于下层的 Leve T1 将被 LevelT2 的轮廓切割,因为下层分割尺度必须小于或等于上层分割尺度。下图为 main 地图上 LevelT1 在执行该进程后的图
ecognition学习(2)_第35张图片
下图为 main 地图上 Level T2 在执行该进程后的图。执行完成后 main 地图上的
Level T2 与 map T2 上的 Level T2 一模一样。
ecognition学习(2)_第36张图片
5.添加转为子对象进程
在 Process Tree 窗口中右键点击同步地图(map T2→mian)进程,从菜单中点击 Append
New,新建一个转为子对象的进程。在 Edit Process 中,Algorithm 选择 convert to sub-objects,作用域中设置 Level 为 Level T2。(答:起强调作用)

ecognition学习(2)_第37张图片

执行完转为子对象进程后,main 中的 Level T2 按照子对象层 Level T1 的对象轮廓进行再分割,最终 Level T2 和 Level T1 的图斑可以一一对应。下图为 main 中 Level T2 执行该进程前后的效果图。
ecognition学习(2)_第38张图片ecognition学习(2)_第39张图片
**第五节 变化检测
1.创建进程目录
在 Process Tree 窗口中,右键点击“Synchronous map”进程目录,从菜单中点击 Append New,添加一个进程目录。在 Edit Process 中的 Name 一栏中输入“change detection“
至此你的进程树下应有如下的主进程
ecognition学习(2)_第40张图片

2.添加复制影像对象层进程
在 Process Tree 窗口中,右键点击“变化检测”进程目录,从菜单中点击 Insert Child,插入一个子进程,通过复制创建一个用于比对变化的影像对象层。在 Edit Process 对话框中,Algorithm 选择 copy image object level,作用域中设置 Level 为 Level T2,算法参数中设置Level Name 为 Level change。(。。)
ecognition学习(2)_第41张图片
执行完成后,main 中的 Level change 与 Level T2 一模一样
在这里插入图片描述
3.添加删除分类结果进程
在 Process Tree 中右键点击复制影像对象层进程,从菜单中点击 Append New,新建一个进程,删除 Level change 的分类结果。在 Edit Process 中,Algorithm选择 removeclassification,作用域中设置 Level 为 Level change,算法参数中设置 Classes 为非植被-T2 和植被-T2。(。)
ecognition学习(2)_第42张图片

执行完删除分类结果进程之后,Level change 对象层上的分类结果将被擦除,只有分割轮廓。
ecognition学习(2)_第43张图片
4.添加类别描述
1 植被增加类别描述
在 Class Hierarchy 窗口中右键点击一下,从菜单中点击 Insert Class,弹出 ClassDescription 窗口。在 Class Description 窗口中,Name 一栏处输入“vegetation increase”,在下面类描述区域中,双击and(min),弹出 Insert Expression 窗口。这里使用蓝色,稍后设置
ecognition学习(2)_第44张图片

在 Insert Expression 窗口中双击 Threshold,弹出 Edit Condition 窗口。
ecognition学习(2)_第45张图片
在 Edit Condition 窗口中,点击 Add New 按钮,添加一个阈值条件。在添加的一行条件中,点击 Value1 栏中的下拉键,再点击 From Feature…,然后弹出 Select Single Feature 窗口。

在 main 中植被-T1 类别在 Level T1 中,而 Level T1 与父层 Level change 的距离为 2。因此在 Create Existence of 对话框中,点击 Class 栏,从下拉菜单中选择植被-T1,在Distance栏中输入 2。设置完成后点击 OK,这个特征就创建好了。
ecognition学习(2)_第46张图片

再回到 Select Single Feature 窗口,点击植被-T1(2)这个特征,再点击 OK,这个特征就加载到 Edit condition 窗口中了,用于进行阈值条件设定。
在这里插入图片描述
在 Edit condition 窗口中,编辑植被增加类别的阈值条件,植被增加类别是指 T1 时相没有植被,而 T2 时相有植被。因此 Value2 的值为 0,意思是 T1 时相没有植被。
ecognition学习(2)_第47张图片
再点击一下 Add new…按钮,添加另一个阈值条件来描述植被增加这个类别。在添加的一行条件中,点击 Value1 栏中的下拉键,再点击 From Feature…,然后弹出Select Single Feature 窗口。操作同上步不再赘述,唯一区别多了上步添加到vegetation-T1,在 Edit condition 窗口中,编辑植被增加类别的第二个阈值条件,由于植被增加类别是指 T1 时相没有植被,而 T2 时相有植被。因此 Value1 的值设置为植被-T2(1),Value2 的值为 1,意思是 T2 时相存在植被。
ecognition学习(2)_第48张图片

设定好阈值条件之后,在 Edit condition 窗口上点击 OK,在 Insert Expression 窗口上点击 Close,关闭这两个窗口。我们看到 Class Description 窗口中,植被增加类别已经添加了类别描述,最后点击 OK 完成类别创建。(注意颜色)
ecognition学习(2)_第49张图片
2 植被减少类别描述

整体详细操作参考上步,不再赘述,简单介绍
这里颜色使用砖红色

由于植被减少类别是 T1 时相有植被,而 T2 时相没有植被,因此 Value2 栏中输入 1,表示有植被。
由于植被减少类别是 T1 时相有植被,而 T2 时相没有植被,因此 Value2 栏中输入 0,表示没有植被。
ecognition学习(2)_第50张图片
3 植被未变化类别描述
整体详细操作参考上步,不再赘述,简单介绍
这里颜色使用深绿色
由于植被未变化类别是 T1 时相有植被,且 T2 时相也有植被,因此 Value2 栏中输入 1,表示有植被。
由于植被未变化类别是 T1 时相有植被,且 T2 时相也有植被,因此 Value2 栏中输入1,表示有植被。
ecognition学习(2)_第51张图片
查看 Class Hierachy 窗口,植被减少、植被增加和植被未变化类别都已经描述好了。
ecognition学习(2)_第52张图片

5.添加分类进程
Process Tree 窗口中,右键点击删除分类结果进程,从菜单中点击 Append New,添加一个分类进程。Algorithm 选择 Classification,作用域中 Level 设置为 Level change,算法参数中 Active classes 选择植被减少、植被增加、植被未变化(在 Active classes 的 Value 栏中点击一下弹出 Edit Classification Filter 窗口,里面选择新创建的三个类别)。
ecognition学习(2)_第53张图片
6.查看变化检测结果
执行完分类进程之后,main 地图上的 Level change 对象层就完成了分类。

ecognition学习(2)_第54张图片

你可能感兴趣的:(学习笔记,遥感)