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. 2-3 arrary数组的数值的计算

    In [2]: import numpy as np tang_array=np.array([[1,2,3],[4,5,6]]) tang_array Out[2]: array([[1, 2, 3 ...

  2. 【面试题】java基础(一)

    面试准备的时候遇到很多问题,在网上找的答案都是说的一大堆,这里总结归纳一下,方便之后查看. 1.谈谈final.finally.finalize的区别. final     :  修饰类,则该类不能被 ...

  3. $attrs/inheritAttrs可以实现组件的跨级传递

    $attrs/inheritAttrs可以实现组件的跨级传递  // 问题1  为什么this.$attrs可以得到主  传递过来的值         //$attrs 说明          //  ...

  4. 1.编译chromium

    1. 前言 做了两年Chromium相关的开发,最近项目遇到瓶颈,自己有点迷茫.回顾之前做的工作,发现对chromium的认识还停留在非常表面的水平.因此,一直想对之前做的做个总结,只有总结反思才能提 ...

  5. 解析YAML文件

    YamlMapFactoryBean yamlMapFactoryBean = new YamlMapFactoryBean(); yamlMapFactoryBean.setResources(ne ...

  6. 201871010109-胡欢欢《面向对象程序设计(java)》第6-7周学习总结

    实验六 继承定义与使用 实验时间 2019-9-29 第一部分:理论部分. 1.继承:已有类来构建新类的一种机制.档定义了一个新类继承另一个类时,这个新类就继承了这个类的方法和域,同时在新类中添加新的 ...

  7. mac os下切换pip3国内源并安装requests库

    在使用Python的时候,经常会用到pip来安装模块,但是默认的下载源实在是特别慢,经常install的时候还会因为速度的原因直接报错,因此我们可以选择将下载源更改为国内的,这样就可以提高我们的下载速 ...

  8. Spring Boot应用启动器

    SpringBoot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring-b ...

  9. Tkinter 鼠标键盘事件(一)

    一: 鼠标事件 <Button-1>                                                                     鼠标左键单击 ...

  10. Excel-图表制作

    柱形图:通常使用柱形图比较数据间的数量关系 折线图:使用折线图来反映数据间的趋势关系 饼图:使用饼图来表示数据间的分配关系  对图表进行刷选 再图表设计下的快速布局可以选择各种样式 迷你图  对某列单 ...