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:\Data\ISODataClassification.tif";
11 info.OutputFileName = @"D:\Data\ip_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:\Data\ip_result6.tif");
27 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
28 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
29 }
View Code

2.4. 示例截图

 

posted @ 2019-01-03 14:49  PIESAT  阅读(891)  评论(0编辑  收藏  举报