PIE SDK小波变换

1.算法功能简介

    小波变换是一种信号的时间——尺度分析方法,具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变,时间窗和频率窗都可变的时频局部化分析方法。即在低频部分具有较高的频率分辨率和时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,被誉为分析信号的显微镜。

    PIE SDK支持算法功能的执行,下面对小波变换算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

算法名称

小波正变换

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示例数据/栅格数据/World/World.tif

waveletTransform.tif

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/图像处理/小波变换算法avi

示例代码

 1 //(一)小波正变换
 2 /// <summary>
 3 /// 小波正变换算法测试,本算法实现了将World.tif进行小波正变换
 4 /// </summary>
 5 public override void OnClick()
 6 {
 7 #region 1、参数设置
 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 //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 int code = -1;
26 string msg = string.Empty;
27 algo.GetErrorInfo(ref code, ref msg);
28 
29 //3、结果显示
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 1、参数设置
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 //2、算法执行
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 //3、结果显示
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.示例截图

 

小波正变换

小波逆变换

猜你喜欢

转载自www.cnblogs.com/PIESat/p/10215811.html
pie