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. mac 修改 vim 配色

    1. 看看系统有哪些自带配色方案 ls /usr/share/vim/vim73/colors README.txt darkblue.vim delek.vim elflord.vim koehle ...

  2. 20180706模拟赛T3——神经衰弱

    文件名: card 题目类型: 传统题 时间限制: 1秒 内存限制: 128MB 编译优化: 无 题目描述 天然少女小雪非常喜欢玩一个叫做神经衰弱的游戏. 游戏规则是,有若干种牌,每种牌有若干对,开始 ...

  3. nginx发布静态资源

    nginx发布静态资源 参考 ngx_http_index_module index指令 ngx_http_core_module http指令 location指令 listen指令 root指令 ...

  4. 【入门篇一】SpringBoot简介(1)

    官网:https://spring.io/projects/spring-boot 一.什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新S ...

  5. arm指令集图片

  6. LeetCode 153. Find Minimum in Rotated Sorted Array寻找旋转排序数组中的最小值 (C++)

    题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...

  7. 0x01 Wechall writeup

    目录 0x01 Wechall writeup Limited Access Training: Crypto - Caesar II Impossible n'est pas français Tr ...

  8. 【day06】css

    一.背景(Background) 1. background-color 背景颜色 2. background-image:url(图像URL);背景图片 3. background-repeat: ...

  9. MySQL实战45讲学习笔记:第十三讲

    一.引子 经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? 那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题. 这里,我们还是针对 ...

  10. [LeetCode] 380. Insert Delete GetRandom O(1) 常数时间内插入删除和获得随机数

    Design a data structure that supports all following operations in average O(1) time. insert(val): In ...