博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK影像快速拼接
阅读量:5968 次
发布时间:2019-06-19

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

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

示例代码

1  ///  2  /// 快速拼接算法实现了波段相同的影像快速拼接在一起 3 ///  4 public override void OnClick() 5  { 6     //影像快速拼接 7     buildMosaicFileVec info = new buildMosaicFileVec(); 8     List
bmfVec = new List
(); 9 buildMosaicFileInfo item = new buildMosaicFileInfo();10 //设置影像文件11 IList
listFile = new List
();12 string file1 = @"D:\data\图像mosaic拼接\world31.tif";13 string file2 = @"D:\data\图像mosaic拼接\world33.tif";14 listFile.Add(file1);15 listFile.Add(file2);16 int bandCount = 0;17 int count = 0;18 foreach (string file in listFile)19 {20 //判断拼接的图像的波段数是否一致21 IRasterDataset tempDataset = DatasetFactory.OpenRasterDataset(file, OpenMode.ReadOnly);22 if (tempDataset == null)23 {24 MessageBox.Show("打开数据集失败!" + file, "提示");25 return;26 }27 if (count == 0)28 {29 bandCount = tempDataset.GetBandCount();30 }31 else32 {33 if (bandCount != tempDataset.GetBandCount())34 {35 MessageBox.Show("加入文件波段数不一致!", "提示");36 (tempDataset as IDisposable).Dispose();37 tempDataset = null;38 return;39 }40 }41 count++;42 IRasterLayer rLayer = LayerFactory.CreateDefaultRasterLayer(tempDataset);43 item.pSrcLyrs.Add(rLayer);44 }45 item.iOutBandType = 0;46 item.bFastMosaic = true;47 item.sOutFilePath = @"D:\data\图像mosaic拼接\world_Mosia.tif";48 bmfVec.Add(item);49 info.bmfVec = bmfVec;50 //创建算法51 ISystemAlgo algo = SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImageMosaicParamAlgo");52 if (algo == null) return;53 algo.Params = info;54 bool result = AlgoFactory.Instance().ExecuteAlgo(algo);55 if (result)56 {57 MessageBox.Show("算法执行成功");58 ILayer layer = LayerFactory.CreateDefaultLayer(item.sOutFilePath);59 if (layer == null) return; 60 m_HookHelper.ActiveView.FocusMap.AddLayer(layer);61 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);62 }63 else64 {65 MessageBox.Show("算法执行失败!");66 }67 }
View Code

2.4 示例截图

 

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

你可能感兴趣的文章
用Kotlin开发android平台语音识别语义理解应用
查看>>
Linux下添加DB2用户
查看>>
大中型网站集群架构企业级高标准全自动实战项目征集
查看>>
RedHat/CentOS系统信息查看命令大全
查看>>
教你如何搭建虚拟专用网连接 OPEN***
查看>>
在RHEL5.0中用YUM解决RPM包的依赖关系
查看>>
网页开发——从接触到编写输出一个DIV
查看>>
Linux常用命令
查看>>
CentOS5.6配置salt节点minion
查看>>
我在定制office 2007时遇到的问题
查看>>
手工注入命令集
查看>>
MySQL数据库备份及二进制文件恢复
查看>>
Apache用户认证、域名跳转、Apache访问日志
查看>>
windows10安装Oracle提示错误-INS-13001环境不满足最低要求
查看>>
【AR】Vuforia之unity3d 开发环境搭建
查看>>
jenkins产生503错误的解决方法
查看>>
我的友情链接
查看>>
屌丝逆袭高富帅之JAVA之路
查看>>
thinkphp3.2 验证码生成和点击刷新验证码
查看>>
第七章 配置文件与网站部署
查看>>