• PIE SDK分类合并


    1. 算法功能简介

        分类合并功能是将分类文件中所设置的对应类别进行合并。

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

       例如:现将一份影像分类后的数据如图一经过分类合并功能对图一已分类的类别进行重新整合成三类(Unclassified,water,veg),然后得到图二结果图(分类合并的结果不太科学只是希望能更好的给大家演示分类合并的思路)

    图一 分类图

    图二:分类合并图

    2. 算法功能实现说明

    2.1. 实现步骤

    第一步

    算法参数设置

    第二步

    算法执行

    第三步

    结果显示

    2.2. 算法参数

    算法名称

    分类合并

    C#算法DLL

    PIE.CommonAlgo.dll

    C#算法名称

    PIE.CommonAlgo.ImgClassCombineAlgo

    参数结构体

    StClassPostComb

    参数说明

    InputFileName

    String

    输入分类文件

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

    OutputFilePath

    String

    输出分类合并文件路径

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

    ClassCount

    Int

    分类合并类别数目(正整数)

    MatchInput

    IList<String>

    输入匹配数组

    MatchOutput

    IList<String>

    输出匹配数组

    FuncName

    String

    功能名称

    CompareIndex

     IList<int>

    记录发生变化的分类序号,默认值-1

    2.3. 示例代码

    项目路径

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

    数据路径

    百度云盘地址下/PIE示例数据/栅格数据/01.GF1/ISODataClassification.tif

    视频路径

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

    示例代码

     1 /// <summary>
     2 /// 分类合并算法测试,本算法实现了将ip_result1.tif进行分类合并,"Unclassified", "class1", "class2","class3", "class4", "class5"合并为"class1"
     3 /// "class6", "class7", "class8"合并为"class3"
     4 /// </summary>
     5 public override void OnClick()
     6 {
     7 #region 1、参数设置
     8 PIE.CommonAlgo.StClassPostComb info = new PIE.CommonAlgo.StClassPostComb();
     9 
    10 info.InputFileName = @"D:DataISODataClassification.tif";
    11 info.OutputFileName = @"D:Dataip_result6.tif";
    12 info.ClassCount =9; //分类合并前的类别
    13 info.CompareIndex = new List<int> { 1, 1, 1,1, 1, 1, 3, 3, 3 }; //合并前的类别分别设置合并后对应的类的索引
    14 
    15 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImgClassCombineAlgo");
    16 if (algo == null) return;
    17 #endregion
    18 
    19 //2、算法执行
    20 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
    21 algo.Name = " 分类合并";
    22 algo.Params = info;
    23 bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
    24 
    25 //3、结果显示
    26 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:Dataip_result6.tif");
    27 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
    28 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    29 }
    View Code

    2.4. 示例截图

  • 相关阅读:
    vue绑定值与字符串拼接两种写法
    cmd 总是很卡,执行一条指令就卡死
    生产工具vscode
    js 关于 array 的相关操作––
    webAssembly
    github上fork别人的分支到目录下  
    68.Promise和setTimeout的区别
    67、Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?
    66、深入理解 promise:promise的三种状态与链式调用
    65.ES6新的特性有哪些?
  • 原文地址:https://www.cnblogs.com/PIESat/p/10214161.html
Copyright © 2020-2023  润新知