基于ENVI的遥感影像的非监督分类

ENVI包括了ISODATA和K-Mean两种非监督分类方法。

ISODATA(Iterative Self-Orgnizing Data Analysize Technique)是一种重复自组织数据分析技术,计算数据空间中均匀分布的类均值,然后用最小距离技术将剩余像元进行迭代聚合,每次迭代都重新计算均值,且根据所得的新均值,对像元进行再分类。

K-Means使用聚类分析方法,随机地查找聚类簇的聚类相似度相近,即中心位置,是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的,然后迭代地重新配置他们,完成分类过程。

非监督分类总体上一般可分为4个过程:执行非监督分类、类别定义、合并子类和评价分类结果。

 1

1)执行非监督分类

下面以TM图像为例介绍非监督分类操作过程。

由于ISODATA和K-Mean参数设置不同,就两种分类方法分别介绍。

  1. ISODATA

    在Toolbox工具箱中,双击Classification/Unsupervised Classification/IsoData Classification工具,在Classification Input File对话框中,选择分类的TM图像文件,单击OK按钮,打开ISODATA Parameters对话框,下面设置ISODATA Parameters对话框中的参数。

(1)类别数量范围(Number of Classes:Min,Max):一般输入最小数量不能小于最终分类数量,最大数量为最终分类数量的2~3倍。Min:5,Max:15。

(2)最大迭代次数(Maximum Iterations):15.迭代次数越大,得到的结果越精确,运算时间也越长。

(3)变换阈值(Change Threshold):5.当每一类的变化像元数小于阈值时,结束迭代过程。这个值越小,得到的结果越精确,运算量也越大。

(4)Minimun#Pixel in Class:键入形成一类所需的最少像元数。如果某一类中的像元数小于最少像元数,该类将被删除,其中的像元被归并到距离最近的类中。

(5)最大分类标准差(Maximum Class Stdv):1.以像素值为单位,如果某一类的标准差比该阈值大,该类将被拆分成两类。

(6)类别均值之间的最小距离(Minimum Class Distance):5.以像素值为单位,如果类均值之间的距离小于输入的最小值,则类别将被合并。

(7)合并类别最大值(Maximum#Merge Pairs):2。

(8)距离类别均值的最大标准差

(Maximum Stdev From Mean):为可选项。筛选小于这个标准差的像元参与分类。

(9)允许的最大距离误差(Maximum Distance Error):为可选项。筛选小于这个最大距离误差的像元参与分类。

(10)选择输出路径及文件名,单击OK按钮,执行非监督分类。

2.K-Means

在Toolbox工具箱中,双击Classification/Unsupervised Classification/K-Means Classifi-cation工具,在Classification Input File对话框中,选择分类的TM图像文件,单击OK;打开K-Means Parameters对话框,下面设置K-Means Parameters对话框中的参数。

(1)分类数量(Number of Classes):15.一般为输出最终分类数量的2~3倍。

(2)最大迭代次数(Maximum Iterations):10。

迭代次数越大,得到的结果越精确,运算时间也越长。

(3)距离类别均值的最大标准差Maximum Stdev From Mean):为可选项。筛选小于这个标准差的像元参与分类。

(4)允许的最大距离误差(Maximum Distance Eror):为可选项。筛选小于这个最大距离误差的像元参与分类。

(5)选择输出路径及文件名,单击OK按钮,执行非监督分类。

非监督分类结果:

背景值可以通过裁剪去除;

执行非监督分类之后,获得了一个初步的分类结果,需要进行类别定义和合并子类的操作。

第一步类别定义

类别定义的根据可以通过更高分辨率图像上目视解译获得,也可以是基于野外实地调查数据。

(1)打开目视解译底图并在视窗中显示(如果有)。

(2)打开TM非监督分类结果图像并在视窗口中显示。

(3)在图层管理器(Layer Manager)中,在Classes上右键选择Hide All Classes菜单,之后勾选Classl,只显示一个分类类别,通过目视判别该类的名称。

(4)在Toolbox工具箱中,双击Raster Management/Edit ENVI Header工具,在文件输入对话框中选择TM非监督分类结果。

