1.算法功能简介

ISODATA(IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm)即迭代式自组织数据分析技术, 其大致原理是首先计算数据空间中均匀分布的类均值, 然后用最小距离规则将剩余的像元进行迭代聚合;每次迭代都重新计算均值,且 根据所得的新均值,对像元进行再分类;这一处理过程持续到每一类的像元数变化少于所选的像元变化阀值或者达到了迭代的最大次数。

ISODATA 算法通过设置初始参数而引入人机对话环节,并使用归并和分裂 等机制,当两类聚中心小于某个阀值时,将它们合并为一类。当某类的标准差大 于某一阀值时或其样本数目超过某一阀值时,将其分裂为两类,在某类样本数目 小于某一阀值时,将其取消。这样根据初始类聚中心和设定的类别数目等参数迭代,最终得到一个比较理想的分类结果。 ISODATA 算法是一种常用的聚类分析方法,是一种非监督学习方法。

PIE SDK支持算法功能的执行,下面对ISODATA分类算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2算法参数

算法名称

ISODATA分类

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.ISODataClassificationAlgo

参数结构体

ISODataClassification_Exchange_Info

参数说明

InputFilePath

String

输入文件

(*.tif;*.tiff; *.img)

OutputFilePath

String

输出文件路径

(*.tif;*.tiff; *.img)

ProspClassNum

Int

预期类数(2~255的正整数,默认为8)

InitClassNum

Int

初始类数(2~255的正整数,默认为5)

MinSam

Int

最少像元数(大于0的正整数,默认为5)

MaxMerge

Int

最大合并对数(大于0的正整数,,默认为1)

MaxLoop

Int

最大迭代次数(大于0的正整数,默认为5)

Dev

double

最大标准差(正数,默认为9.8)

MinDis

double

最小中心距离(正数,默认为6.4)

FuncName

String

功能名称

FileTypeCode

String

根据输出类型获得文件编码类型

.tif/.tiff——GTiff

.img—————HFA

其他—————ENVI

ListBands

IList<Int>

输入影像的波段(至少选择一个波段,{ 0, 1, 2, 3 })

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/10.算法调用/图像处理/ ImageProcessing. ISODataClassificationAlgo

数据路径

百度云盘地址下/PIE示例数据/栅格数据/01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/图像处理/ISODATA分类算法.avi

示例代码

          /// <summary>
///ISODATA分类算法测试,本算法实现了将GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff进行ISODATA分类
///预期类数为8,初始类数为5,最少像元数为5,最大合并对数为1,最大迭代次数为5,最大标准差为9.8,最小中心距离为6.4
/// </summary>
public override void OnClick()
{
#region 1、参数设置
PIE.CommonAlgo.ISODataClassification_Exchange_Info info = new PIE.CommonAlgo.ISODataClassification_Exchange_Info(); info.InputFilePath = @"D:\Data\GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff";
info.OutputFilePath = @"D:\Data\ip_result1.tif";
info.ProspClassNum = ;
info.InitClassNum = ;
info.MinSam = ;
info.MaxLoop=;
info.MaxMerge = ;
info.Dev = 9.8;
info.MinDis = 6.4;
info.LowBands = new List<int> { , , , }; info.FileTypeCode = "Gtiff"; PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ISODataClassificationAlgo");
if (algo == null) return;
#endregion //2、算法执行
PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "ISODATA分类";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo); //3、结果显示
ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result1.tif");
m_HookHelper.ActiveView.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

PIE SDK ISODATA分类的更多相关文章

  1. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  2. PIE SDK K-Means分类

    1.算法功能简介 K-Means 算法的基本思想是:以空间中 k 个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果. 算法首先随机从数据集中选 ...

  3. PIE SDK 精度分析(分类后处理)

    1.算法功能简介 遥感图像分类精度分析通常把分类图与标准数据进行比较,然后用正确分类的百分比来表示分类的精度. PIE SDK支持算法功能的执行,下面对精度分析算法功能进行介绍. 2.算法功能实现说明 ...

  4. PIE SDK分类合并

    1. 算法功能简介 分类合并功能是将分类文件中所设置的对应类别进行合并. PIE SDK支持算法功能的执行,下面对分类合并算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参 ...

  5. 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 ...

  6. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  7. PIE SDK分类统计

    1. 算法功能简介 分类统计功能是将分类后的结果统计输出. PIE SDK支持算法功能的执行,下面对分类统计算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参数设置 第二步 ...

  8. PIE SDK过滤

    1. 算法功能简介 过滤功能使用斑点分组方法来消除分类文件中被隔离的分类像元,用以解决分类图像中出现的孤岛问题. PIE SDK支持算法功能的执行,下面对过滤算法功能进行介绍. 2. 算法功能实现说明 ...

  9. PIE SDK聚类

    1.算法功能简介 聚类处理时运用形态学算子将临近的类似分类区域聚类并合并. PIE SDK支持算法功能的执行,下面对聚类算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设 ...

随机推荐

  1. oracle获取表和列的备注

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Runti ...

  2. 使用rpmbuild打包时不对文件进行strip操作

    使用rpmbuild打包时不对文件进行strip操作 摘自: https://www.ichenfu.com/2017/11/20/rpmbuild-not-strip/ By Chen Fu 发表于 ...

  3. 通过event事件来控制红绿灯通行车辆

    事件的初始值为False,所以最开始就是红灯,先模拟红绿灯的规律,设定为每两秒变换一次灯,然后再模拟车辆通行,通过事件来将两者的事件结合起来, 当事件为False时,为红灯,车辆处于等待状态,一直wa ...

  4. CSS 中的 px、em、rem 和 vh

    区分 px:Pixel.像素. em:相对长度单位.继承父级元素的 font-size,值是相对于父级元素font-size的倍数. rem:Root em.相对于根元素(即 <html> ...

  5. Quartus II 14.0正式版 下载链接和破解器

    Windows版本 必装组件: Quartus II http://download.altera.com/akdlm/software/acdsinst/14.0/200/ib_installers ...

  6. 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable

    建议46:显式释放资源需继承接口IDisposable C#中的每一个类型都代表一种资源,资源分为两类: 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源:不受CLR ...

  7. Entity Framework快速入门--直接修改(简要介绍ObjectContext处理机制)

    在介绍Entity Framework的修改实体到数据库的方法之前呢,我们先简要的介绍一下ObjectContext的处理机制. 1.ObjectContext的处理机制 ObjectContext是 ...

  8. 积分之谜——第六届蓝桥杯C语言B组(国赛)第一题

    原创 标题:积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单: 第一笔:3个A + 7个B + 1个C,共返积分:3 ...

  9. ComicEnhancerPro 系列教程十七:二值化图像去毛刺

    作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十七:二值化图像去毛 ...

  10. 表单使用clone方法后, 原有select无法生效

    textarea和select的值clone的时候会丢掉,在clone的时候将val再重新赋值一下,如果知道这个了就加单了   测试发现,textarea和select的jquery的clone方法有 ...