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

vecBands

IList<Int>

选择的波段列表

2.3. 示例代码

项目路径

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

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/ World.tif

视频路径

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

示例代码

          //(一)傅里叶正变换
/// <summary>
///傅里叶正变换算法测试,本算法实现了将World.tif进行傅里叶正变换
/// </summary>
public override void OnClick()
{
#region 1、参数设置
PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
info.m_strInputFile = @"D:\Data\World.tif";
info.m_strOutputFile = @"D:\Data\ip_result11.tif";
info.AlgoType = ; //傅里叶变换
info.bForward = true; //正变换
info.m_strFileTypeCode = "GTiff";
info.vecBands = new List<int> { ,,};
PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
if (algo == null) return;
#endregion //2、算法执行
PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "傅里叶正变换";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
int code = -;
string msg = string.Empty;
algo.GetErrorInfo(ref code, ref msg); //3、结果显示
ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result11.tif");
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
//(一)傅里叶逆变换
/// <summary>
///傅里叶逆变换算法测试,本算法实现了将World.tif进行傅里叶逆变换
/// </summary>
public override void OnClick()
{
#region 1、参数设置
PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
info.m_strInputFile = @"D:\Data\World.tif";
info.m_strOutputFile = @"D:\Data\ip_result11.tif";
info.AlgoType = ; //傅里叶变换
info.bForward = false; //逆变换
info.m_strFileTypeCode = "GTiff";
info.vecBands = new List<int> { ,,};
PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
if (algo == null) return;
#endregion
//2、算法执行
PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "傅里叶逆变换";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
int code = -;
string msg = string.Empty;
algo.GetErrorInfo(ref code, ref msg);
//3、结果显示
ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result11.tif");
m_HookHelper.ActiveView.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

傅里叶正变换(波段一)

傅里叶逆变换

PIE SDK傅里叶变换的更多相关文章

  1. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  2. PIE SDK频率域滤波

    1.算法功能简介 频率域滤波的基本工作流程为:空间域图像的傅里叶变换→频率域图像→设计滤波器→傅里叶逆变换→其他应用. 低通滤波,对频率域的图像通过滤波器削弱或抑制高频部分而保留低频部分的滤波方法,可 ...

  3. PIE SDK缨帽变换

    1.算法功能简介 缨帽变换是根据多光谱遥感中土壤.植被等信息在多维光谱空间中信息分布结构对图像做的经验性线性正交变换. PIE 支持对 Landsat MSS. Landsat 5 TM.Landsa ...

  4. PIE SDK最小噪声变换

    1.算法功能简介 最小噪声分离变换是用于判定图像数据内在的维数(即波段数),分离数据中的噪声,减少随后处理中的计算需求量. MNF 本质上是两次层叠的主成分变换.第一次变换(基于估计的噪声协方差矩阵) ...

  5. PIE SDK小波变换

    1.算法功能简介 小波变换是一种信号的时间——尺度分析方法,具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变,时间窗和频率窗都可变的时频局部化分析 ...

  6. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  7. PIE SDK与OpenCV结合说明文档

    1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 ...

  8. PIE SDK影像坏线修复

    1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...

  9. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

随机推荐

  1. hdu 1905 Pseudoprime numbers

    #include<stdio.h> #include<math.h> #define ll long long ll mod; bool Judge(int x) { ;i&l ...

  2. Mybaties原理图

  3. Unity3D面试题整合

    第一部分 1. 请简述值类型与引用类型的区别答:区别:1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址.2.值类型存取快,引用类型存取慢.3.值类型表示实际数据 ...

  4. Nginx禁止直接通过IP地址访问网站

    介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机 ...

  5. 关于hibernate的查询

    为什么建议hibernate查询全部字段 一般而言,要查询什么字段就查询什么字段,不要select * from表,但是在hibernate,我们其实可以不遵循这个规则,建议我们把所有属性都查询出来( ...

  6. 阿里 vs. 腾讯,谁的收购更有眼光?

    近年来我们国内企业高速发展,各大集团纷纷收购其他公司发展自己,在这么多的集团收购里面尤其以阿里巴巴和腾讯的收购引人注目.在2014年里阿里巴巴先后投资了中信,美国奢侈品电子商务lstdibs,高德,优 ...

  7. CentOS 用户/组与权限

    useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户a ...

  8. IO模型《一》IO模型介绍

    IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞 ...

  9. utp

    接口测试大致分为两种:数据驱动和代码驱动 数据驱动:主要处理用例之间没有关联关系的用例集合,一般以(excel.yaml)文件形式存储用例 代码驱动:主要是处理用例之间存在关联关系的用例(如:抽奖,需 ...

  10. 【智能算法】超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 文章声明 此文章部分资料和代码整合自网上,来源太多已经无法查明出处,如侵犯您的权利,请联系我删除. 00 目录 遗传算法定义 生 ...