栅格图案的矢量化方法、移动终端、电子设备和介质与流程

文档序号:31728549发布日期:2022-10-05 01:15阅读:104来源:国知局
栅格图案的矢量化方法、移动终端、电子设备和介质与流程

1.本技术涉及图像处理技术领域,特别是涉及一种栅格图案的矢量化方法、移动终端、电子设备和介质。


背景技术:

2.通常,对于图像处理技术领域来说,栅格图案经常使用到各行各业中,来对图像数据直接记录属性本身,例如地理配准、土地调查、地图下载等方面。
3.目前,在对栅格图案进行矢量化的过程中,由于对轮廓图进行的遍历时,往往会遇到多个分支,造成矢量多边形会出现内外轮廓共用同一点的情况,使得无法在多个分支处进行确定性选择,从而使得在适量结果中同时存在两种描述,也即出现二义性,进而导致后续算法出现混乱。
4.并且,由于二义性会导致无法无损还原栅格图像的每个矢量边,如此额外的判断,使得内外轮廓与预先保存的结果进行匹配归属时,也会导致大量的内存开销和时间开销。


技术实现要素:

5.为解决上述技术问题,本技术第一方面采用的技术方案是提供一种栅格图案的矢量化方法,该矢量化方法包括:访问待访问的栅格像元,多个栅格像元组成栅格图案;根据像元的类别进行浸水填充,以确定栅格图案中的多个栅格像元之间多个分支处唯一的结点与边信息的访问信息;通过访问信息提取连通域,对连通域的轮廓图进行构造;直至访问遍历所有栅格像元,则分离轮廓图并对多个轮廓图进行组合,得到栅格图案的矢量图。
6.为解决上述技术问题,本技术第二方面采用的技术方案是提供一种移动终端,该移动终端包括:访问模块,用于访问待访问的栅格像元,多个栅格像元组成栅格图案;
7.填充模块,用于根据栅格像元的类别进行浸水填充,以确定栅格图案中的多个栅格像元之间多个分支处唯一的结点与边信息的访问信息;
8.构造模块,用于通过访问信息提取连通域,对连通域的轮廓图进行构造;
9.分离模块,用于直至访问遍历所有栅格像元,则分离轮廓图并对多个轮廓图进行组合,得到栅格图案的矢量图。
10.为解决上述技术问题,本技术第三方面采用的技术方案是提供一种电子设备,该电子设备包括:处理器和存储器,存储器中存储有计算机程序,处理器用于执行计算机程序以实现如本技术第一方面的矢量化方法。
11.为解决上述技术问题,本技术第四方面采用的技术方案是提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序能够被处理器执行时实现本技术第一方面的矢量化方法。
12.本技术的有益效果是:本技术通过提出一种栅格图案的矢量化方法,在多个分支处共用轮廓点的情况下,通过使用浸水填充的方法,可控制并自动选择唯一的结点与边信息,从而使得栅格图案的矢量化结果保持同义性。
附图说明
13.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1是栅格像元、分支、连通域、轮廓图等抽象概念的结构示意图;
15.图2是本技术栅格图案的矢量化方法一实施例的流程示意图;
16.图3是本技术图1中步骤s12一具体实施例的流程示意图;
17.图4是本技术图3中步骤s21一具体实施例的流程示意图;
18.图5是本技术图4中无分支遍历一具体实施例的结构示意图,其中图5(1)为栅格示意图,图5(2)为漫水填充像元a得到的轮廓示意图,图5(3)为漫水填充a所在连通域得到的轮廓示意图;
19.图6是本技术图4中有分支遍历一具体实施例的结构示意图,其中图6(1)为有分支每个像元的类别和边信息栅格示意图,图6(2)为漫水填充a所在连通域得到的轮廓示意图;
20.图7是本技术图2中步骤s13一具体实施例的流程示意图;
21.图8是本技术图4中步骤s32一具体实施例的流程示意图;
22.图9是本技术共用节点前后路径的向量积的几种坐标表达示意图,其中图9(1)为第一种逆时针向量积的坐标示意图,图9(2)为第二种逆时针向量积的坐标示意图,图9(3)为第一种顺时针向量积的坐标示意图,图9(4)为第二种顺时针向量积的坐标示意图;
23.图10是本技术图6中步骤s53一具体实施例的流程示意图;
24.图11是本技术栅格矢量化一详细实施例的流程示意图;
25.图12是本技术提取连通域并构造轮廓图的流程示意图;
26.图13是本技术矢量化前后对应的效果示意图,其中图13(1)为矢量化前对应的栅格示意图,图13(2)矢量化后对应的矢量示意图;
27.图14是本技术移动终端实施例的结构示意框图;
28.图15是本技术电子设备实施例的结构示意框图;
29.图16是本技术计算机可读存储介质实施例的电路示意框图。
具体实施方式
30.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
31.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
32.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
33.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
34.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0035]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0036]
为了说明本技术的技术方案,下面通过具体实施例来进行说明本技术提供一种栅格图案的矢量化方法,请参阅图1和图2,图1是栅格像元、分支、连通域、轮廓图等抽象概念的结构示意图,图2是本技术栅格图案的矢量化方法一实施例的流程示意图,该矢量化方法具体包括以下步骤:
[0037]
s11:访问待访问的栅格像元;
[0038]
一般来说,以栅格形式表达的遥感图像或栅格图案的最小单元可称为栅格像元。如图1所示,多个栅格像元m的不同面积程度组成栅格图案,为了对栅格图案进行矢量化,所以可以采用依次访问待访问的栅格像元的方式,来实现对栅格图案的矢量化进程。
[0039]
具体地,比如,可以从左到右对栅格像元进行依次访问,也可以从上到下对栅格像元进行依次访问,当然本领域相关技术人员还可以采用其他遍历方式对栅格像元进行访问,从而实现对栅格图案的矢量化,具体可以根据实际情况进行选择,此处不做限定。
[0040]
s12:根据栅格像元的类别进行浸水填充,以确定栅格图案中的多个栅格像元之间多个分支处唯一的结点与边信息的访问信息;
[0041]
具体多个分支的示意可以参考图1中的n处,其中分支可以为2,也可以为3,具体数量可以看栅格像元之间的分割次数,如图1所示,分支n处有围绕节点将栅格像元分割为4份。
[0042]
而浸水填充的方式实际上是一种宽度优先搜索,当搜索方向上遇到其他类别的对象或图像边界时,便对该边界上的两个栅格角点构造一条逆时针点序的有向边。
[0043]
通常,若多个依次被访问的像元均为同一种类别,则可以认为多个像元对应的栅格图案之间所经历的访问点没有分支,可以直接确定唯一分支继续对像元依次进行访问。
[0044]
此外,对于像元还可以有多种类别,对于不同的类别,可以采用浸水填充的方式对当前像元进行周围的像元进行补充,若当前像元与补充像元以及其他像元为不同类别,则可以确定多个像元对应的栅格图案之间所经历的访问点有至少两个分支。
[0045]
因为至少有两个分支,这时则需要对下一个需要访问的像元对应的节点和边信息进行确认和选择,具体地,通过浸水填充的方式,则可以对需要优先搜索的节点和边信息进行选择,从而确定多个分支处唯一的结点与边信息的访问信息。
[0046]
s13:通过访问信息提取连通域,对连通域的轮廓图进行构造;
[0047]
如图1所示,具体连通域o为连通区域(connected component),一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域(region,blob),也即是像素值相
近的同一块区域。
[0048]
因此,通过步骤s12中这种访问确认方式,可以对每一个节点和边信息的访问情况进行唯一确定,从而实现连通域的唯一连接方式,再通过对连通域构成的轮廓图进行构造,则可以实现每一次访问后的轮廓图构造,其中轮廓图是刻画聚类效果的度量,用于表示图像的轮廓,描绘出线条图形,如图1中的连通域o周围围绕的一圈线条图形。
[0049]
s14:直至访问遍历所有栅格像元,则分离轮廓图并对多个轮廓图进行组合,得到栅格图案的矢量图。
[0050]
继续步骤s11至步骤s13,则可以得到多个部分轮廓图,通过对每个轮廓图之间进行合并以及拼接,则可以得到栅格图案对应的所有轮廓图,则可得到矢量化结果保持同义性,进而分离轮廓图并对多个轮廓图进行组合,得到栅格图案唯一的矢量图。
[0051]
具体地,保持已经访问栅格像元所得到的轮廓图,直到以任意一条剩余边的任意一个结点为起点,访问遍历所有栅格像元,直到回到起点。依次遍历期间保存作为内轮廓的闭合路径,通过浸水填充的方式进行唯一确定,删除不需要的边信息,继续遍历外轮廓,直到回到起点,从而得到所有轮廓图。
[0052]
因此,本技术通过提出一种栅格图案的矢量化方法,在对多个待访问的栅格像元组成的栅格图案进行访问遍历的基础上,在多个分支处共用轮廓点的情况下,通过使用浸水填充的方法,可控制并自动选择唯一的结点与边信息,实现对轮廓图进行构造,从而使得栅格图案的矢量化结果保持同义性,进而分离轮廓图得到唯一的矢量图。
[0053]
更进一步地,根据栅格像元的类别进行浸水填充,以确定栅格图案中的多个栅格像元之间多个分支处唯一的结点与边信息的访问信息的步骤,请参阅图3,图3是本技术图2中步骤s12一具体实施例的流程示意图,具体包括以下步骤:
[0054]
s21:在访问栅格像元的前进方向上,在多个分支处以当前像元为中心,通过浸水填充的方式,判定其他像元与当前像元之间的类别;
[0055]
具体来说,浸水填充的方式实际上是一种宽度优先搜索,当搜索方向上遇到其他类别的对象或图像边界时,便对该边界上的两个栅格角点构造一条逆时针点序的有向边。
[0056]
因此,在遍访问栅格像元的前进方向上,在多个分支处以当前像元为中心,通过浸水填充的方式,判定其他像元与当前像元之间的类别,具体地,如图5所示,在像元e周围,其他像元均同属一个类别,但与像元e是两个类别,如图6所示,在像元e周围,像元g与像元e属同一个类别,其他像元均同属一个类别且与像元e是两个类别。
[0057]
s22:基于类别,确定其他像元与当前像元之间的轮廓点序的方向。
[0058]
通过类别的确定,则在搜索方向上遇到其他类别的对象或图像边界时,便对该边界上的两个栅格角点构造一条逆时针点序的有向边;在搜索方向上遇到同一类别的对象或图像边界时,便对该边界上的两个栅格角点构造一条顺时针点序的有向边,如此确定其他像元与当前像元之间的轮廓点序的方向。
[0059]
其中,在访问栅格像元的前进方向上,在多个分支处以当前像元为中心,通过浸水填充的方式,判定其他像元与当前像元之间的类别的步骤,请参阅图7,图7是本技术图3中步骤s21一具体实施例的流程示意图,具体包括以下步骤:
[0060]
s31:在访问栅格像元的前进方向上,在多个分支处以当前像元为中心,通过浸水填充判断其他像元是否与当前像元的类别是否一致;
[0061]
若一致,则进入步骤s32,也即不进行处理;若不一致,则进入步骤s33,也即对当前像元的图像边界的任意两个栅格角点构造一条第一方向点序的有向边,以形成闭合轮廓,其中第一方向则表示为逆时针方向,而第二方向则表示为顺时针方向。
[0062]
具体地,请参阅图5和图6,图5是本技术图3中无分支遍历一具体实施例的结构示意图,其中图5(1)为栅格示意图,图5(2)为漫水填充像元a得到的轮廓示意图,图5(3)为漫水填充a所在连通域得到的轮廓示意图;图6是本技术图4中有分支遍历一具体实施例的结构示意图,其中图6(1)为有分支每个像元的类别和边信息栅格示意图,图6(2)为漫水填充a所在连通域得到的轮廓示意图。
[0063]
如图5所示,比如像元d为中心,像素颜色相同(如a4-5,g9-8)表示为同一类型,则可以不构建边,像素颜色不同(如e9-5,d左边的空格4-8(浸水填充))表示不是同一类型,则可以构建逆时针有向边。如图5所示,比如同样以像元d为中心,像素颜色相同(如a4-5)表示为同一类型,则可以不构建边,像素颜色不同(如e9-5,d左边的空格4-8(浸水填充),d8-9)表示不是同一类型,则可以构建逆时针有向边。当然,具体的栅格轮廓图还需要通过结点出度和入度来进行提取。
[0064]
更进一步地,在判定其他像元与当前像元之间的类别的步骤之后,矢量化方法还包括步骤s34:
[0065]
s34:将有向边的结点与边信息,以及连通域的轮廓图均存放于哈希表和邻接表中。
[0066]
更进一步地,通过访问情况提取连通域,对轮廓图进行构造的步骤,请参阅图7,图7是本技术图2中步骤s13一具体实施例的流程示意图,具体包括以下步骤:
[0067]
s41:按照矢量文件对轮廓点序的预设规则,判断访问得到的闭合连通域路径为第一方向多边形还是第二方向多边形;
[0068]
按照矢量文件对轮廓点序的预设规则,具体地,由于shp格式的矢量文件对轮廓点序有要求,对于生成的矢量结果,外轮廓点序需为逆时针,则构成第一方向多边形的闭合连通域路径,内轮廓点序需为顺时针,则构成第一方向多边形的闭合连通域路径。
[0069]
点序连接图中提取出的轮廓为逆时针,则作为外轮廓;如果点序连接图提取出的轮廓为顺时针,则作为内轮廓。因此,具体地,通过判断遍历得到的闭合连通域路径为第一方向多边形还是第二方向多边形,可以确定到底是外轮廓还是内轮廓。
[0070]
s42:若为第一方向多边形,则构建第一方向多边形为外轮廓,并保存至预设文件中;
[0071]
具体地,若为第一方向多边形,则表示为逆时针方向多边形,从而可以构建第一方向多边形为外轮廓,也即构建逆时针方向的外轮廓,如此如图5所示,以0为起点,可以构建得到闭合轮廓0-4-8-12-13-14-15-11-7-3-2-1-0作为外轮廓,如图6所示,以0为起点,可以构建得到闭合轮廓0-4-8-9-13-14-15-11-7-3-2-1-0作为外轮廓,此外为了便于后期的调用,可以将该逆时针方向的外轮廓保存至预设文件中。
[0072]
s43:若为第二方向多边形,则构建第二方向多边形为内轮廓,并保存至预设文件中。
[0073]
同理,具体地,若为第二方向多边形,则表示为顺时针方向多边形,从而可以构建第二方向多边形为外轮廓,也即构建顺时针方向的外轮廓,如此如图5所示,以0为起点,可
以构建得到闭合轮廓5-9-10-6-5作为内轮廓,如图6所示,以0为起点,也构建得到闭合轮廓9-5-6-10-9作为内轮廓,此外为了便于后期的调用,可以将该顺时针方向的外轮廓保存至预设文件中。
[0074]
此外,对当前像元的图像边界的任意两个栅格角点构造一条第一方向点序的有向边的步骤,请参阅图8,图8是本技术图4中步骤s32一具体实施例的流程示意图,具体包括以下步骤:
[0075]
s51:在访问栅格像元的前进方向上,以当前像元的任意一点为起点,判断轮廓图中的每个结点出度和入度是否不为1;
[0076]
一般情况下,轮廓图中的每个结点出度和入度均为1,遍历的过程不会遇到分支。特殊情况下,即内外轮廓共用结点时,结点出度可能高于1。如图6所示,遍历外轮廓到8-9时,有两个分支9-5和9-13。此时的遍历策略决定了生成的矢量图,通常,同一轮廓不会经过同一个点两次,并且还会尽可能用最少的轮廓表示多边形。
[0077]
若均为1,则进入步骤s52,也即确定访问的过程不会遇到分支,并继续在继续前进的访问方向,以形成闭合轮廓;
[0078]
若不为1,则进入步骤s53,也即确定访问的过程中出现内外轮廓共用结点。
[0079]
如此,在遍历的过程中出现内外轮廓共用结点之后,请参阅图9和图10,图9是本技术共用节点前后路径的向量积的几种坐标表达示意图,图10是本技术图6中步骤s53一具体实施例的流程示意图,具体包括以下步骤:
[0080]
s61:计算共用结点前后路径向量的向量积;
[0081]
如图9所示,其中图9(1)为第一种逆时针向量积的坐标示意图,图9(2)为第二种逆时针向量积的坐标示意图,图9(3)为第一种顺时针向量积的坐标示意图,图9(4)为第二种顺时针向量积的坐标示意图。
[0082]
以x-0-y为坐标系,其中ax以及bx表示向量a以及向量b在x坐标上的投影,而ay以及by表示向量a以及向量b在y坐标上的投影。再结合图6中的实施例可知,在共用节点处更接近图9(3),向量a(1,0),b1(0,-1),b2(0,1),因此,可计算出向量a(1,0)对应8-9与b2(0,1)对应9-13这条路径之间的差乘为1,以及计算出向量a(1,0)对应8-9与b1(0,-1)对应9-5这条路径之间的差乘为-1。
[0083]
s62:判断向量积是否大于0;
[0084]
在判定向量积大于0时,则进入步骤s63,也即选择向量积大于0对应的分支路径继续前进的遍历方向,以形成闭合轮廓;具体地,结合图6中的实施例可知,向量a(1,0)对应8-9与b2(0,1)对应9-13这条路径之间的差乘为1,大于0,所以可以确定向量积大于0,则选择9-13这条路径进行继续前进的遍历方向。
[0085]
在判定向量积小于或等于0时,则进入步骤s64,也即放弃向量积小于或等于0对应的分支路径。
[0086]
为了进一步地对本技术的技术方案进行详细秒速,这里还具体地提供了一个详细的实施例进行描述,请参阅图11,图11申请栅格矢量化一详细实施例的流程示意图,该栅格图案得矢量化方法具体包括以下步骤:
[0087]
s71:遍历像元;
[0088]
此步骤与图2中步骤s11相类似,此处不再赘述。
[0089]
s72:该像元是否访问过;
[0090]
如果当前像元已被访问,则回到步骤s71继续遍历。否则,根据该像元的类别进行漫水填充(宽度优先搜索)。当前进方向上遇到其他类别的对象或图像边界时,对该边界上的两个栅格角点构造一条逆时针点序的有向边(构造出的点和边的信息存放于哈希表和邻接表中)。同时将每个填充到的像素设为已访问。
[0091]
值得注意的是,完成步骤s72后,当前像元所在连通域的所有像元也被遍历并设为已访问。同时该连通域的内外轮廓图也被构造并置于哈希表和邻接表中。
[0092]
s73:提取连通域并构造轮廓图;
[0093]
以轮廓图最左上角的结点为起点,遍历轮廓图,直到回到起点。如果遍历过程中遇到多个分支,则优先选择前后路径向量积大于0的分支。将此次遍历得到的闭合路径作为该多边形的外轮廓保存。并从当前轮廓图中删除经过的所有边。
[0094]
s74:分离轮廓;
[0095]
如果当前轮廓图仍有边存在,以任意一条剩余边的任意一个结点为起点,遍历轮廓图,直到回到起点。如果遍历过程中遇到多个分支,则优先选择前后路径向量积大于0的分支。将此次遍历得到的闭合路径作为该多边形的内轮廓保存。并从当前轮廓图中删除经过的所有边。
[0096]
具体地,以轮廓图最左上角的结点为起点,遍历轮廓图,直到回到起点。将此次遍历得到的闭合路径作为该多边形的外轮廓保存。并从当前轮廓图中删除经过的所有路径(有向边),当一条路径删除后,该路径的起点的出度变为0时,将该点从轮廓图中删除。
[0097]
如果当前轮廓图仍有结点存在,则以任意一个存在的结点为起点,遍历轮廓图,直到回到起点。将此次遍历得到的闭合路径作为该多边形的内轮廓保存。并从当前轮廓图中删除经过的所有边。
[0098]
s75:判断遍历是否结束;
[0099]
重复步骤s74直到当前轮廓图中不存在有向边剩余。将本次得到的外轮廓和内轮廓(如果存在)保存至shp文件中。
[0100]
s76:输出矢量文件。
[0101]
请参阅图13,图13是本技术矢量化前后对应的效果示意图,其中图13(1)为矢量化前对应的栅格示意图,图13(2)矢量化后对应的矢量示意图。如图13所示,通过矢量化方法,可以将图13(1)中的栅格图案进行矢量化,得到图13(2)中的矢量结果。
[0102]
因此,本技术一方面能够高效、无损地进行栅格矢量化,保证生成的矢量文件准确无误的描述栅格图像的各个轮廓,且生成的矢量结果保持同义性。此外,还可以支持直接对全图进行矢量化,也支持指定栅格图像中任意多点(浮点坐标)并对所处这些位置的多边形进行独立矢量化操作。
[0103]
其中,对于提取连通域并构造轮廓图,具体地可以参阅图12,图12是本技术提取连通域并构造轮廓图的流程示意图,具体可以包括以下步骤:
[0104]
s81:当前像元加入搜索队列;
[0105]
为了对象元进行有序的遍历,可以将当前像元加入搜索队列,通过搜索队列对象元进行排列,从而便于对像元的遍历。
[0106]
s82:对队首元素遍历四领域未访问的像元;
[0107]
具体地,如图5所示,漫水填充a所在的连通域时(图5(1)),a向上和向左会遇到图像边界,因此构造两条逆时针点序的有向边(图5(2)),完整的填充整个连通域后得到a所在连通域的轮廓图(图5(3))。
[0108]
s83:遍历方向上是否遇到其他类别或图像边界;
[0109]
若是,则进入步骤s84,也即构造逆时针有向边,并将相关信息存入哈希表和邻接表;若否,则进入步骤s85,也即构造顺时针有向边,并将相关信息存入哈希表和邻接表;
[0110]
s86:当前像元设为已访问并移除搜索队列;
[0111]
具体地,如图5所示,以0为起点,遍历得到闭合轮廓0-4-8-12-13-14-15-11-7-3-2-1-0作为外轮廓。删除该轮廓后此时轮廓图还剩5-6-9-10-5,以任意一点作为起点遍历得到该轮廓作为内轮廓,删除该轮廓后轮廓图为空,轮廓分离操作结束。
[0112]
而入图6所示,遍历外轮廓到8-9时,有两个分支9-5和9-13。如果算法优先选择使前后路径向量的向量积大于0的分支,则可以保证生成的矢量图同一轮廓不会经过同一个点两次,反之如果算法优先选择使前后路径向量的向量积小于0的分支,则可以保证生成的矢量图尽可能用最少的轮廓表示多边形。
[0113]
具体地,如图6所示,在优先保证同一轮廓不会经过同一个点两次的策略下,遍历外轮廓至8-9时,由于9-13和8-9两条有向边的向量积大于0,此时会选择9-13这条路径,得到闭合轮廓0-4-8-9-13-14-15-11-7-3-2-1-0作为外轮廓,从轮廓图中删除该轮廓后再遍历得到内轮廓9-5-6-10-9。
[0114]
s87:搜索队列是否为空;
[0115]
继续以上步骤,并判断搜索队列是否为空,若不为空,表示搜索队列中还有需要遍历的像元,若为空,则表示搜索队列中的像元已经完全遍历,则可以进入步骤s88,以结束遍历进程。
[0116]
s88:结束。
[0117]
因此,本技术提出一种新颖高效的栅格矢量化方法,可以耗时更少,这主要得益于算法能够优先找到外轮廓并和内轮廓自动匹配,无需额外的匹配操作。同时遍历的轮廓结果天然满足shp文件对轮廓点序的要求,即外轮廓逆时针,内轮廓顺时针,不用额外检查点序。并且还可控制内外轮廓共用轮廓点情况下的矢量化结果保持同义性。并且本技术既能全图矢量化,也支持指定任意位置的一个或多个多边形独立矢量化。
[0118]
为了说明本技术的技术方案,本技术还提供一种移动终端,请参阅图14,图14是本技术移动终端实施例的结构示意框图,该移动终端90包括:
[0119]
访问模块91,用于访问待访问的栅格像元,多个栅格像元组成栅格图案;
[0120]
填充模块92,用于根据像元的类别进行浸水填充,以确定栅格图案中的多个栅格像元之间多个分支处唯一的结点与边信息的访问信息;
[0121]
构造模块93,用于通过访问信息提取连通域,对连通域的轮廓图进行构造;
[0122]
分离模块94,用于直至访问遍历所有栅格像元,则分离轮廓图并对多个轮廓图进行组合,得到栅格图案的矢量图。
[0123]
因此,本技术通过提出一种栅格图案的矢量化方法,基于遍历模块91在对多个栅格像元组成的栅格图案进行访问遍历的基础上,在多个分支处共用轮廓点的情况下,通过填充模块92使用浸水填充的方法,可控制并自动选择唯一的结点与边信息,实现构造模块
93对轮廓图进行构造,从而使得栅格图案的矢量化结果保持同义性,分离模块94,分离轮廓图得到唯一的矢量图。
[0124]
为了说明本技术的技术方案,本技术还提供一种电子设备,该电子设备可以是电脑或移动手机等,具体不做限定,请参阅图15,图15是本技术电子设备实施例的结构示意框图,该电子设备100包括:处理器110和存储器120,存储器120中存储有计算机程序121,处理器110用于执行计算机程序121以实现如本技术实施例的矢量化方法,在此不再赘述。
[0125]
此外,本技术还提供一种计算机可读存储介质,请参阅图16,图16是本技术计算机可读存储介质实施例的电路示意框图,该计算机可读存储介质200存储有计算机程序201,计算机程序201能够被处理器执行时实现如本技术实施例的矢量化方法,在此不再赘述。
[0126]
如果以软件功能单元的形式实现并作为独立的产品销售或使用时,还可以存储在具有存储功能的装置中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储装置中,包括若干指令(程序数据)用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种介质以及具有上述存储介质的电脑、手机、笔记本电脑、平板电脑、相机等电子设备。
[0127]
关于具有存储功能的装置中的程序数据的执行过程的阐述可以参照上述本技术的方法实施例中阐述,在此不再赘述。
[0128]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1