PIE SDK纓帽變換

 

1.算法功能簡介

    纓帽變換是根據多光譜遙感中土壤、植被等信息在多維光譜空間中信息分佈結構對圖像作的經驗性線性正交變換。 PIE 支持對 Landsat MSS、 Landsat 5 TM、Landsat 7 ETM 數據進行變換。算法

    纓帽變換旋轉光譜的座標空間,旋轉後的座標軸不是指到主成分的方向,而是指到另外的方向,而這些方向與地物類型和變化有密切的關係,特別是與植物生長和土壤有關。纓帽變換既能夠實現信息壓縮,又能夠幫助解譯分析農做物特徵。這個變換主要用於陸地資源衛星數據,包括 MSS、 TM 和 ETM+傳感器的圖像。ide

    對於 TM 和 ETM+圖像, K-T 變換的前 3 個份量的實際物理意義:測試

    1) 亮度,第一份量,反映了整體的反射值。spa

    2) 綠度,第二份量,用亮度和綠度兩個份量組成的二維平面可叫作「植被」。code

    3) 溼度,第三份量,溼度和亮度兩個份量組成的一維平面可定義爲「土壤」。orm

    PIE SDK支持算法功能的執行,下面對纓帽變換算法功能進行介紹。視頻

2.算法功能實現說明

2.1. 實現步驟

第一步blog

算法參數設置教程

第二步ip

算法執行

第三步

結果顯示

2.2. 算法參數

算法名稱

纓帽變換

C#算法DLL

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo.TransformFuncAlgo

參數結構體

DataTrans_Exchange_Info

參數說明

AlgoType

Int

區分調用的是哪一個算法

0 主成分變換

1 最小噪聲變換

2 傅里葉變換

3 小波變換

4 纓帽變換

m_strInputFile

String

輸入文件

(*.tif;*.tiff;*.bmp;*.img;*.jpg;*.ldf)

m_strOutputFile

String

輸出文件

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

m_strFileTypeCode

String

輸出文件類型,默認GTiff

.tif/.tiff——GTiff

.img—————HFA

其餘—————ENVI

m_nType

Int

纓帽變換須要的衛星類型

LandSat5 TM

LandSat MSS

LandSat7 ETM

2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/10.算法調用/圖像處理/ ImageProcessing. TransformFuncAlgo

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/02.Landsat8/LC81240392013219LGN00_MultiSpectral.tif

視頻路徑

百度雲盤地址下/PIE視頻教程/10.算法調用/圖像處理/纓帽變換算法.avi

示例代碼

 1         /// <summary>
 2         /// 纓帽變換算法測試,本算法實現了將LC81240392013219LGN00_MultiSpectral.TIF進行纓帽變換
 3         /// </summary>
 4         public override void OnClick()
 5         {
 6             #region 一、參數設置
 7             PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
 8             info.m_strInputFile = @"D:\Data\LC81240392013219LGN00_MultiSpectral.TIF";
 9             //info.m_strInputFile = @"D:\Data\World.tif";
10             //info.m_strInputFile = @"D:\Data\ip_result10.tif";
11             info.m_strOutputFile = @"D:\Data\ip_result21.tif";      
12             info.AlgoType = 4; //纓帽變換         
13             info.m_strFileTypeCode = "GTiff";     
14             info.m_nType = 1;
15             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
16             if (algo == null) return;
17             #endregion
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_result21.tif");
26             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
27         }
View Code

2.4. 示例截圖

相關文章
相關標籤/搜索