(5)在Header Info面板中,选择Edit Attributes-→Classification Info,按照默认单击OK按钮,打开Class Color Map Editing面板。

(6)在Class Color Map Editing面板中,选择对应的类别,在Class Name中输入重新定义的类别名称,同时修改显示颜色。

(7)重复(3)~(6)步骤,定义其他类别。

提示:由于NVI5.1版本中每次修改图像头文件信息后自动关闭图像,因此最好在步骤(3)中把所有的分类都判读后,在Class Color Map Editing面板中修改分类名称和颜色。

第二步合并子类

在选择非监督分类类别数量时候,一般选择最终结果数量的2~3倍,因此在定义类别之后,需要将相同类别合并。

(1)在Toolbox工具箱中,双击Classification/Post Classification/Combine Classes工具。

在Combine Classes Input File对话框中,选择定义好的分类结果,单击OK按钮,打开Combine Classes Parameters面板。

(2)在Combine Classes Parameters面板中,从Select Input Class中选择合并的类别,从Selecct Out Class中选择并人的类别,单击Add Combination按钮添加到合并方案中。合并方案显示在Combined Classes列表中,在Combined Classes列表中单击其中一项,可以从方案中移除。

(3)合并方案确立之后,单击OK按钮,打开Combine Classes Output对话框,在Re-move Empty Classes项中选择“Yes”,将空白类移除。

(4)选择输出合并结果路径及文件名,单击OK按钮,执行合并。

评价分类结果的过程与监督分类的方法一样,可参考前面监督分类评价的内容,这里不再赘述。

最系统的ENVI,含土地利用、植被指数、耕地监测、水质反演、温度反演、干旱监测专题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unreal 5 实现使用GPU Instancing批量渲染相同的物体

之前做unity的时候,专门研究了使用GPU进行批量相同的物体渲染,现在转ue以后,发现UE也有相同的功能。接下来讲解一下,在ue里面如何实现通过GPU进行实例化渲染。 创建组件 能够实现GPU实例化渲染,ue提供了两个组件&…

最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇教程

详情点击链接:最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇 一,生态环评报告编制规范 结合生态环境影响评价最新导则,详述不同类型项目生态环评报告编制要求与规范 二,土地利用图 1、土地利用分类体系…

go系列-读取文件

1 概述 2 整个文件读入内存 直接将数据直接读取入内存,是效率最高的一种方式,但此种方式,仅适用于小文件,对于大文件,则不适合,因为比较浪费内存。 2.1 直接指定文化名读取 在 Go 1.16 开始,i…

HackTheBox - 学院【CPTS】复习4 - Web Attacks

Web Attacks 本模块涵盖三种常见的 Web 漏洞,即 HTTP 动词篡改、IDOR 和 XXE,每个漏洞都可能对公司的系统产生重大影响。我们将介绍如何通过各种方法识别、利用和防止它们中的每一个。 HTTP HEAD/GET/POST/PUT/OPTIONS IDOR寻找 一般能够从前端js找到…

.Net 4726.0 Razor编译时的小差异

前言 几个月前在进行着.Net 472到6.0的升级,复用原有代码,在对Razor进行迁移中,发现原运行正常的代码,却存在报错,深入研究发现是Core下对Razor编译有一些变动。 问题复现 472 创建视图 新建.Net Framework下Mvc&#…

软件测试的自动化工具

在软件开发过程中,测试是必不可少的一个环节。而在测试中,测试人员需要花费大量的时间和精力进行手动测试,这不仅费时费力,而且效率较低。因此,自动化测试工具的出现为测试人员提供了更加便捷高效的测试方法。本文将介…

(二)Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方,实现圆点的“彩色拖尾”效果以及“选中方框”效果

系列文章目录 通过Qt实现手势识别控制软件操作相关系列技术方案 (一)Qt 将某控件、图案绘制在最前面的方法,通过QGraphicsScene模块实现 (二)Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方,实现圆…

Spring Boot 中的 WebSocketSession 是什么,原理,如何使用

Spring Boot 中的 WebSocketSession 是什么,原理,如何使用 介绍 在现代 Web 应用程序中,实时通信是一个非常常见的需求。传统的 HTTP 协议是无法支持实时通信的,因为它是一种无状态协议,每次请求都是独立的&#xff0…

