PIE SDK分類合併

 

1. 算法功能簡介

    分類合併功能是將分類文件中所設置的對應類別進行合併。算法

    PIE SDK支持算法功能的執行,下面對分類合併算法功能進行介紹。數組

   例如:現將一份影像分類後的數據如圖一通過分類合併功能對圖一已分類的類別進行從新整合成三類(Unclassified,water,veg),而後獲得圖二結果圖(分類合併的結果不太科學只是但願能更好的給你們演示分類合併的思路)ide

圖一 分類圖測試

圖二:分類合併圖spa

2. 算法功能實現說明

2.1. 實現步驟code

第一步視頻

算法參數設置blog

第二步教程

算法執行索引

第三步

結果顯示

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 一、參數設置
 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 //二、算法執行
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 //三、結果顯示
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. 示例截圖

相關文章
相關標籤/搜索