PIE SDK小波變換

 

1.算法功能簡介

    小波變換是一種信號的時間——尺度分析方法,具備多分辨率分析的特色,並且在時頻兩域都具備表徵信號局部特徵的能力,是一種窗口大小固定不變但其形狀可變,時間窗和頻率窗均可變的時頻局部化分析方法。即在低頻部分具備較高的頻率分辨率和時間分辨率,在高頻部分具備較高的時間分辨率和較低的頻率分辨率,很適合探測正常信號中夾帶的瞬態反常現象並展現其成分,被譽爲分析信號的顯微鏡。算法

    PIE SDK支持算法功能的執行,下面對小波變換算法功能進行介紹。ide

2.算法功能實現說明

2.1. 實現步驟

第一步測試

算法參數設置spa

第二步code

算法執行orm

第三步視頻

結果顯示blog

2.2. 算法參數教程

算法名稱ip

小波正變換

C#算法DLL

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo.TransformFuncAlgo

參數結構體

DataTrans_Exchange_Info

參數說明

AlgoType

Int

區分調用的是哪一個算法

0 主成分變換

1 最小噪聲變換

2 傅里葉變換

3 小波變換

4 纓帽變換

bForward

Bool

區分正變換仍是逆變換

 true 正;false 逆

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

2.3. 示例代碼

項目路徑

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

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/04.World/World.tif

視頻路徑

百度雲盤地址下/PIE視頻教程/10.算法調用/圖像處理/小波變換算法a.vi

示例代碼

 1 //(一)小波正變換
 2 /// <summary>
 3 /// 小波正變換算法測試,本算法實現了將World.tif進行小波正變換
 4 /// </summary>
 5 public override void OnClick()
 6 {
 7 #region 一、參數設置
 8 PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
 9 info.m_strInputFile = @"D:\Data\World.tif";
10 info.m_strOutputFile = @"D:\Data\ip_result9.tif";
11 info.AlgoType = 3; //小波變換
12 info.bForward = true; //正變換
13 info.m_strFileTypeCode = "GTiff";
14  
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 //二、算法執行
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 int code = -1;
26 string msg = string.Empty;
27 algo.GetErrorInfo(ref code, ref msg);
28 
29 //三、結果顯示
30 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result9.tif");
31 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
32 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
33 
34 }
35 //(二)小波逆變換
36 /// <summary>
37 ///小波逆變換算法測試,本算法實現了將ip_result8.tif進行小波逆變換
38 /// </summary>
39 public override void OnClick()
40 {
41 #region 一、參數設置
42 PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
43 
44 info.m_strInputFile = @"D:\Data\waveletTransform.tif";
45 info.m_strOutputFile = @"D:\Data\ip_result9.tif";
46 info.AlgoType = 3; //小波變換
47 info.bForward = false; //逆變換
48 info.m_strFileTypeCode = "GTiff";
49 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
50 if (algo == null) return;
51 #endregion
52 
53 //二、算法執行
54 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
55 algo.Name = "小波逆變換";
56 algo.Params = info;
57 bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
58 
59 int code = -1;
60 string msg = string.Empty;
61 algo.GetErrorInfo(ref code, ref msg);
62 
63 //三、結果顯示
64 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result9.tif");
65 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
66 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
67 }
View Code

2.4.示例截圖

 

小波正變換

小波逆變換

相關文章
相關標籤/搜索