過濾功能使用斑點分組方法來消除分類文件中被隔離的分類像元,用以解決分類圖像中出現的孤島問題。算法
PIE SDK支持算法功能的執行,下面對過濾算法功能進行介紹。ide
2.1. 實現步驟測試
第一步spa |
算法參數設置3d |
第二步code |
算法執行視頻 |
第三步blog |
結果顯示教程 |
2.2. 算法參數ip
算法名稱 |
過濾 |
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
C#算法名稱 |
PIE.CommonAlgo.ImgClassPostSieveAlgo |
|
參數結構體 |
StClassPostclump |
|
參數說明 |
||
inputfile |
String |
輸入分類後的影像路徑 *.tif;*.tiff;*.img |
outputfile |
String |
輸出影像路徑 |
classindex |
IList<Int> |
選擇的分類列表 |
kernel |
IList<Int> |
本算法中該參數一共須要兩個變量 第一個值表示聚類鄰域大小值爲4或8;表示參與分析的周圍像元大小 第二個值表示過濾閾值 (值大於1)一組中小於該值的像元將被刪除 |
項目路徑 |
百度雲盤地址下/PIE示例程序/10.算法調用/圖像處理/ ImageProcessing. ImgClassPostSieveAlgo |
數據路徑 |
百度雲盤地址下/PIE示例數據/柵格數據/01.GF1/ISODataClassification.tif |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/10.算法調用/圖像處理/過濾算法avi |
示例代碼 |
|
1 /// <summary> 2 /// 過濾算法測試,本算法實現了將ip_result1.tif進行過濾,選擇的分類列表爲所有分類,聚類鄰域爲4,過濾閾值爲2 3 /// </summary> 4 public override void OnClick() 5 { 6 #region 一、參數設置 7 PIE.CommonAlgo.StClassPostclump info = new PIE.CommonAlgo.StClassPostclump(); 8 9 info.inputfile = @"D:\Data\ISODataClassification.tif"; 10 info.outputfile = @"D:\Data\ip_result4.tif"; 11 info.classindex = new List<int> { 0, 1, 2, 3,4,5,6,7,8 }; 12 info.kernel = new List<int> { 4, 2 }; 13 14 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImgClassPostSieveAlgo"); 15 if (algo == null) return; 16 #endregion 17 18 //二、算法執行 19 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents; 20 algo.Name = " 過濾"; 21 algo.Params = info; 22 bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo); 23 24 //三、結果顯示 25 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result4.tif"); 26 m_HookHelper.ActiveView.FocusMap.AddLayer(layer); 27 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 28 } |