LangChain:LLM应用程序开发(上)——Models、Prompt、Parsers、Memory、Chains

文章目录 一、Models、Prompt、Parsers1.1 环境配置(导入openai)1.2 辅助函数(Chat API : OpenAI)1.3 使用OpenAI API进行文本翻译1.4使用LangChain进行文本翻译1.5 使用LangChain解析LLM的JSON输出1.5.1 LangChain输出为string格…

基于Java的万年历(课设)

基于Java的万年历 资源链接:基于Java的万年历(课设) 文章目录 基于Java的万年历1 绪论2 需求分析3 概要设计3.1 类间组合框架3.2 布局结构示意3.3 对各个类的概述 4运行环境5 开发工具和编辑语言6 详细设计6.1 NiceCaelendar类6.2 NiceFram…

LeetCode 2501 数组中最长的方波 Java

方法一,哈希表枚举 构造哈希集合,记录出现过的数字枚举遍历 import java.util.HashSet; import java.util.Set;class Solution {public int longestSquareStreak(int[] nums) {//构造哈希表集合,记录出现过的数字,转long型&…

如何在Microsoft Excel中迅速冻结首行和末行

如果你正在处理一个大型电子表格,那么冻结某些行或列会很有用,这样当你滚动浏览工作表的其余部分时,它们会留在屏幕上。 当你在 Excel 中滚动浏览大的工作表时,你可能希望保留一些行或列,例如页眉。Excel 允许你通过以…

2023年华中杯数学建模B题小学数学应用题相似性度量及难度评估解题全过程文档及程序

2023年华中杯数学建模 B题 小学数学应用题相似性度量及难度评估 原题再现 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学习和答题信息…

网络安全实战植入后门程序

在 VMware 上建立两个虚拟机:win7 和 kali。 Kali:它是 Linux 发行版的操作系统,它拥有超过 300 个渗透测试工具,就不用自己再去找安装包,去安装到我们自己的电脑上了,毕竟自己从网上找到,也不…

前端Vue自定义轮播图swiper 轮播图dot 轮播图指示indicate

前端Vue自定义轮播图swiper 轮播图dot 轮播图指示indicate,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id13193 效果图如下: ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) ​…

【HTTP 协议1】图文详解 HTTP 请求和应答报文

文章目录 前言一、认识 HTTP 协议1, 什么是 HTTP 协议2, HTTP 协议的报文格式 二、HTTP 请求报文1, 认识方法1.1, GET 和 POST 辨析(重点)1.2, 其他方法 2, 认识 URL3, 认识 Header3.1, Host3.2, Content-Length3.3 Content-Type3.4, User-Agent3.5, Referer3.6, Cookie(重点) …

【C#】并行编程实战:任务并行性(下)

本教程对应学习工程:魔术师Dix / HandsOnParallelProgramming GitCode 本章继续介绍任务并行性,因篇幅所限,本章为下篇。 6、处理任务异常 所有优秀的程序员都擅长高效地处理异常,这也是并行编程最重要的方面之一。任务并…

JMeter请求头添加删除方法(解决请求头类型冲突)

JMeter请求头添加删除方法(解决请求头类型冲突) 1. 为什么会有冲突 请求头的Content-Type类型在做上传和请求图片地址是,请求头类型是不一样的 请求图片地址:Content-Type: image/jpeg 一般的Restful接口:Content-Ty…

SpringBoot整合logback日志框架详解(提供Gitee源码)

前言:本篇博客主要介绍如何把主流的日志框架快速整合到目前的SpringBoot框架中,对六种日志等级进行介绍以及使用方法。 目录 一、日志级别 1、TRACE 2、DEBUG 3、INFO 4、WARN 5、ERROR 6、FATAL 二、导入pom.xml依赖 三、application.yml配置…

JS 1.如何实现继承 2.原型和原型链

1_使用class实现继承 /** 继承 */ class Person { constructor(name) { this.name name;}drink() { console.log(喝水)} }class Student extends Person{ constructor(name, score) { // new Personsuper(name);this.score score;}introduce() { console.log(我是${this.nam…