PIE SDK 距离分类和最大似然分类
1.算法功能简介
监督分类,也叫训练场地法、训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程。监督分类算法有平行算法、平行六面体法、最小距离法、最大似然法、马氏距离法、二值编码分类法等算法。
最小距离法是一种原理简单,应用方便的分类方法,它利用训练样本中各类别在各波段的均值,根据各像元离训练样本平均值的距离大小来决定其类别,其在遥感分类中应用并不广泛,主要缺点是此方法没有考虑不同类别内部方差的不同,从而造成一些类别在其边界上的重叠,引起分类误差,因此需要一些更有效的测量距离的方法。
最大似然分类,在多类地物识别时,常采用某种统计方法建立起一个判别函数集,然后根据这个判别函数计算各待分类样本的归属概率,样本属于哪一类的概率最大就判别其属于哪一类,这就是最大似然法 。最大似然法是根据训练样本的均值和方差来评价其他像元和训练类别之间的相似性,它可以同时定量地考虑两个以上的波段和类别,是一种广泛应用的分类器,但是这种算法的计算量较大,同时对不同类别的方差变化比较敏感。
PIE SDK支持算法功能的执行,下面对距离分类算法和最大似然分类法功能进行介绍。
2.算法功能实现说明
2.1 实现步骤
|
第一步 |
设置ROI统计参数ROIStatistics_Exchange_Info并执行ROI统计算法得到ROI统计信息。 |
|
第二步 |
根据roi统计信息设置监督分类参数SupervisedClassification_Exchange_Info并执行距离分类算法 |
|
第三步 |
结果显示 |
2.2 算法参数
|
算法名称 |
距离分类 |
|
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
|
C#算法名称 |
PIE.CommonAlgo.DistanceClassificationAlgo(距离分类) PIE.CommonAlgo.MLClassificationAlgo(最大似然分类) |
|
|
参数结构体 |
SupervisedClassification_Exchange_Info |
|
|
参数说明 |
||
|
InputFilePath |
String |
输入文件(*.tif;*.tiff; *.img) |
|
OutputFilePath |
String |
输出文件路径 (*.tif;*.tiff; *.img) |
|
RStart |
Int |
行起始值(大于等于0小于栅格总行数) |
|
REnd |
Int |
行结束值(大于等于0小于栅格总行数,大于RStart) |
|
CStart |
Int |
列起始值(大于等于0小于栅格总列数) |
|
CEnd |
Int |
列结束值(大于等于0小于栅格总列数,大于CEnd) |
|
SelBandNums |
Int |
多光谱波段个数 |
|
SelBandIndexs |
IList<Int> |
多光谱波段集合 |
|
ROINums |
Int |
ROI个数 |
|
ROIMean |
IList<double> |
ROI均值集合 |
|
ROICof |
IList<double> |
ROICof集合 |
|
ListRoiNames |
IList<String> |
ROI名称集合 |
|
ListRoiColors |
IList<String> |
ROI颜色集合 |
|
ClassifierType |
Int |
监督分类类型(0代表最大似然分类;11代表最小距离分类;12带代表马氏距离分类) |
|
FuncName |
String |
C#算法名称 |
2.3 示例代码
|
项目路径 |
百度云盘地址下/PIE示例程序/10.算法调用/图像处理/ DistanceClassify |
|
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World.tif |
|
视频路径 |
百度云盘地址下/PIE视频教程/10.算法调用/图像处理/距离分类算法.avi |
|
示例代码 |
|
using PIE.Carto; |
|
2.4 示例截图

注意:
1、上述分类图由于roi分类的类别很少可能误差有点大,稍微做了些渲染修改
2、如果要改成最大似然分类法,修改执行算法以及ClassifierType=0;
其他不变(距离分类和最大似然分类的参数文件是同一个素以不需要修改其他内容):
PIE.SystemAlgo.ISystemAlgo algo=PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.MLClassificationAlgo")
PIE SDK 距离分类和最大似然分类的更多相关文章
- PIE SDK K-Means分类
1.算法功能简介 K-Means 算法的基本思想是:以空间中 k 个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果. 算法首先随机从数据集中选 ...
- PIE SDK 精度分析(分类后处理)
1.算法功能简介 遥感图像分类精度分析通常把分类图与标准数据进行比较,然后用正确分类的百分比来表示分类的精度. PIE SDK支持算法功能的执行,下面对精度分析算法功能进行介绍. 2.算法功能实现说明 ...
- PIE SDK ISODATA分类
1.算法功能简介 ISODATA(IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm)即迭代式自组织数据分析技术, 其大致原理是首先计算数据空 ...
- PIE SDK分类合并
1. 算法功能简介 分类合并功能是将分类文件中所设置的对应类别进行合并. PIE SDK支持算法功能的执行,下面对分类合并算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参 ...
- PIE SDK 监督分类对话框类(SupervisedClassificaitonDialog)使用经验
最近研究遥感,用到分类算法,PIE SDK正好提供了一些方法可供调用,他们的官方博客上也有相应的示例代码(可参考:https://www.cnblogs.com/PIESat/p/10725270.h ...
- PIE SDK 文章目录索引
1.PIE SDK介绍 1.1. PIE软件介绍 1.2. PIE SDK介绍 1.3. PIE支持项目介绍 1.4. PIE.NET-SDK插件式二次开发介绍 1.5. PIE.NET-S ...
- PIE SDK Command&&Tool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
- PIE SDK分类统计
1. 算法功能简介 分类统计功能是将分类后的结果统计输出. PIE SDK支持算法功能的执行,下面对分类统计算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参数设置 第二步 ...
- PIE SDK过滤
1. 算法功能简介 过滤功能使用斑点分组方法来消除分类文件中被隔离的分类像元,用以解决分类图像中出现的孤岛问题. PIE SDK支持算法功能的执行,下面对过滤算法功能进行介绍. 2. 算法功能实现说明 ...
随机推荐
- spring boot配置mybatis和事务管理
spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...
- C# 实现对PPT编辑
C# Presentation 文本替换 我们可以通过插入占位符的方式,使用新的字词替换已有幻灯片里的文字. 本文将详细描述如何使用Spire.Presentation 来替换Prsentation ...
- SimpleDateFormat是线程不安全的
线程不安全的SimpleDateFormat SimpleDateFormat是线程不安全的 SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但 ...
- C语言访问mysql数据库
mysql中新建的数据库为hyx,hyx中的表为my_schema,表中的数据为下图: 编写代码,访问表中的数据,测试代码如下: #include "stdafx.h" #incl ...
- JavaScript词法作用域经典练习题
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- Spring AOP 详解 【转】
此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决.一方面是为了以更加灵活的方式来解决问题,另 ...
- SMTPAppender
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. http://logback.qos ...
- 编写高质量代码改善C#程序的157个建议——建议135: 考虑使用肯定性的短语命名布尔属性
建议135: 考虑使用肯定性的短语命名布尔属性 布尔值无非就是True和False,所以应该用肯定性的短语来表示它,例如,以Is.Can.Has作为前缀. 布尔属性正确命名的一个示例如下: class ...
- 创建Jutil (单元测试)
如何创建JUtil 这里拿Dynamic项目来演示,首先创建一个Dynamic项目,起名,点next, 继续点next, 将web.xml文件勾选,finish, 接下来在Java Resources ...
- 解决svn:E155037错误(另附查看.db文件的工具)
今天使用svn提交代码的时候出问题了,Error:svn: E155037.....Previous operation has not finished; run 'cleanup' if it w ...