博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK彩色标准化融合
阅读量:5747 次
发布时间:2019-06-18

本文共 3443 字,大约阅读时间需要 11 分钟。

 

1.算法功能简介

    色彩标准化融合对彩色图像和高分辨率图像进行数学合成,从而使图像得到锐化。色彩归一化变换也被称为能量分离变换( Energy Subdivision Transform),它使用来自融合图像的高空间分辨率波段对输入图像的低空间分辨率波段进行增强。该方法仅对包含在融合图像波段的波谱范围内对应的输入波段进行融合,其他输入波段被直接输出而不进行融合处理。融合图像波段的波谱范围由波段中心波长和 FWHM( full width-half maximum)值限定。

   PIE支持算法功能的执行,下面对彩色标准化融合算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

算法名称

彩色标准化融合

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.CFusionAlgo

参数结构体

CFusion_Exchange_Info

参数说明

Type

Int

融合类型

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

ResampleMode

Int

重采样类型

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

HighResNullValue

Int

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

lMaxCache

Int

最大缓存(默认16)

FuncName

String

功能名称

BMultiThread

Bool

是否多线程(默认true)

TRUE 是; FALSE 否

2.3. 示例代码

 

项目路径

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

数据路径

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

视频路径

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

示例代码

1 ///  2 ///彩色标准化融合算法测试,本算法实现了将MS.tif和PAN.tif进行彩色标准化融合 3 ///  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:\Data\MS.tif";12 string path2 = @"D:\Data\PAN.tif";13 info.LowResFile = new List
{ path1,path1,path1,path2 };14 info.LowBands = new List
{ 0, 1, 2,0 };15 info.OutputFilePath = @"D:\Data\result6.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 #endregion25 26 //2、算法执行27 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;28 algo.Name = "彩色标准化融合";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 39 int CFusionAlgo_OnProgressChanged(double complete, string msg, SystemAlgo.ISystemAlgo algo)40 {41 PIE.AxControls.IStatusBar statusBar = m_Application.StatusBar;42 statusBar.UpdateProgress((int)complete, msg);43 return 0;44 }45 46 void CFusionAlgo_OnExecuteCompleted(SystemAlgo.ISystemAlgo algo)47 {48 PIE.AxControls.IStatusBar statusBar = m_Application.StatusBar;49 statusBar.UpdateProgress(100, "");50 statusBar.HideProgress();51 52 //3、结果显示53 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\result6.tif");54 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);55 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);56 57 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);58 59 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnExecuteCompleted -= CFusionAlgo_OnExecuteCompleted;60 (algo as PIE.SystemAlgo.ISystemAlgoEvents).OnProgressChanged -= CFusionAlgo_OnProgressChanged;61 }
View Code

2.4. 示例截图

 

转载于:https://www.cnblogs.com/PIESat/p/10190434.html

你可能感兴趣的文章
解决ScrollView中嵌套 listView只显示1行的问题
查看>>
centos7配置iptables
查看>>
jQuery剥皮三- data、proxy、event
查看>>
MonGo---安装及其基本操作
查看>>
Nagios 监控实例部署
查看>>
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
查看>>
Microsoft System Center 2012部署(二)
查看>>
<转>CentOS / Redhat: Install KVM Virtualization ...
查看>>
原生android VS 定制android(一)
查看>>
修改Linux系统下的最大文件描述符限制
查看>>
CakePHP 2.x CookBook 中文版 第一章 欢迎
查看>>
Druid 在小米公司部分技术实践
查看>>
LNMP - 常见的502错误
查看>>
配置DNS服务器
查看>>
server2008R2WSUS部署 先决条件
查看>>
Lotus Notes压缩数据库的方法
查看>>
修复Bug好比钓鱼
查看>>
php过滤所有英文中文的标点符号代码
查看>>
ssh+chroot -- 给ssh上把锁
查看>>
C语言通过串口发送AT指令
查看>>