1.算法功能简介

   快速拼接是对若干幅互为邻接的遥感数字图像拼在一起,构成一幅整体影像的技术过程。PIE支持快速拼接算法功能的执行,下面对快速拼接算法功能进行介绍。

2.算法功能实现说明

2.1 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2 算法参数

算法名称

快速拼接

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.ImageMosaicParamAlgo

参数结构体

PIE.CommonAlgo.buildMosaicFileVec

参数说明

buildMosaicFileVec(生成镶嵌影像算法参数)

bmfVec

IList<buildMosaicFileInfo>

生成镶嵌结果所需参数

若IList<buildMosaicFileInfo>数量等于1 则为整幅输出镶嵌结果

若大于1 可设置分幅输出镶嵌结果

buildMosaicFileInfo

sOutFilePath

String

输出文件路径

EnvOut

IEnvelope

设置镶嵌结果输出范围

iOutBandType

Int

输出通道类型

0:3通道8位输出

1:原始数据格式

pSrcLyrs

IList<IRasterLayer>

输入影像

存放原始数据栅格图层,数量不能小于2

2.3 示例代码

数据路径

实验中的例子是将一整幅World.tif分割成两个影像来进行快速拼接实验的

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/图像预处理/快速拼接算法avi

示例代码

  /// <summary>
/// 快速拼接算法实现了波段相同的影像快速拼接在一起
/// </summary>
public override void OnClick()
{
//影像快速拼接
buildMosaicFileVec info = new buildMosaicFileVec();
List<buildMosaicFileInfo> bmfVec = new List<buildMosaicFileInfo>();
buildMosaicFileInfo item = new buildMosaicFileInfo();
//设置影像文件
IList<string> listFile = new List<string>();
string file1 = @"D:\data\图像mosaic拼接\world31.tif";
string file2 = @"D:\data\图像mosaic拼接\world33.tif";
listFile.Add(file1);
listFile.Add(file2);
int bandCount = ;
int count = ;
foreach (string file in listFile)
{
//判断拼接的图像的波段数是否一致
IRasterDataset tempDataset = DatasetFactory.OpenRasterDataset(file, OpenMode.ReadOnly);
if (tempDataset == null)
{
MessageBox.Show("打开数据集失败!" + file, "提示");
return;
}
if (count == )
{
bandCount = tempDataset.GetBandCount();
}
else
{
if (bandCount != tempDataset.GetBandCount())
{
MessageBox.Show("加入文件波段数不一致!", "提示");
(tempDataset as IDisposable).Dispose();
tempDataset = null;
return;
}
}
count++;
IRasterLayer rLayer = LayerFactory.CreateDefaultRasterLayer(tempDataset);
item.pSrcLyrs.Add(rLayer);
}
item.iOutBandType = ;
item.bFastMosaic = true;
item.sOutFilePath = @"D:\data\图像mosaic拼接\world_Mosia.tif";
bmfVec.Add(item);
info.bmfVec = bmfVec;
//创建算法
ISystemAlgo algo = SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImageMosaicParamAlgo");
if (algo == null) return;
algo.Params = info;
bool result = AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("算法执行成功");
ILayer layer = LayerFactory.CreateDefaultLayer(item.sOutFilePath);
if (layer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
else
{
MessageBox.Show("算法执行失败!");
}
}

2.4 示例截图

PIE SDK影像快速拼接的更多相关文章

  1. PIE SDK影像坏线修复

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

  2. PIE SDK影像格式转换

      1.算法功能简介 影像格式转换可以实现通用栅格数据格式之间的自由转换.可自由转换的格式包括: GeoTIFF. ERDAS img. ENVI img. PIE支持算法功能的执行,下面对影像格式转 ...

  3. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  4. PIE SDK常用滤波

    1. 算法功能简介 空间域滤波实在图像空间( x. y)对输入图像应用滤波函数(核.模板)来改进输出图像的处理方法,主要包括平滑和锐化处理,强调像素与其周围相邻像素的关系,常用的方法是卷积运算. 空间 ...

  5. 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 ...

  6. PIE SDK打开网络地图数据

    1. 数据介绍 网络地图数据是在线地图服务发布出来的数据,其支持数据的网络查看和传输,极大的促进了GIS的发展. 目前PIE SDK支持百度地图.谷歌地图.高德地图.天地图.Bing地图.ArcGIS ...

  7. PIE SDK栅格RGB渲染

    1. 功能简介 RGB色彩模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包 ...

  8. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

  9. PIE SDK ISODATA分类

    1.算法功能简介 ISODATA(IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm)即迭代式自组织数据分析技术, 其大致原理是首先计算数据空 ...

随机推荐

  1. js中对字符串(String)去除空格

    str为要去除空格的字符串: 去除所有空格: str = str.replace(/\s+/g,""); 去除两头空格: str = str.replace(/^\s+|\s+$/ ...

  2. Shel脚本-初步入门之《04》

    Shel脚本-初步入门-04 脚本语言的种类 4.脚本语言的种类 4.1 Shell 脚本语言的种类 Shell 脚本语言是弱类型语言(无须定义变量的类型即可使用),在 Unix/Linux 中主要有 ...

  3. Pyqt5开发一款小工具(翻译小助手)

    翻译小助手 开发需求 首先五月份的时候,正在学习爬虫的中级阶段,这时候肯定要接触到js逆向工程,于是上网找了一个项目来练练手,这时碰巧有如何进行对百度翻译的API破解思路,仿造网上的思路,我摸索着完成 ...

  4. node小爬虫

    这一章主利用node的http模块制作一个网页的小爬虫来爬去网页信息,其中对于后端html的节点的获取采用了cheerio模块,这 /** * Created by Administrator on ...

  5. 不知道多大的文件不要用cat查看!

    今天长清女子学校的主任给我微信上发了一图片,说登录服务器的时候就查看了一个文件,结果服务器的风扇忽然变的特别响,系统慢了好多,让我看看是什么回事!我当时心里想,无缘无故怎么会这样,难不成是进病毒了?查 ...

  6. 201871010126 王亚涛 《面向对象程序设计(java)》 第6-7周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. pikachu SQL-Injection

    1.数字型注入(POST) 可以看到,这个参数提交是POST类型的,用burp. 测试参数id id='&submit=%E6%9F%A5%E8%AF%A2 可以看到有报错回显,而且根据回显可 ...

  8. day37_8_21表的查询

    一.语法 表的查询一般使用select关键字,配合where筛选.顺序如下: # 先后顺序 from where select 二.where约束条件 首先先建立表: create table emp ...

  9. MySQL数据库 外键,级联, 修改表的操作

    1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...

  10. Hive学习之修改表、分区、列

    Hive学习之修改表.分区.列 https://blog.csdn.net/skywalker_only/article/details/30224309 https://www.cnblogs.co ...