zoukankan      html  css  js  c++  java
  • 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示例数据/栅格数据/04.World/World.tif

    视频路径

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

    示例代码

     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:DataWorld.tif";
    10 info.m_strOutputFile = @"D:Dataip_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:Dataip_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:DatawaveletTransform.tif";
    45 info.m_strOutputFile = @"D:Dataip_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:Dataip_result9.tif");
    65 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
    66 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    67 }
    View Code

    2.4.示例截图

     

    小波正变换

    小波逆变换

  • 相关阅读:
    rust中的arm交叉编译
    Dockerfile简单编写
    docker常用命令
    linux下tf/u盘格式化
    rust查看支持的架构列表
    linux内核版本修改
    cgo引用外部c文件注意1
    redis服务允许外部ip访问开启
    redis密码修改
    setInterval和setTimeout的使用区别
  • 原文地址:https://www.cnblogs.com/PIESat/p/10215811.html
Copyright © 2011-2022 走看看