zoukankan      html  css  js  c++  java
  • PIE SDK SFIM融合

     

    1.算法功能简介

        SFIM 融合方法全称为基于平滑滤波的亮度变换。基本原理是将高分辨率影像通过低通滤波抑制其高频空间信息保留低频信息,再将原高分辨率影像与通过低通滤波的高分辨率影像进行比值运算,以抵消光谱及地形反差,增强纹理结构信息,最后将比值运算结果融入低分辨率影像中。

        PIE支持算法功能的执行,下面对SFIM融合算法功能进行介绍。

    2.算法功能实现说明

    2.1.实现步骤

    第一步

    算法参数设置

    第二步

    算法执行

    第三步

    结果显示

    2.2.算法参数

    算法名称

    SFIM融合

    C#算法DLL

    PIE.CommonAlgo.dll

    C#算法名称

    PIE.CommonAlgo.CFusionAlgo

    参数结构体

    CFusion_Exchange_Info

    参数说明

    Type

    String

    融合类型

    0 SFIM融合

    1彩色标准化融合

    LowResFile

    IList<String>

    输入的多光谱数据波段名称集合

    LowBands

    IList<int>

    多光谱数据波段集合{0,1,2,3}

    OutputFilePath

    String

    输出文件

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

    FileTypeCode

    String

    文件类型编码

    .tif/.tiff——GTiff

    .img—————HFA

    其他—————ENVI

    HighResNullValue

    Int

    融合所选择的高分辨率数据波段(0)

    ResampleMode

    Int

    重采样类型

    (最近邻点插值0/双线性插值1/三次卷积法插值2)

    lMaxCache

    Int

    最大缓存(16)

    FuncName

    String

    功能名称

    BMultiThread

    Bool

    是否多线程(true) TRUE 是; FALSE 否

    2.3.示例代码

    项目路径

    百度云盘地址下/PIE示例程序/ 10.算法调用/图像预处理/ PIE.ImagePreprocessing. CFusionAlgo

    数据路径

    百度云盘地址下/PIE示例数据/ 栅格数据/01.GF1/MS.tif

    PAN.tif

    视频路径

    百度云盘地址下/PIE视频教程/ 10.算法调用/图像预处理/ SFIM融合算法avi

    示例代码

     1 /// <summary>
     2 ///SFIM融合算法测试,本算法实现了将MS.tif和PAN.tif进行SFIM融合
     3 /// </summary>
     4 public override void OnClick()
     5 {
     6 #region 1、参数设置
     7 PIE.CommonAlgo.CFusion_Exchange_Info info = new PIE.CommonAlgo.CFusion_Exchange_Info();
     8 
     9 //info.Type = 1; //彩色标准化融合
    10 info.Type = 0; //SFIM融合
    11 string path1 = @"D:DataMS.tif";
    12 string path2 = @"D:DataPAN.tif";
    13 info.LowResFile = new List<String> { path1,path1,path1,path2 };
    14 info.LowBands = new List<int> { 0, 1, 2,0 };
    15 info.OutputFilePath = @"D:Data
    esult7.tif";
    16 info.FileTypeCode = "Gtiff";
    17 info.ResampleMode = 0;
    18 info.HighResNullValue = 0;
    19 info.lMaxCache = 16;
    20 info.BMultiThread = true;
    21 
    22 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.CFusionAlgo");
    23 if (algo == null) return;
    24 #endregion
    25 
    26 //2、算法执行
    27 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
    28 algo.Name = "SFIM融合";
    29 algo.Params = info;
    30 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnExecuteCompleted +=CFusionAlgo_OnExecuteCompleted;
    31 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnProgressChanged += CFusionAlgo_OnProgressChanged;
    32 
    33 PIE.AxControls.IStatusBar statusBar = m_Application.StatusBar;
    34 statusBar.ShowProgress(0, 100, "");
    35 
    36 PIE.SystemAlgo.AlgoFactory.Instance().AsynExecuteAlgo(algo);
    37 }
    38 int CFusionAlgo_OnProgressChanged(double complete, string msg, SystemAlgo.ISystemAlgo algo)
    39 {
    40 PIE.AxControls.IStatusBar statusBar = m_Application.StatusBar;
    41 statusBar.UpdateProgress((int)complete, msg);
    42 return 0;
    43 }
    44 
    45 void CFusionAlgo_OnExecuteCompleted(SystemAlgo.ISystemAlgo algo)
    46 {
    47 PIE.AxControls.IStatusBar statusBar = m_Application.StatusBar;
    48 statusBar.UpdateProgress(100, "");
    49 statusBar.HideProgress();
    50 //3、结果显示
    51 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:Data
    esult7.tif");
    52 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
    53 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    54 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    55 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnExecuteCompleted -= CFusionAlgo_OnExecuteCompleted;
    56 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnProgressChanged -= CFusionAlgo_OnProgressChanged;
    57 }
    View Code

    2.4.示例截图

     

  • 相关阅读:
    FFTW3学习笔记2:FFTW(快速傅里叶变换)中文参考
    小程序中用rich-text来实现ul功能 (代码)
    微信小程序中如何实现列表渲染多层嵌套循环
    小程序中实现选择预览图片同时可以实现长按删除图片的代码
    微信小程序实例:获取当前城市位置及再次授权地理位置的代码实现
    微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码)
    入门微信小程序直播
    微信小程序之登录态
    微信小程序之本地缓存
    微信小程序之页面路由
  • 原文地址:https://www.cnblogs.com/PIESat/p/10190315.html
Copyright © 2011-2022 走看看