1.算法功能简介

  栅格数据矢量化较为复杂,如果由一幅扫描的数字化地图来建立矢量数据库,则需要经过数字图象处理,如边缘增强、细化、二值化、特征提取及模式识别才能获得矢量数据.人们通常将多色地图分色后逐个元素(如等高线地貌、水系、道路网、地物、符号与注记等)加以识别和提取.如果将数字影像矢量化,则需要事先做好重采样、图象处理、影像匹配和影像理解等过程,才能将影像上的语义和非语义信息提取出来,并形成矢量形式的数据

  PIE支持栅格矢量化算法功能的执行,下面对该算法功能进行介绍。

2.算法功能实现说明

2.1 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2 算法参数

算法名称

栅格矢量化

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.RasterToVectorAlgo

参数结构体

RasterVectorization_Exchange_Info

参数说明

pchrasterIndexImgPath

String

索引图路径、即输入的影像路径

indexList

IList<Int>

类别列表

pixList

IList<Int>

类别对应像素列表

indexNameList

IList<String>

类别名称列表

savingPathList

IList<String>

保存路径列表

vpixTable

IList<Int>

像素值索引表,通常默认为0 参数可以不设置

isSaveAsOneFile

bool

是否保存单个文件标志

isCountPolygonInfo

bool

是否计算面信息

isNoGeoTransform

bool

是否进行地理坐标转化

m_strOutFile

String

输出矢量数据

 

2.3 示例代码

数据路径

百度云盘地址下/ PIE示例数据/栅格数据/ 08.图像分类/distanceClassify-Julei.tif

示例代码

 /// <summary>
/// 栅格矢量化 对分类后的影像distanceClassify-Julei.tif进行矢量化,该类共有5类;
/// </summary>
public void RasterToVector()
{
RasterVectorization_Exchange_Info info = new RasterVectorization_Exchange_Info();
info.indexList = new List<int> {,,,,};//类别列表
info.indexNameList = new List<string> {"Unclassified","water","veg","bare","town" };//类别名称列表
info.isCountPolygonInfo = false;
info.isSaveAsOneFile = true;//是否保存单个文件 fasle 保存多个文件
info.pchrasterIndexImgPath = @"D:\data\图像分类2\distanceClassify-Julei.tif";//输入的栅格路径
info.pixList = new List<int> { , , , , };//类别对应像素列表 和类别列表对应
info.savingPathList = new List<string> {@"D:\data\图像分类2\distanceClassify-Julei_Re.shp" };//保存路径列表:若保存单个文件,一个输出路径即可,若输出多个文件,输出路径即为每一类生成文件路径
//info.vpixTable = new List<int>(); ;//像素值索引表, 可以设置这个参数,默认是0 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.RasterToVectorAlgo");
if (algo == null) return; PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "栅格矢量化";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("栅格矢量化算法执行成功");
IList<ILayer> listLayer = LayerFactory.CreateDefaultLayers(info.savingPathList);
if (listLayer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayers(listLayer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}

2.4 示例截图

图1:算法执行结果图

图2:将图1进行唯一值渲染

PIE SDK栅格矢量化算法的更多相关文章

  1. PIE SDK栅格数据集的读写

    1. 功能简介 栅格数据包含很多信息,在数据的运用中需要对数据的信息进行读取或写入,目前PIE SDK支持多种数据格式的数据读取和写入,下面对栅格数据格式的数据读写功能进行介绍. 2. 功能实现说明 ...

  2. PIE SDK栅格RGB渲染

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

  3. PIE SDK栅格增强控制

    1. 功能简介 亮度是指发光体(反光体)表面发光(反光)强弱的物理量:对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量:透明度是描述光线透过的程度 栅格数据增强控制主要是通过对亮 ...

  4. PIE SDK栅格图层渲染变化事件监听

    1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...

  5. PIE SDK栅格分级渲染

    1.  功能简介 栅格数据分级渲染是根据不同的分级规则,对像元值进行等级划分:并通过对每一级设置不同的显示符号和标注信息,从而达到分级显示的效果. 2.功能实现说明 2.1. 实现思路及原理说明 第一 ...

  6. PIE SDK栅格生成等值线、面

      1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信 ...

  7. PIE SDK栅格拉伸渲染

    1. 功能简介 栅格数据拉伸渲染是对指定的波段进行图像拉伸,并设置拉伸之后的颜色带,根据像元值和颜色带进行数据渲染. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 实例化拉伸渲染对象示例 ...

  8. PIE SDK栅格拉伸控制

    1. 功能简介 在我们的实际应用中,对于一般16bit或者更大比特深度的影像,像元值都是大于255的.这种情况下,RGB的显示器是不能够直接使用像元值进行显示的,需要将像元值换算到0~255的区间内以 ...

  9. PIE SDK矢量数据的投影转换

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍. 2 ...

随机推荐

  1. 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

    零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...

  2. [网络] 在浏览器输入URL回车之后发生了什么

    目录 一  前言 二  URL解析 三  DNS域名解析 1  IP 地址 2  什么是域名解析 3  浏览器如何通过域名去查询 URL 对应的 IP 呢 4  小结 四  建立连接 1  TCP三次 ...

  3. npm安装使用^符号时,在0.0.1等版本下区别

    文档地址 https://docs.npmjs.com/misc/semver Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4§ Allows changes that do no ...

  4. Python正则表达式学习与运用

    一.什么是正则表达式 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个 ...

  5. [LeetCode] 379. Design Phone Directory 设计电话目录

    Design a Phone Directory which supports the following operations: get: Provide a number which is not ...

  6. [LeetCode] 327. Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  7. mod35云掩膜产品用法

    在网上一直没找到一个明确说怎么用MOD35产品的,都是说去看用户手册,第一次看了过一段时间我又忘记怎么搞了,赶紧记下来. 而且现在才发现第一次自己搞的都弄错了. 简单的判断是否是云,只要读取mod35 ...

  8. tecplot无法处理高版本fluent导出的Ensight格式

    高版本的Fluent完成计算,将计算结果导出为Ensight格式,然后再导入tecplot当中进行后处理的时候会遇见如下的错误: 但是将低版本的Fluent计算结果导出为Ensight格式,却可以顺利 ...

  9. Ubuntu安装完搜狗后,更改ctrl+shift切换输入法

    1.打开搜狗设置 2.更改Scroll between Input Method即可,我设置成了 ALT_SUPER(Win键)

  10. 实验一 Linux基础与Java开发环境

    实验一 (一)实验内容 基于命令行和IDE(Intellj IDEA 简易教程http://www.cnblogs.com/rocedu/p/4421202.html)进行简单的Java程序编辑.编译 ...