CN113487523A - 图形轮廓优化方法、装置、计算机设备和存储介质 - Google Patents

图形轮廓优化方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113487523A
CN113487523A CN202111046636.6A CN202111046636A CN113487523A CN 113487523 A CN113487523 A CN 113487523A CN 202111046636 A CN202111046636 A CN 202111046636A CN 113487523 A CN113487523 A CN 113487523A
Authority
CN
China
Prior art keywords
contour
point
target
midpoint
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111046636.6A
Other languages
English (en)
Other versions
CN113487523B (zh
Inventor
杨帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111046636.6A priority Critical patent/CN113487523B/zh
Publication of CN113487523A publication Critical patent/CN113487523A/zh
Application granted granted Critical
Publication of CN113487523B publication Critical patent/CN113487523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种图形轮廓优化方法、装置、计算机设备和存储介质,可应用于电子地图或其它图像处理的技术领域,方法包括:获取对栅格数据进行矢量化所得到的矢量数据;从矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个图形轮廓由至少两条轮廓线段所形成;针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,选取目标轮廓线段的中点;基于中点与目标直线之间的距离对中点进行筛选;目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的;依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化。采用本方法能够对图形轮廓进行优化。

Description

图形轮廓优化方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种图形轮廓优化方法、装置、计算机设备和存储介质。
背景技术
栅格数据和矢量数据是地理信息系统中,空间数据的两种最基本的数据存储形式,在地理信息系统中,为了有效的利用不同数据结构的优点,有必要进行数据结构之间的转换。其中,将栅格数据转换为矢量数据的过程称为栅格数据矢量化。
现有的栅格数据矢量化算法,在将栅格数据转换为矢量数据后,所得到的矢量数据中的图形轮廓往往为锯齿状,导致矢量数据对图形轮廓的表征能力较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高矢量数据对图形轮廓的表征能力的图形轮廓优化方法、装置、计算机设备和存储介质。
一种图形轮廓优化方法,所述方法包括:
获取对栅格数据进行矢量化所得到的矢量数据;
从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
一种图形轮廓优化装置,所述装置包括:
矢量数据获取模块,用于获取对栅格数据进行矢量化所得到的矢量数据;
特征点提取模块,用于从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
中点确定模块,用于针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
中点筛选模块,用于基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
轮廓优化模块,用于依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取对栅格数据进行矢量化所得到的矢量数据;
从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取对栅格数据进行矢量化所得到的矢量数据;
从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行以下步骤:
获取对栅格数据进行矢量化所得到的矢量数据;
从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
上述图形轮廓优化方法、装置、计算机设备和存储介质,在获取到对栅格数据进行矢量化所得到的矢量数据之后,从矢量数据中,提取由至少三个图形轮廓相交而成的特征点,针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,则选取目标轮廓线段的中点,并基于中点与目标直线之间的距离对中点进行筛选,其中,每个图形轮廓由至少两条轮廓线段所形成,目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的,并依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化,使得优化后的图形轮廓更加平滑,从而提高了矢量数据对图形轮廓的表征能力。
附图说明
图1为一个实施例中图形轮廓优化方法的应用环境图;
图2为一个实施例中图形轮廓优化方法的流程示意图;
图3为一个实施例中矢量数据的图形轮廓示意图;
图4为另一个实施例中矢量数据的图形轮廓示意图;
图5为一个实施例中图形轮廓的轮廓线段示意图;
图6为另一个实施例中图形轮廓的轮廓线段示意图;
图7为一个实施例中优化后的轮廓线段示意图;
图8为另一个实施例中优化后的轮廓线段示意图;
图9 为一个实施例中优化后的图形轮廓示意图;
图10为一个实施例中中点筛选步骤的流程示意图;
图11为一个实施例中中点到目标直线距离示意图;
图12为一个实施例中中点到子目标直线距离示意图;
图13为另一个实施例中图形轮廓优化方法的流程示意图;
图14为一个实施例中图形轮廓优化前后示意图;
图15为一个实施例中图形轮廓优化装置的结构框图;
图16为另一个实施例中图形轮廓优化装置的结构框图;
图17为一个实施例中计算机设备的内部结构图;
图18为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的图形轮廓优化方法涉及人工智能领域中的计算机视觉技术、机器学习等领域,以及云技术的多种领域,如云技术(Cloud technology)中的云计算、云服务,以及大数据领域中的相关数据计算处理领域。
人工智能(Artificial Intelligence,简称AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,简称CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,简称ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。本申请实施例所提供的地图信息的处理方法可基于云技术中的云计算(cloud computing)实现。
云计算是指通过网络以按需、易扩展的方式获得所需资源,是网格计算(GridComputing)、分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
人工智能云服务,一般也被称作是AIaaS(AIas a Service,AI即服务)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的人工智能服务进行拆分,并在云端提供独立或者打包的服务,如处理资源转换请求等。
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注。基于大数据需要特殊的技术,以有效地实施本实施例所提供的地图信息的处理方法,其中适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、以及上述云计算等。
本申请提供的图形轮廓优化方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。该图形轮廓优化方法可以单独执行于终端102或服务器104,也可以通过终端102与服务器104的交互实现。以执行于终端102为例,终端102获取对栅格数据进行矢量化所得到的矢量数据,从矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个图形轮廓由至少两条轮廓线段所形成;针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,选取目标轮廓线段的中点;基于中点与目标直线之间的距离对中点进行筛选;目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的;依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以是独立的物理服务器,也可以是区块链系统中的多个服务节点所组成的服务器集群,各服务节点之间形成组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
此外,服务器104还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请提供的图形轮廓优化方法可以应用于电子地图、地理信息系统地理空间分析、遥感图像处理等领域,栅格数据和矢量数据是空间数据的两种最基本的数据存储形式,为了有效的利用不同数据结构的优点,有必要进行数据结构之间的转换,其中,栅格数据向矢量数据的转换也称为矢量化,栅格数据矢量化所得到的矢量数据可以用于电子地图的制作、存入地理信息系统以用于地理空间分析、以及对遥感图形进行数据压缩等处理。
现有的栅格数据矢量化算法,在将栅格数据转换为矢量数据后,所得到的矢量数据中的图形轮廓往往为锯齿状,比如在生成电子地图时,可以直观地看到所生成的图形轮廓为锯齿状、地图呈现不美观(参考图1中优化前的图形轮廓110),通过采用本申请提供的图形轮廓优化方法,可以对图形轮廓进行平滑优化,从而在基于优化后的图形轮廓生成电子地图时,所生成的电子地图的图形轮廓是平滑的、美观的(参考图1中优化后的图形轮廓120)。
在一个实施例中,如图2所示,提供了一种图形轮廓优化方法,以该方法应用于图1中的计算机设备(终端或服务器)为例进行说明,包括以下步骤:
S202,获取对栅格数据进行矢量化所得到的矢量数据。
其中,栅格数据是地理信息系统中空间数据的一种最基本的数据存储形式,是以规则的阵列来表示空间地物或现象分布的数据组织,组织中的每个数据表示地物或现象的非几何属性特征;矢量数据是地理信息系统中空间数据的另一种最基本的数据存储形式,是通过记录坐标的方式尽可能精确地表示点、线和面等地理实体,坐标空间设为连续,允许任意位置、长度和面积的精确定义。
栅格数据中,地理空间被划分为规则的小单元(像元),空间位置由像元的行、列号表示。像元的大小反映了数据的分辨率即精度,空间物体由若干像元隐含描述。在此模型中,一个点就是一个像元,线和面分别由一串一片彼此相连的像元组成。
矢量数据中,各地理要素根据其空间形态特征分为点、线和面三个类别。点状要素用坐标点表示其位置,线状要素用其中心轴线上的坐标串来表示它的位置和形状,面状要素用范围轮廓线上的抽样点坐标串表示其位置和范围。
可以理解的是,栅格数据和矢量数据都有一定的优点和局限性。在地理信息系统建立过程中,应根据应用目的和应用特点,选择合适的数据结构,在地理信息系统中,为了有效的利用不同数据结构的优点,有必要进行数据结构之间的转换,其中,栅格数据向矢量数据的转换也称为矢量化,矢量化的目的是实现数据入库、数据压缩和矢量制图中的至少一种。
栅格数据矢量化包括点状栅格数据的矢量化、线状栅格数据的矢量化和面状栅格数据的矢量化,其中,点状栅格数据的矢量化是将栅格点的中心转换为矢量坐标的过程;线状栅格数据的矢量化是提取弧段栅格序列点中心的矢量坐标的过程;面状栅格数据矢量化是提取具有相同属性编码的栅格集合的矢量边界的过程。
具体地,计算机设备获取待矢量化的栅格数据,并采用预设的矢量化处理模型对待矢量化的栅格数据进行矢量化处理,得到矢量数据,所得到的矢量数据为未经优化的、忠实还原栅格数据的矢量数据。
其中,预设的矢量化处理模型可以是采用边缘跟踪方法、动态边界扫描方法、拓扑关系方法中的任意一种算法思想的矢量化处理模型,边缘跟踪方法是指,首先选择一个边界起始点,确定一个跟踪准则搜索其邻域里的某个邻点作为下一步跟踪的起点,一步步跟踪下去直至回到起点为止,采用边缘跟踪方法的矢量化处理模型具体可以是基于游程编码的矢量化处理模型;动态边界扫描法是指使用链表技术组织像元有向边,动态构造区域边界,采用动态边界扫描方法的矢量化处理模型具体可以是基于像元有向边的矢量化处理模型;拓扑关系方法将矢量化看成是在提取空间对象的基础上,构建空间对象之间拓扑关系的过程,拓扑关系主要包括点与弧段关联关系、弧段与弧段邻接关系、弧段与多边形邻接关系,多边形之间包含关系等,采用拓扑关系方法的矢量化处理模型具体可以是基于结点搜索的矢量化处理模型。
在一个实施例中,计算机设备还可以直接获取存储的矢量数据,该矢量数据为预先由栅格数据矢量化后所得到的数据。图3示出了一个实施例中对栅格数据进行矢量化之后所得到的矢量数据的可视化表达,矢量化得到的矢量数据的各个区域的边界忠实还原了栅格数据,从图3中可以看出,各个区域的图形轮廓呈锯齿状,轮廓线过渡不自然。
S204,从矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个图形轮廓由至少两条轮廓线段所形成。
其中,特征点是指三个以上的区域共同包含的点,即三个以上的图形轮廓相交而成的点。
参考图4中所示的矢量数据示意图,图中线段HI、线段IJ、线段JK和线段MN均为区域1和区域2的图形轮廓上的轮廓线段,线段BC为区域6和区域8的图形轮廓上的线段,其他不再一一列举;点A为区域1的图形轮廓、区域2的图形轮廓和区域8的图形轮廓相交而成的点,点B为区域2的图形轮廓、区域6的图形轮廓和区域8的图形轮廓相交而成的点,点C为区域6的图形轮廓、区域7的图形轮廓和区域8的图形轮廓相交而成的点,因此,点A、点B和点C均为特征点,同理,点E、点F、点G、点F和点G也是特征点。点H、点I、点J和点K均为区域1的图形轮廓和区域2的图形轮廓相交而成的点,点M和点N为区域2的图形轮廓和区域8的图形轮廓相交而成的点,因此,点H、点I、点J、点K、点M和点N均不是特征点。
具体地,计算机设备从矢量数据中提取出各个区域所对应的图形轮廓,针对每个图形轮廓,依次遍历每个图形轮廓上的点,分别判断各个点所对应的区域的数量,并将所对应的区域数量为三个以上的点确定为特征点。
其中,图形轮廓上的点包括轮廓线段上的端点和轮廓线段上的内部点,轮廓线段上的内部点是轮廓线段上的端点之外的点。判断各个点所对应的区域的数量即为判断各个点所对应的图形轮廓的数量。
在一个实施例中,针对任意一个图形轮廓,计算机在遍历该图形轮廓上的点之前,获取该图形轮廓中已经确定出对应图形轮廓数量的已遍历点,并对图形轮廓上的已遍历点之外的其他点进行遍历,分别确定其他点所对应的图形轮廓的数量,并将对应的图形轮廓的数量为三个以上的其他点确定为特征点。
例如,计算机设备先遍历了区域1的图形轮廓上的点,确定出了区域1图形轮廓上的点所对应的图形轮廓的数量,然后要遍历区域2的图形轮廓上的点,在遍历区域2的图形轮廓上的点之前,确定出区域2的图形轮廓与区域1的图形轮廓的相同轮廓线段部分,并将相同轮廓线段部分上的点确定为已遍历点,然后对区域2的图形轮廓中相同轮廓线段部分之外的其他点进行遍历,分别确定其它点所对应的图形轮廓的数量,并将对应的图形轮廓的数量为三个以上的其他点确定为特征点。
在一个实施例中,计算机设备从矢量数据中提取出各个区域所对应的图形轮廓之后,针对每个图形轮廓,依次遍历图形轮廓的各个轮廓线段的端点,并判断端点所对应的图形轮廓的数量,若图形轮廓的数量为3个以上,则确定相应的端点为特征点,若图形轮廓的数量少于3个,则确定相应的端点非特征点。
在一个实施例中,计算机设备从矢量数据中提取出各个区域所对应的图形轮廓之后,针对每个图形轮廓,依次遍历图形轮廓的各轮廓线段上的内部点,并判断轮廓线段上的点所对应的图形轮廓的数量,若图形轮廓的数量为3个以上,则确定相应的轮廓线段上的点为特征点,若图形轮廓的数量少于3个,则确定相应的轮廓线段上的非特征点。
作为一个示例对上述实施例进行说明,参考图4,关于区域6的图形轮廓,假设起始点和终点为点B,从点B开始顺时针经过点C、点E、点G、点F和点D最终又回到点B,则轮廓“B-C-E-G-F-B”即为区域6的图形轮廓,计算机设备从点B开始依次遍历区域6的图形轮廓所包含的各个轮廓线段的端点,确定各个端点所对应的图形轮廓的数量,当遍历到端点B时,端点B所对应的图形轮廓数量为3,则确定端点B即为特征点,当遍历到端点C时,端点C所对应的图形轮廓数量为3,则确定端点C为特征点,当遍历到端点P1时,端点P1所对应的图形轮廓数量为2,则确定端点P1非特征点,当遍历到端点2P时,端点P2所对应图形轮廓的数量为2,则确定端点P2非特征点,依次类推,可以确定出区域6中的端点E和端点F也是特征点,其余图中未标记出的端点均为非特征点。在遍历完端点之后,计算机设备遍历区域6的图形轮廓的轮廓线段上的点,当遍历到内部点S时,确定内部点S所对应的图形轮廓的数量为2,则确定点S为非特征点,当遍历到内部点D时,确定内部点D所对应的图形轮廓的数量为3,则确定内部点D为特征点,可以理解的是,图中区域6的图形轮廓的轮廓线段上的内部点D之外的未标记的其他内部点均为非特征点。
S206,针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段不存在特征点,选取目标轮廓线段的中点。
其中,轮廓线段不存在特征点是指,轮廓线段上的端点和轮廓线段上的内部点均 不是特征点。中点是指目标轮廓线段中间的点,具体可以根据目标轮廓线段的两个端点的 坐标计算中点的坐标,假设某个目标轮廓线段的第一个端点坐标为
Figure DEST_PATH_IMAGE002AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
,第二个端点坐 标为
Figure DEST_PATH_IMAGE004AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
,则该目标轮廓线段的中点坐标则为
Figure DEST_PATH_IMAGE006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
在一个实施例中,计算机设备针对每个图形轮廓,依次遍历每个图形轮廓的轮廓线段,即遍历轮廓线段的端点和轮廓线段上的内部点,在遍历目标轮廓线段的过程中,若目标轮廓线段的两个端点和目标轮廓线段上的内部点均不是特征点,则基于目标轮廓线段的两个端点确定目标轮廓线段的中点。
在一个实施例中,计算机设备选取目标轮廓线段的中点的过程包括以下步骤:若目标轮廓线段上的端点不是特征点,则确定轮廓线段上的内部点是否为特征点;若轮廓线段上的内部点不是特征点,则选取目标轮廓线段的中点。
具体地,针对任意一个图形轮廓,计算机设备先遍历图形轮廓的目标轮廓线段的端点,并确定目标轮廓线段的端点是不是特征点,若目标轮廓线段的两个端点均不是特征点,则遍历该目标轮廓线段上的内部点是不是特征点,若内部点也不是特征点,则基于该目标轮廓线段的两个端点确定该目标轮廓线段的中点。
作为一个示例,对上述实施例进行说明,图5所示的轮廓线段“B-C-E”是图4中区域6的图形轮廓的一部分,具体包括线段BC、线段CP1、线段P1P2……线段P11P12和线段P12E,图4中仅标记了线段P6P7上的其中一个内部点S,线段P6P7上的其他内部点,以及其他线段上的内部点均未标记出,但可以理解的是,这些未被标记出的内部点实际是存在的。结合图4可以看出,在遍历线段BC时,可以确定出线段BC的端点B和端点C是特征点,而线段BC的内部点不是特征点,则针对线段BC不必选取其中点;在遍历线段CP1时,线段CP1的端点C是特征点,端点P1不是特征点,线段CP1的内部点不是特征点,即线段CP1上存在特征点,因此针对线段CP1也不必选取其中点;在遍历线段P1P2、线段P2P3直至线段P11P12时,可以确定出上述各线段的端点均不为特征点,且内部点也均不是特征点,因此,针对线段P1P2、线段P2P3直至线段P11P12,需要分别取其中点,其中取线段中点的方式可以是基于线段两个端点的坐标,计算对应中点的坐标,例如,基于线段P1P2的端点P1的坐标和端点P2的坐标,可以计算出线段P1P2的中点P1-2的坐标,同理,参考图6可以计算出线段P2P3直至线段P11P12的中点P2-3直至P11-12。
S208,基于中点与目标直线之间的距离对中点进行筛选;目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的。
具体地,计算机设备在得到每个图形轮廓的特征点和中点之后,针对任意一个图形轮廓,对该图形轮廓的特征点和中点进行集合划分,得到多个坐标点集合,针对任意一个坐标点集合,基于该坐标点集合中的中点和特征点中的至少一类点,确定该坐标点集合所对应的目标直线,并确定该坐标点集合中各个中点到该目标直线的距离,基于各个中点到目标直线的距离,对该坐标点集合中的中点进行筛选。
可以理解的是,对于一组坐标点来说,当该组坐标点中每个坐标点到目标直线的距离均比较小时,则可以采用该目标直线上的点来提替代这组坐标点,那么仅需要保留目标直线上与这组坐标点对应的线段即可,在保留线段时记录线段的两个端点即可。因此通过基于中点与目标直线之间的距离对中点进行筛选,可以将接近于同一条目标直线的多于的中点舍去。
S210,依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化。
具体地,针对任意一个图形轮廓,计算机设备在确定出该图形轮廓的特征点和经过筛选后的中点之后,可以从特征点和经过筛选后的中点选取任意一个坐标点作为起始点,并按照预设的连接方向,对特征点和中点进行连接,并将做连接的最后一个坐标点与起始点连接,完成连接后所得到的图形轮廓即为优化后的图形轮廓。
例如,针对图4中区域6的图形轮廓的锯齿状的轮廓线段“B-C-E”,若其所对应的筛选后中点为空,则图4中区域6的图形轮廓的锯齿状的轮廓线段“B-C-E”,对应的优化后的轮廓线段如图7所示,即直线l上的线段CE替代了原锯齿状轮廓线段“C-E”对应的各个线段;若其所对应的筛选后中点P4-5,则图4中区域6的图形轮廓的锯齿状的轮廓线段“B-C-E”,对应的优化后的轮廓线段如图8所示,即直线l 1上的线段CP4-5和直线l 1上的线段P4-5E替代了原锯齿状轮廓线段“C-E”对应的各个线段。
图9示出了一个实施例中图形轮廓的优化结果,该图中的各个区域的优化后的图形轮廓分别对应于图3中所示的各个区域的图形轮廓。
上述图形轮廓优化方法,计算机设备在获取到对栅格数据进行矢量化所得到的矢量数据之后,从矢量数据中,提取由至少三个图形轮廓相交而成的特征点,针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,则选取目标轮廓线段的中点,并基于中点与目标直线之间的距离对中点进行筛选,其中,每个图形轮廓由至少两条轮廓线段所形成,目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的,并依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化,使得优化后的图形轮廓更加平滑,从而提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,S204具体包括以下步骤:从矢量数据中,提取各个图形区域所对应的图形轮廓;针对每个图形轮廓,遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取候选点;确定每个候选点对应的图形轮廓数量;将图形轮廓数量为三个以上的候选点确定为特征点。
其中,候选点是从图形轮廓的轮廓线段上所提取出的抽样点,具体包括轮廓线段上的端点和轮廓线段上的内部点。目标轮廓线段为图形轮廓所包含的轮廓线段中的任意一个线段。
具体地,计算机设备在获取到各个图形区域所对应的图形轮廓之后,按照各个图形区域的邻接顺序,依次遍历各个图形轮廓的目标轮廓线段,以从目标轮廓线段中提取候选点,针对任意一个图形轮廓,计算机设备遍历该图形轮廓中的各个轮廓线段,从各个轮廓线段中提取出候选点,并记录各个候选点的坐标,直至记录出各个图形轮廓所对应的候选点的坐标,根据所记录的各个图形轮廓所对应的候选点的坐标,统计每个坐标被记录的次数,并将次数确定为相应坐标对应的候选点对应的图形轮廓数量,将图形轮廓数量为三个以上的候选点确定为特征点,也就是将次数为三次以上的坐标对应的候选点确定为特征点。
其中,邻接顺序是指图形区域与图形区域之间的邻接关系的顺序,具体可以是从上之下,从左至右的顺序。
例如,对图4所示的各个图形轮廓的轮廓线段进行遍历时,当遍历区域1的图形轮廓时,点A和点K的坐标会分别被记录1次,当遍历区域2的图形轮廓时,点A和点K的坐标会分别再被记录1次,当遍历区域8的图形轮廓时,点A的坐标会被再记录一次,在完成所有区域的图形轮廓的遍历之后,点A的坐标总共被记录了3次,点K的坐标总共被记录了2次,因此可以确定点A为特征点。
上述实施例中,计算机设备通过从矢量数据中,提取各个图形区域所对应的图形轮廓,针对每个图形轮廓,遍历当前图形轮廓中的目标轮廓线段。以从目标轮廓线段中提取候选点,并将图形轮廓数量为三个以上的候选点确定为特征点,从而可以基于特征点实现对每个图形轮廓的优化,确保了图形轮廓中的关键点不会在优化的过程中被删除掉,避免了优化后的图形轮廓失真。
在一个实施例中,计算机设备针对每个图形轮廓,遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取候选点的过程包括:针对每个图形轮廓,遍历当前图形轮廓中目标轮廓线段的端点;以及,按照预设空间步长遍历当前图形轮廓中的目标轮廓线段的内部点;分别将端点和内部点确定为候选点。
其中,预设的空间步长小于各轮廓线段中长度最短的轮廓线段的长度。
具体地,针对任意一个图形区域的图形轮廓,计算机设备先遍历该图形轮廓中各轮廓线段的端点,并将端点作为候选点记录其坐标,在遍历完端点之后,按照预设空间步长遍历该图形轮廓中各个轮廓线段上的内部点,并将内部点作为候选点记录其坐标,在完成全部图形轮廓的遍历之后,根据所记录的各个图形轮廓所对应的候选点的坐标,统计每个坐标被记录的次数,并将次数确定为相应坐标对应的候选点对应的图形轮廓数量,将图形轮廓数量为三个以上的候选点确定为特征点,也就是将次数为三次以上的坐标对应的候选点确定为特征点。
例如,在遍历图4中区域6的图形轮廓时,先遍历区域6的图形轮廓的各个轮廓线段的端点,则图中端点B、端点C、端点P1……端点P12、端点E以及其他属于区域6的图形轮廓的端点的坐标将被记录,在遍历完区域6的图形轮廓的各个轮廓线段的端点之后,按照预设空间步长遍历区域6的图形轮廓的各个轮廓线段的内部点,假设线段BC的长度6,预设空间步长为2,当遍历线段BC时,则会从线段BC上选取两个内部点,该两个内部点为线段BC的三等分点,并分别记录该两个内部点的坐标,然后按照预设空间步长遍历下一个轮廓线段的内部点,直至完成遍历区域6的图形轮廓的各个轮廓线段的内部点。
上述实施例中,计算机设备针对每个图形轮廓,遍历当前图形轮廓中目标轮廓线段的端点,以及,按照预设空间步长遍历当前图形轮廓中的目标轮廓线段的内部点,分别将端点和内部点确定为候选点,从而可以确保端点类型的特征点和内部点类型的特征点都能够被提取到,进而基于特征点实现对每个图形轮廓的优化时,避免了因为遗漏关键点而导致优化后的图形轮廓失真。
在一个实施例中,计算机设备在从矢量数据中提取特征点时,还包括以下步骤:创建坐标点哈希表,坐标点哈希表用于存储坐标点对应的键值对;基于候选点的坐标值生成候选点的索引;若坐标点哈希表中不存在与索引匹配的目标键,将候选点的索引作为键、候选点的图形轮廓数量作为值添加到坐标点哈希表;若坐标点哈希表中存在与索引匹配的目标键,对坐标点哈希表中目标键的值进行更新。
其中,键值对的键是基于相应坐标点的坐标值生成的空间唯一索引,简称为索引,键值对的值是相应坐标点对应的统计次数。
可以理解的是,计算机设备创建坐标点哈希表,初始时刻该坐标点哈希表中存储的数据为空,在计算机设备遍历图形轮廓中的目标轮廓线段并提取出候选点的过程中,基于所提取出的候选点的坐标值,确定该坐标值对应的键与值,并基于所确定的该坐标值的键与值更新坐标点哈希表。其中,更新坐标点哈希表是指,在坐标点哈希表中添加数据或者对坐标点哈希表中已经存储的数据进行修改。
具体地,计算机设备在遍历图形轮廓中的目标轮廓线段的过程中,每提取出一个候选点,则基于该候选点的坐标值计算对应的索引,并判断坐标点哈希表中是否存在与该索引相同的目标键,若不存在,则说明该坐标点尚未被记录到坐标点哈希表中,即该坐标点是第一次被遍历到,在当前的遍历进度下,该坐标点所对应的图形轮廓数量为1,则将计算所得到的索引作为键,添加到坐标点哈希表中,并将该键对应的值确定为1;若存在,则说明该坐标点已经被记录到坐标点哈希表中了,即该坐标点之前已经被遍历到过,此时坐标点哈希表中目标键所对应的值即为该坐标点已经被遍历到的次数,那么在当前的遍历进度下,该坐标点所对应的图形轮廓数量为已经被遍历到的次数加1,则对坐标点哈希表中目标键的值加1。
在一个实施例中,基于候选点的坐标值生成候选点的索引的过程具体包括以下步骤:获取候选点的经度坐标值和纬度坐标值;对经度坐标值和纬度坐标值进行预处理,得到预处理后经度坐标值和预处理后纬度坐标值;对预处理后经度坐标值和预处理后纬度坐标值进行运算,得到候选点对应的索引。
其中,预处理可以是数值近似处理,对于坐标点(x,y),将xy分别保留预设位数的小数,预设位数可以根据实时处理的矢量数据所要求的空间精度进行选取,当预设位数为6时大致对应空间精度为米(m)级别,假设保留6位小数,对于坐标点(113.16378926,24.698411361),保留6位小数之后,x=113.163789、y=24.698411。
运算可以是哈希运算,也可以是直接将预处理后经度坐标值和预处理后纬度坐标值进行拼接,例如对于x=113.163789和y=24.698411,对xy进行拼接可以得到“113.163789_24.698411”,“113.163789_24.698411”即为坐标点(113.16378926,24.698411361)对应的索引。
上述实施例中,计算机设备通过创建坐标点哈希表,基于候选点的坐标值生成候选点的索引;若坐标点哈希表中不存在与索引匹配的目标键,将候选点的索引作为键、候选点的图形轮廓数量作为值添加到坐标点哈希表,从而可以通过哈希表,简单高效地实时记录各个候选点的图形轮廓数量,便于后续基于坐标点哈希表直接提取特征点,从而提高了特征点的提取效率。
在一个实施例中,计算机设备确定每个候选点对应的图形轮廓数量的过程包括以下步骤:获取遍历当前图形轮廓中的目标轮廓线段时所得到的坐标点哈希表;基于坐标点哈希表所存储的键值对,确定各候选点对应的图形轮廓数量。
可以理解的是,在计算机设备遍历图形轮廓中的目标轮廓线段并提取出候选点的过程中,不断的将遍历到的候选点的索引和该候选点被遍历到的次数更新到坐标点哈希表中,当完成全部图形轮廓的遍历之后,所有的候选点对应的索引以及每个候选点被遍历到的次数都被记录到坐标点哈希表中。
具体地,计算机设备在完成各个图形轮廓的遍历之后,获取更新完成的坐标点哈希表,该更新完成的坐标点哈希表的每一个键均对应一个候选点,因此获取各个件所对应的值,该值即为相应的候选点对应的图形轮廓数量,从而获取坐标点哈希表中存储的键值对,即可得到各个候选点对应的图形轮廓数量。
上述实施例中,计算机设备通过获取遍历当前图形轮廓中的目标轮廓线段时所得到的坐标点哈希表,直接基于坐标点哈希表所存储的键值对,确定各候选点对应的图形轮廓数量,从而可以快速地确定出特征点,提高了特征点的提取效率。
在一个实施例中,如图10所示,S208具体包括以下步骤:
S1002,对中点和特征点进行集合划分,得到坐标点集合。
在一个实施例中,对图形轮廓的特征点和中点进行集合划分的步骤包括:从图形轮廓的特征点和中点中选取起始点,并按照预设的搜索方向,对特征点和中点进行搜索排序,得到排序后的特征点和中点,并对排序后的特征点和中点进行区间划分,得到多个坐标点区间,每个区间对应一个坐标点集合,相邻的两个区间中,前一区间的区间尾端点与后一区间的区间头端点所对应的坐标点相同。
其中,若某个图形轮廓所对应的特征点和中点共有n个,n不小于3,即共有n个坐标点待排序,排序结果表示为“a1、a2、……ai……an-1、an”,ai表示排序结果第i个的坐标点。假设按照该排序结果,将该坐标点划分到2个区间,得到区间[a1, ai]和区间[ai, an],则区间[a1, ai]对应的排序为第1的坐标点到排序为第i的坐标点属于第一个坐标点集合,区间[ai, an]对应的排序为i的坐标点到排序为第n的坐标点属于第二个坐标点集合。
S1004,将坐标点集合中起始坐标点和结束坐标点所在直线确定为目标直线。
在一个实施例中,计算机设备针对任意一个坐标点集合,基于该坐标点集合中的中点和特征点中的至少一类点,确定该坐标点集合所对应的目标直线的步骤包括:确定该坐标点集合所对应区间的区间端点,基于区间端点确定目标直线。
例如,某个坐标点集合所对应的区间为区间[a1, ai],即区间端点为排序为1的坐标点和排序为i的坐标点,可以理解的是,排序为1的坐标点和排序为i的坐标点可以是特征点或中点,则将排序为1的坐标点和排序为i的坐标点所在的直线确定为目标直线。
S1006,确定坐标点集合中各坐标点到目标直线的距离。
S1008,基于距离,对各坐标点集合中的中点进行筛选。
其中,若最大的距离不大于距离阈值,则将坐标点集合中的中点删除;若最大的距离大于距离阈值,则保留最大的距离对应的中点,并根据最大的距离对应的中点确定子坐标点集合和子目标直线,以基于对子坐标集合中的中点到子目标直线的距离,对子目标集合中的中点进行筛选。
在一个实施例中,计算机设备确定坐标点集合中各个中点到该目标直线的距离,基于各个中点到目标直线的距离,对坐标点集合中的中点进行筛选的步骤具体包括:若区间端点为中点,则确定坐标点集合中区间端点之外的其他中点到目标直线的距离,若最大的距离不大于预设的距离阈值,则将坐标点集合中区间端点之外的其他中点进行删除,实现对中点的筛选;若最大的距离小于预设的距离阈值,则保留最大的距离对应的中点,并根据该中点对确定坐标点集合的子坐标点集合和子目标直线,以基于子坐标集合中的中点到子目标直线的距离,对子目标集合中的中点进行筛选。
例如,某个坐标点集合所对应的区间为区间[a1, ai],i不小于3,该坐标点集合的目标直线为a1对应的中点和ai对应的特征点所在的直线,该坐标点集合中aj对应的中点到目标直线的距离为dj,若dj不大于预设距离阈值d,则将该坐标点集合中a1对应的中点之外的其他中点均删除;若dj大于预设距离阈值d,则将该坐标点集合所对应的区间[a1, ai]划分为两个子区间,得到子区间[a1, aj]和子区间[aj, ai],子区间[a1, aj]对应的排序为第1的坐标点到排序为第j的坐标点属于第一个子坐标点集合,子区间[aj, ai] 对应的排序为第j的坐标点到排序为第i的坐标点属于第二个子坐标点集合,针对第一个子坐标点集合,其所对应的子目标直线为a1对应的中点和aj对应的中点所在的直线,分别计算第一个子坐标点集合中a1对应的中点之外的其他中点到该子目标直线的距离,并判断最大距离是否大于预设距离阈值,判断结果对其他中点进行筛选;针对第二个子坐标点集合,其所对应的子目标直线aj对应的中点和ai对应的特征点所在的直线,分别计算第二个子坐标点集合中aj对应的中点之外的其他中点到该子目标直线的距离,并判断最大距离是否大于预设距离阈值,判断结果对其他中点进行筛选。
作为一个示例,对上述实施例进行说明。例如,图4中区域6的图形轮廓的轮廓线段“B-C-E”,其所对应的特征点为点B、点C和点E,中点有P1-2、P2-3至P11-12,则以点B为起始点,按照顺时针方向对上述特征点和端点进行排序,得到排序结果为“B、C、P1-2、P2-3、……P11-12和E”,若将B、C、P1-2、P2-3、……P11-12和E划分到同一个坐标点集合,参考图11则该坐标点集合所对应的目标直线即为点B和点E所在的直线l,则计算各坐标点集合中各中点到目标直线的距离,也就是计算点P1-2、点P2-3直至点P11-12分别到图中直线l 的距离,从图11中可看出各个中点对应距离中点P3-4的距离d3-4为最大距离,则判断距离d3-4是否大于预设的距离阈值d,距离d3-4不大于预设的距离阈值d,则将该坐标点集合所对应的各个中点删除,也就是将点P1-2、点P2-3、……点P11-12全部删除,完成对轮廓线段“B-C-E”对应的坐标点集合中的中点的筛选,即该坐标点集合中仅仅保留特征点C和特征点E;若距离d3-4大于预设的距离阈值,则保留点P3-4,并确定点B、点C、点P1-2、点P2-3和点P3-4确定属于第一个子坐标点集合,点P3-4、点P4-5、点P5-6、点P6-7、点P7-8、点P8-9、点P9-10、点P11-12和点E属于第二个子坐标点集合,参考图12,针对第一个子坐标点集合,其所对应的子目标直线为点C和点P3-4所在的直线l 1,则分别计算点P1-2和点P2-3到直线l 1的距离,若最大距离不大于预设的距离阈值d,则将点P1-2和点P2-3进行删除;针对第二个子坐标点集合,其所对应的子目标直线为点P3-4和点E所在的直线l 2,则分别计算点P4-5、点P5-6、点P6-7、点P7-8、点P8-9、点P9-10和点P11-12到直线l 2的距离,若最大距离不大于预设的距离阈值d,则将点P4-5、点P5-6、点P6-7、点P7-8、点P8-9、点P9-10和点P11-12进行删除,从而完成对轮廓线段“B-C-E”对应的坐标点集合中的中点的筛选,即该坐标点集合中仅保留特征点B、点C、点E,以及中点P3-4。
上述实施例中,计算机设备通过对中点和特征点进行集合划分,得到坐标点集合,将坐标点集合中起始坐标点和结束坐标点所在直线确定为目标直线,确定坐标点集合中各中点到目标直线的距离,从而可以基于距离对各坐标点集合中的中点进行快速筛选,进而可以基于特征点和经过筛选后的中点对图形轮廓进行优化,使得优化后的图形轮廓更加平滑,从而提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,计算机设备保留最大的距离对应的中点的过程包括以下步骤:若最大的距离对应的中点为至少两个,则对最大的距离对应的中点进行排序,得到排序结果;从排序结果中选取目标中点,并将目标中点进行保留。
其中,排序的方式可以是按照经度坐标值、维度坐标值由小到大的顺序进行排序,也就是说经度坐标值和维度坐标值越小的中点,其排名越靠前。目标中点可以是排名第一的中点,也可以是排名最后的中点。
例如,最大距离对应的中点有三个,分别为点Q1(118,24)、点Q2(120,28)和Q3(113,24),则按照经度坐标值、维度坐标值由小到大的顺序对点Q1、点Q2和点Q3进行排序,得到排序结果为“点Q3,点Q1,点Q2”,若选取排名第一的目标中点进行保留,则将选取点Q3作为目标中点进行保留。
上述实施例中,在最大的所述距离对应的中点为至少两个时,计算机设备通过最大的所述距离对应的中点进行排序,得到排序结果;从所述排序结果中选取目标中点,并将所述目标中点进行保留,可以确保不同的图形轮廓无论采用何种坐标点集合划分方式以及遍历顺序,不同的图形轮廓均会保留同一个目标中点,避免了不同图形轮廓保留的坐标点不一致,产生轮廓间的缝隙,从而提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,目标直线包括第一目标直线和第二目标直线;第一目标直线是基于特征点确定的;计算机设备第二目标直线是基于中点或中点与特征点确定的;计算机设备基于中点与目标直线之间的距离对中点进行筛选的过程包括以下步骤:将当前图形轮廓的相邻两个特征点所在的直线确定为第一目标直线,相邻两个所述特征点包括第一特征点和第二特征点;获取第一目标直线所对应的第一中点集合;确定第一中点集合内各中点到对应的第一目标直线的距离;若最大的距离不大于预设距离阈值,则将第一中点集合对应的中点进行删除;若最大的距离大于预设距离阈值,则保留最大的距离对应的目标中点,并根据第一特征点、目标中点和第二特征点确定第二目标直线,以基于中点与第二目标直线的距离对中点进行筛选。
具体地,计算机设备在得到特征点和中点之后,从图形轮廓的特征点和中点中选取起始点,并按照预设的搜索方向,对特征点和中点进行搜索排序,得到排序后的特征点和中点,并将每个特征点作为区间的端点,对排序后的特征点和中点进行区间划分,得到多个坐标点区间,每个区间对应一个坐标点集合,每个区间的区间头端点和区间尾端点是两个相邻的特征点,并将区间头端点的特征点记为第一特征点,将区间2端点的特征点记为第二特征点,相邻的两个区间中,迁移区间的区间尾端点与后一区间的区间头端点所对应的特征点相同。
例如,图6所示的特征点和中点在排序后可以划分为两个坐标点集合,这两个坐标点集合对应的坐标点区间为[B,C]和[C,E],其中针对坐标点区间 [B,C] 对应的坐标点集合,其所对应的第一特征点为点B,第二特征点为点C,其所对应的第一目标直线为点B和点C所在直线,但坐标点区间 [B,C]对应的中点为空,因此,对于坐标点区间 [B,C] 对应的坐标点集合,不必进行中点的筛选;针对坐标点区间[C,E]对应的坐标点集合,其所对应的第一特征点为点C,第二特征点为点E,其所对应的第一目标直线为点C和点E所在的直线,坐标点区间[C,E]对应的中点为点P1-2、点P2-3……点P11-12,则分别计算点P1-2、点P2-3……点P11-12到第一目标直线的距离,参考图11,点P3-4到第一目标直线的距离为最大距离,则判断距离d3-4是否大于预设的距离阈值d,距离d3-4不大于预设的距离阈值d,则将该坐标点集合所对应的各个中点删除,也就是将点P1-2、点P2-3、……点P11-12全部删除,完成对轮廓线段“C-E”对应的坐标点集合中的中点的筛选,即该坐标点集合中仅仅保留特征点C和特征点E;若距离d3-4大于预设的距离阈值,则保留点P3-4,并根据点P3-4、第一特征点点C和第二特征点点E,确定两个第二目标直线,分别为第一特征点点C和点P3-4所在的直线,以及点P3-4和第二特征点点E所在的直线,并分别计算点P1-2、点P2-3到第一特征点点C和点P3-4所在的直线的距离,从而实现对点P1-2和点P2-3的筛选,并分别计算点P4-5……点P11-12到点P3-4和第二特征点点E所在的直线的距离,从而实现对点P4-5……点P11-12的筛选。
上述实施例中,计算机设备通过将当前所述图形轮廓的相邻两个所述特征点所在的直线确定为第一目标直线,获取所述第一目标直线所对应的第一中点集合;所述相邻两个所述特征点包括第一特征点和第二特征点;确定所述第一中点集合内各中点到对应的所述第一目标直线的距离,并基于距离对中点进行筛选,使得不同的图形轮廓在进行坐标点集合划分时,均是采用特征点作为区间的端点,即不同的图形轮廓的坐标点集合划分方式相同,避免了不同图形轮廓保留的坐标点不一致,产生轮廓间的缝隙,从而提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,上述图形轮廓优化方法还包括以下步骤:基于特征点的坐标生成特征点列表;创建轮廓点列表,轮廓点列表用于存储优化后的图形轮廓中轮廓线段的端点;针对每个图形轮廓,按照当前图形轮廓中各轮廓线段间的连接顺序,遍历当前图形轮廓中各轮廓线段的端点;若目标轮廓线段的第一端点和第二端点中的至少一个存在于特征点列表,则将存在于特征点列表的端点添加至轮廓点列表;若目标轮廓线段的第一端点和第二端点均不存在于特征点列表,则将目标轮廓线段中的目标内部点添加至轮廓点列表。
其中,特征点列表中存储有通过S204所提取的各个特征点的坐标值。轮廓点列表用于存储优化后的图形轮廓中各个轮廓线段的端点,可以理解的是,优化后的图形轮廓的中各图形轮廓线段的端点,即为优化前的图形轮廓中提取的特征点和经过筛选后的中点。
需要说明的是,轮廓点列表创建的初始时刻,轮廓点列表中所存储的数据为空,在计算机设备提取出特征点和中点的过程中,将所提取出的特征点和中点依次添加到轮廓点列表中,并在将所有的特征点和中点添加到轮廓点列表之后,基于中点与目标直线之间的距离对中点进行筛选,对于确定删除的中点,则将其轮廓点列表中删除,对于保留的中点,则将其保留在轮廓点列表中,实现对轮廓点列表的更新,可以理解的是,基于更新后的轮廓点列表中所存储的特征点和经过筛选的中点即可生成优化后的图形轮廓,也就是说更新后的轮廓点列表中所存储的各个坐标点即为优化后的图形轮廓中各图形轮廓线段的端点。可以理解的是,若某个坐标点存在与特征点列表,则说明该坐标点为特征点。
具体地,计算机设备在提取出特征点,并基于特征点的坐标生成特征点列表之后,创建轮廓点列表,然后再针对每个图形轮廓,按照当前图形轮廓中各轮廓线段间的连接顺序,遍历当前图形轮廓中各轮廓线段的端点,并判断目标轮廓线段的第一端点和第二端点中的至少一个是否存在于特征点列表,若第一端点存在于特征点列表,则说明第一端点为特征点,则将第一端点加入轮廓点列表,若第二端点存在于特征点列表,则说明第二端点为特征点,则将第二端点加入轮廓点列表;若第一端点和第二端点均不存在于特征点列表,则说明第一端点和第二端点均不是特征点,则将目标轮廓线段上的目标内部点添加至轮廓点列表。目标内部点是目标轮廓线段内部点中存在于特征点列表的特征点,或者是目标轮廓线段内部点中目标轮廓线段的中点。
上述实施例中,计算机设备通过基于特征点的坐标生成特征点列表;创建轮廓点列表,轮廓点列表用于存储优化后的图形轮廓中轮廓线段的端点;针对每个图形轮廓,按照当前图形轮廓中各轮廓线段间的连接顺序,遍历当前图形轮廓中各轮廓线段的端点,从而将属于特征点的端点以及目标内部点添加至轮廓点列表,以便基于轮廓点列表对图形轮廓进行初始优化,并为进一步优化提供数据基础,从而提高了对图形轮廓优化处理的效率。
在一个实施例中,计算机设备将目标轮廓线段中的目标内部点添加至轮廓点列表的过程包括以下步骤:按照预设空间步长遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取内部点;若内部点中的目标内部点存在于特征点列表,则将目标内部点添加至轮廓点列表;若内部点均不存在于特征点列表,则确定目标轮廓线段的中点,并将目标轮廓线段的中点作为目标内部点添加至轮廓点列表。
具体地,计算机设备在确定出目标轮廓线段的第一端点和第二端点均不存在于特征点列表后,则按照预设空间步长遍历目标轮廓线段的内部点,并确定内部点中是否有存在于特征点列表的目标内部点,若存在,则说明目标内部点为特征点,则将目标内部点添加至轮廓点列表,若不存在,则基于目标轮廓线段的第一端点和第二端点确定目标轮廓线段的中点,并将目标轮廓线段的中点作为目标内部点添加至轮廓点列表。
作为一个示例,对上述实施例进行说明,图5所示的轮廓线段“B-C-E”是图4中区域6的图形轮廓的一部分,具体包括线段BC、线段CP1、线段P1P2……线段P11P12和线段P12E,图4中仅标记了线段P6P7上的其中一个内部点S,线段P6P7上的其他内部点,以及其他线段上的内部点均未标记出,但可以理解的是,这些未被标记出的内部点实际是存在的。结合图4可以看出,在遍历线段BC时,可以确定出线段BC的端点B和端点C是特征点,即端点B和端点C存在于特征点列表中,则将点B和点C加入轮廓点列表;在遍历线段CP1时,端点C存在于特征点列表中,端点P1不存在于特征点列表,在此次将端点C添加至特征点列表时,由于端点C已经存在于轮廓点列表中,则此次不再重加入端点C;在遍历线段P1P2时,可以确定点P1和点P2均不存在于特征点列表,则遍历线段P1P2上的内部点,并确定出线段P1P2上的内部点也均不存在于特征点列表,则基于点P1和点P2计算线段P1P2的中点P1-2,并将中点P1-2作为线段P1P2的目标内部点添加至轮廓点列表;同理,针对线段P2P3直至线段P11P12,均是将其中点作为目标内部点添加至轮廓点列表,即轮廓点列表中将添加中点P2-3直至P11-12。
在一个实施例中,若目标轮廓线段的第一端点和第二端点中的至少一个存在于特征点列表,计算机设备还按照预设空间步长遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取内部点;若内部点中的目标内部点存在于特征点列表,则将目标内部点添加至轮廓点列表。
上述实施例中,计算机设备通过按照预设空间步长遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取内部点,并将内部点上的特征点或者内部点上的中点添加至轮廓点列表,以便基于轮廓点列表对图形轮廓进行初始优化,并为进一步优化提供数据基础,从而提高了对图形轮廓优化处理的效率。
在一个实施例中,目标轮廓线段的中点和特征点存储于轮廓点列表,计算机设备基于所述中点与目标直线之间的距离对所述中点进行筛选的过程包括:确定中点与目标直线之间的距离;若最大的距离不大于距离阈值,确定对中点进行删除,并在轮廓点列表中将中点删除;若确定最大的距离大于距离阈值,确定对最大的距离对应的中点进行保留,则将中点保留在轮廓点列表中,并根据最大的距离对应的中点对其他中点进行筛选,以得到更新后的轮廓点列表。
具体地,计算机设备在将每个图形轮廓的特征点和中点加入轮廓点列表之后,对该轮廓点列表中的特征点和中点进行结合划分,得到多个坐标点集合,针对任意一个坐标点集合,基于该坐标点集合中的中点和特征点中的至少一类点,确定该坐标点集合所对应的目标直线,并确定该坐标点集合中各个中点到该目标直线的距离,基于各个中点到目标直线的距离,对该坐标点集合中的中点进行筛选。其中,基于各个中点到目标直线的距离,对该坐标点集合中的中点进行筛选的过程可以参考S1002至S1008的过程,当某个中点被确定删除时,则将该中点从轮廓点列表中删除,当某个中点被确定保留时,则将该中点保留至轮廓点列表中。
在一个实施例中,计算机设备依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化的过程包括:根据更新后的轮廓点列表中所存储的特征点和筛选后的中点,生成当前图形轮廓对应的优化后图形轮廓。
可以理解的是,更新后的轮廓点列表中所存储的坐标点即为特征点和经过筛选后的中点,基于特征点和经过筛选后的中点所生成的图形轮廓即为优化后的图形轮廓。
上述实施例中,计算机设备通过基于所述中点与目标直线之间的距离对轮廓点列表中所存储的中点进行筛选,并基于筛选结果对轮廓点列表进行更新,从而可以直接基于更新后的轮廓点列表生成优化后的图形轮廓,实现每个图形轮廓的进一步优化,从而提高了对图形轮廓优化处理的效率,并提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,如图13所示,提供了一种图形轮廓优化方法,以该方法应用于图1中的计算机设备(终端或服务器)为例进行说明,包括以下步骤:
S1302,获取对栅格数据进行矢量化所得到的矢量数据。
S1304,从所述矢量数据中,提取各个图形区域所对应的图形轮廓。
S1306,针对每个所述图形轮廓,遍历当前所述图形轮廓中的目标轮廓线段,以从所述目标轮廓线段中提取候选点。
S1308,基于所述候选点的坐标值生成所述候选点的索引,将所述索引作为键添加至已创建的坐标点哈希表中。
其中,每提取一个候选点,则判断该候选点对应的索引是否存在坐标点哈希表中,若不存在,则记录该索引为键,并对该索引的值赋值为1;若存在,则将该索引对应的值加1。
S1310,基于所述坐标点哈希表所存储的键值对,确定各所述候选点对应的图形轮廓数量。
S1312,将所述图形轮廓数量为三个以上的候选点确定为特征点,并基于特征点的坐标生成特征点列表。
S1314,针对每个图形轮廓,按照当前图形轮廓中各轮廓线段间的连接顺序,遍历当前图形轮廓中各轮廓线段,将轮廓线段对应属于特征点的端点和目标内部点加入到轮廓点列表。
其中,若目标轮廓线段的第一端点和第二端点中的至少一个存在于特征点列表,则将存在于特征点列表的端点添加至轮廓点列表;若目标轮廓线段的第一端点和第二端点均不存在于特征点列表,则将按照预设空间步长遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取内部点;若内部点中的目标内部点存在于特征点列表,则将目标内部点添加至轮廓点列表;若内部点均不存在于特征点列表,则确定目标轮廓线段的中点,并将目标轮廓线段的中点作为目标内部点添加至轮廓点列表。
S1316,确定中点与目标直线之间的距离,基于距离对轮廓点列表中的中点进行筛选,得到更新后的轮廓点列表。
其中,若最大的距离不大于距离阈值,确定对中点进行删除,并在轮廓点列表中将中点删除。若确定最大的距离大于距离阈值,确定对最大的距离对应的中点进行保留,则将中点保留在轮廓点列表中,并根据最大的距离对应的中点对其他中点进行筛选,以得到更新后的轮廓点列表。
S1318,根据更新后的轮廓点列表中所存储的特征点和筛选后的中点,生成当前图形轮廓对应的优化后图形轮廓。
本申请还提供一种应用场景,该应用场景应用上述的图形轮廓优化方法。具体地,该图形轮廓优化方法在该应用场景的应用如下:
步骤(1):栅格数据矢量化 计算机设备利用矢量化算法对栅格数据进行矢量化处理,将栅格数据转换为未经优化的、忠实还原栅格数据的矢量数据。
步骤(2):特征点提取
构建一个基于哈希表的键值对,以存储矢量数据各个候选点出现的次数,键值对的键为候选点的空间唯一索引,键值对的值为候选点出现的次数;针对每个图形轮廓,遍历该图形轮廓内所有轮廓线段的端点,并按照预设步长遍历该图形轮廓内所有轮廓线段上的内部点,将端点和内部点确定为候选点,并将候选点的坐标值转换为空间唯一索引后添加到键值对中,其中,每提取一个候选点,则判断该候选点对应的空间唯一索引是否存在于键值对中,若不存在,则记录该空间唯一索引为键,并对该空间唯一索引的值赋值为1;若存在,则将该空间唯一索引对应的值加1,在对所有轮廓线段完成遍历后,从基于遍历所得到的键值对,将值大于等于3的空间唯一索引对应的候选点确定为特征点,并生成特征点列表。
步骤(3)基于特征点的轮廓平滑
对于某个图形轮廓,初始化平滑后的轮廓坐标列表Boundary,按确定的顺序(可以是顺时针或逆时针)遍历其轮廓线段的端点,对于每个端点有:
a)将当前端点记为Pi,提取其后一个端点Pi+1,初始化两个状态值Si、Si+1,分别代表当前端点的保留状态、后一个端点的保留状态,初始值均为布尔值false(表示不保留);
b)判断当前端点Pi是否为特征点,具体做法为对该端点的坐标值采用同前所述的方式取空间唯一索引,判断空间唯一索引是否在特征点列表的键值对中,若在则表明当前点为特征点;
c)若当前端点Pi为特征点,则将Si置为布尔值true(表示保留);
d)判断下一个端点Pi+1是否为特征点,若下一个端点Pi+1是特征点,保留下一个点,则将Si+1置为布尔值true;
e)构建一个线段上的特征点数组Array,并初始化为空。经过前述a)至d)判断与处理流程后,若当前端点Pi及下一个端点Pi+1未均被保留,即Si、Si+1的值均为布尔值false,则按一定的步长,确定由当前点Pi与下一个点Pi+1连成的线段上是否存在特征点,若存在,则按顺序将线段上的特征点插入到Array中;
f)将需要保留的点加入到Boundary中,具体有:
1. 若保留当前端点Pi,即Si的值为布尔值true,把点Pi加入到平滑后的轮廓坐标列表Boundary;
2. 若特征点数组Array不为空,则按顺序将特征点数组Array中的每一个特征点加入到平滑后的轮廓坐标列表Boundary中;
3. 若特征点数组Array为空,且当前端点Pi与下一个端点Pi+1均未被保留,即Si、Si+1的值均为布尔值false,则计算当前端点Pi与后一个端点Pi的中点,把该中点加入到平滑后的轮廓坐标列表Boundary;
4. 若保留下一个端点Pi+1,即Si+1的值为布尔值true,则把点Pi+1加入到平滑后的轮廓坐标列表Boundary;
为避免重复添加某个坐标点,在将坐标点加入到平滑后的轮廓坐标列表Boundary前,会判断待加入的坐标与平滑后的轮廓坐标列表Boundary中已加入的坐标是否相同,若相同则不加入。
经过上述a)到f)的步骤,得到当前处理轮廓平滑后的轮廓坐标,以此类推遍历所有轮廓,完成各个轮廓基于特征点的轮廓平滑。
步骤(4)轮廓简化
通过步骤(1)至步骤(3),已经对栅格数据矢量化后得到的忠实还原栅格数据但存在锯齿等问题的矢量轮廓进行了一定程度的优化。然而,得到的轮廓上依然有可能存在冗余点,因此在本步骤中对上述初步平滑后的图形轮廓再进行一次简化。
具体通过改进的保留特征点的Douglas–Peucker算法,对轮廓进行简化,具体步骤为:
1)对于某个具有N个坐标点(包括特征点和中点)的图形轮廓,初始化数组S[N],S[i]是一个初始化为true的布尔值,表示第i个坐标点在简化后应当被保留;
2)设定简化阈值d,例如d = 2m,我们有一个简化函数:对坐标点区间i到j,有起点Pi与终点Pj连成的直线,若i点与j点间不存在其他坐标点,退出函数,否则寻找区间内与该直线距离最远的坐标点Pz,判断Pz与直线间的距离是否超过阈值d;若Pz与直线间的距离超过阈值d,递归地对区间i到z,z到j调用本函数;若Pz与直线间的距离未超过阈值d,把区间i到区间j之间(不含i、j),所有的非特征点均进行去除,即对于k = i + 1, …, j – 1,将对应的S[k]设置为布尔值false。
3)初始化新的坐标串数组,对于轮廓中第k个坐标点,只有当S[k]为布尔值true时,才将该坐标点加入新的坐标串数组中,最终得到改进的保留特征点的Douglas–Peucker算法处理后的轮廓。
4)对所有轮廓完成以上1)到3)步骤的处理,从而完成所有轮廓的简化,输出结果。
图14示出了一个实施例中,采用上述步骤(1)至步骤(4)对图形轮廓进行优化前后的对比示意图。
本申请还提供一种电子地图轮廓优化的应用场景,该应用场景应用上述的图形轮廓优化方法。具体地,该图形轮廓优化方法在该应用场景的应用如下:获取对栅格数据进行矢量化所得到的矢量数据,其中栅格数据即为栅格电子地图数据,也可以称为栅格电子地图,矢量数据即为矢量电子地图数据,也可以称为矢量电子地图,矢量电子地图中包含多个地图图形轮廓,从矢量电子地图中,提取由至少三个地图图形轮廓相交而成的特征点,每个地图图形轮廓由至少两条轮廓线段所形成,针对每个地图图形轮廓,在遍历当前地图图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,则选取目标轮廓线段的中点,基于中点与目标直线之间的距离对中点进行筛选,其中目标直线是依据当前地图图形轮廓上的中点和特征点中的至少一类点确定的,依据当前地图图形轮廓上的特征点和经过筛选后的中点,对当前地图图形轮廓进行优化,直至完成矢量电子地图中每个地图图形轮廓的优化。
本申请还提供一种其他图像轮廓优化的应用场景,该应用场景应用上述的图形轮廓优化方法。具体地,该图形轮廓优化方法在该应用场景的应用如下:获取对栅格数据进行矢量化所得到的矢量数据,其中栅格数据即为栅格图像数据,也可以称为栅格图像,矢量数据即为矢量图像数据,也可以称为矢量图像,矢量图像中可以包括多个图形轮廓,从矢量图像中,提取由至少三个图形轮廓相交而成的特征点,每个图形轮廓由至少两条轮廓线段所形成,针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,则选取目标轮廓线段的中点,基于中点与目标直线之间的距离对中点进行筛选,其中目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的,依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成矢量图像中每个图形轮廓的优化。
应该理解的是,虽然图2、图10和图13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图10和图13中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供了一种图形轮廓优化装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:矢量数据获取模块1502、特征点提取模块1504、中点确定模块1506、中点筛选模块1508和轮廓优化模块1510,其中:
矢量数据获取模块1502,用于获取对栅格数据进行矢量化所得到的矢量数据。
特征点提取模块1504,用于从矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个图形轮廓由至少两条轮廓线段所形成。
中点确定模块1506,用于针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,选取目标轮廓线段的中点。
中点筛选模块1508,用于基于中点与目标直线之间的距离对中点进行筛选;目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的。
轮廓优化模块1510,用于依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化。
上述图形轮廓优化装置,在获取到对栅格数据进行矢量化所得到的矢量数据之后,从矢量数据中,提取由至少三个图形轮廓相交而成的特征点,针对每个图形轮廓,在遍历当前图形轮廓中目标轮廓线段的过程中,若目标轮廓线段上不存在特征点,则选取目标轮廓线段的中点,并基于中点与目标直线之间的距离对中点进行筛选,其中,每个图形轮廓由至少两条轮廓线段所形成,目标直线是依据当前图形轮廓上的中点和特征点中的至少一类点确定的,并依据当前图形轮廓上的特征点和经过筛选后的中点,对当前图形轮廓进行优化,直至完成每个图形轮廓的优化,使得优化后的图形轮廓更加平滑,从而提高了矢量数据对图形轮廓的表征能力。
在一个实施例中,特征点提取模块1504,还用于:从矢量数据中,提取各个图形区域所对应的图形轮廓;针对每个图形轮廓,遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取候选点;确定每个候选点对应的图形轮廓数量;将图形轮廓数量为三个以上的候选点确定为特征点。
在一个实施例中,候选点包括目标轮廓线段上的端点和内部点;特征点提取模块1504,还用于:针对每个图形轮廓,遍历当前图形轮廓中目标轮廓线段的端点;及,按照预设空间步长遍历当前图形轮廓中的目标轮廓线段的内部点;分别将端点和内部点确定为候选点。
在一个实施例中,特征点提取模块1504,还用于:创建坐标点哈希表,坐标点哈希表用于存储坐标点对应的键值对;基于候选点的坐标值生成候选点的索引;若坐标点哈希表中不存在与索引匹配的目标键,将候选点的索引作为键、候选点的图形轮廓数量作为值添加到坐标点哈希表;若坐标点哈希表中存在与索引匹配的目标键,对坐标点哈希表中目标键的值进行更新。
在一个实施例中,特征点提取模块1504,还用于:获取遍历当前图形轮廓中的目标轮廓线段时所得到的坐标点哈希表;基于坐标点哈希表所存储的键值对,确定各候选点对应的图形轮廓数量。
在一个实施例中,中点确定模块1506,还用于:若目标轮廓线段上的端点不是特征点,则确定轮廓线段上的内部点是否为特征点;若轮廓线段上的内部点不是特征点,则选取目标轮廓线段的中点。
在一个实施例中,中点筛选模块1508,还用于:对中点和特征点进行集合划分,得到坐标点集合;将坐标点集合中起始坐标点和结束坐标点所在直线确定为目标直线;确定坐标点集合中各中点到目标直线的距离;若最大的距离不大于距离阈值,则将坐标点集合中的中点删除;若最大的距离大于距离阈值,则保留最大的距离对应的中点,并根据最大的距离对应的中点确定子坐标点集合和子目标直线,以基于对子坐标集合中的中点到子目标直线的距离,对子目标集合中的中点进行筛选。
在一个实施例中,中点筛选模块1508,还用于:若最大的距离对应的中点为至少两个,则对最大的距离对应的中点进行排序,得到排序结果;从排序结果中选取目标中点,并将目标中点进行保留。
在一个实施例中,目标直线包括第一目标直线和第二目标直线;第一目标直线是基于特征点确定的;第二目标直线是基于中点或中点与特征点确定的;中点筛选模块1508,还用于:将当前图形轮廓的相邻两个特征点所在的直线确定为第一目标直线,获取第一目标直线所对应的第一中点集合;相邻两个特征点包括第一特征点和第二特征点;确定第一中点集合内各中点到对应的第一目标直线的距离;若最大的距离不大于预设距离阈值,则将第一中点集合对应的中点进行删除;若最大的距离大于预设距离阈值,则保留最大的距离对应的目标中点,并根据第一特征点、目标中点和第二特征点确定第二目标直线,以基于中点与第二目标直线的距离对中点进行筛选。
在一个实施例中,如图16所示,装置还包括:特征点列表生成模块1512、轮廓点列表创建模块1514和数据添加模块1516,其中:
特征点列表生成模块1512,用于基于特征点的坐标生成特征点列表;
轮廓点列表创建模块1514,用于创建轮廓点列表,轮廓点列表用于存储优化后的图形轮廓中轮廓线段的端点;
数据添加模块1516,用于针对每个图形轮廓,按照当前图形轮廓中各轮廓线段间的连接顺序,遍历当前图形轮廓中各轮廓线段的端点;若目标轮廓线段的第一端点和第二端点中的至少一个存在于特征点列表,则将存在于特征点列表的端点添加至轮廓点列表;若目标轮廓线段的第一端点和第二端点均不存在于特征点列表,则将目标轮廓线段中的目标内部点添加至轮廓点列表。
在一个实施例中,数据添加模块1516,还用于:按照预设空间步长遍历当前图形轮廓中的目标轮廓线段,以从目标轮廓线段中提取内部点;若内部点中的目标内部点存在于特征点列表,则将目标内部点添加至轮廓点列表;若内部点均不存在于特征点列表,则确定目标轮廓线段的中点,并将目标轮廓线段的中点作为目标内部点添加至轮廓点列表。
在一个实施例中,目标轮廓线段的中点和特征点存储于轮廓点列表;中点筛选模块1508,还用于:确定中点与目标直线之间的距离;若最大的距离不大于距离阈值,确定对中点进行删除,并在轮廓点列表中将中点删除;若确定最大的距离大于距离阈值,确定对最大的距离对应的中点进行保留,则将中点保留在轮廓点列表中,并根据最大的距离对应的中点对其他中点进行筛选,以得到更新后的轮廓点列表;
轮廓优化模块1510,还用于:根据更新后的轮廓点列表中所存储的特征点和筛选后的中点,生成当前图形轮廓对应的优化后图形轮廓。
关于图形轮廓优化装置的具体限定可以参见上文中对于图形轮廓优化方法的限定,在此不再赘述。上述图形轮廓优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储矢量数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图形轮廓优化方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图18所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图形轮廓优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图17或图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种图形轮廓优化方法,其特征在于,所述方法包括:
获取对栅格数据进行矢量化所得到的矢量数据;
从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
2.根据权利要求1所述的方法,其特征在于,所述从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点,包括:
从所述矢量数据中,提取各个图形区域所对应的图形轮廓;
针对每个所述图形轮廓,遍历当前所述图形轮廓中的目标轮廓线段,以从所述目标轮廓线段中提取候选点;
确定每个所述候选点对应的图形轮廓数量;
将所述图形轮廓数量为三个以上的候选点确定为特征点。
3.根据权利要求2所述的方法,其特征在于,所述候选点包括目标轮廓线段上的端点和内部点;所述针对每个所述图形轮廓,遍历当前所述图形轮廓中的目标轮廓线段,以从所述目标轮廓线段中提取候选点,包括:
针对每个所述图形轮廓,遍历当前所述图形轮廓中目标轮廓线段的端点;以及,按照预设空间步长遍历当前所述图形轮廓中的目标轮廓线段的内部点;
分别将所述端点和所述内部点确定为候选点。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
创建坐标点哈希表,所述坐标点哈希表用于存储坐标点对应的键值对;
基于所述候选点的坐标值生成所述候选点的索引;
若所述坐标点哈希表中不存在与所述索引匹配的目标键,将所述候选点的索引作为键、所述候选点的图形轮廓数量作为值添加到所述坐标点哈希表;
若所述坐标点哈希表中存在与所述索引匹配的目标键,对所述坐标点哈希表中所述目标键的值进行更新。
5.根据权利要求4所述的方法,其特征在于,所述确定每个所述候选点对应的图形轮廓数量,包括:
获取遍历当前所述图形轮廓中的目标轮廓线段时所得到的坐标点哈希表;
基于所述坐标点哈希表所存储的键值对,确定各所述候选点对应的图形轮廓数量。
6.根据权利要求1所述的方法,其特征在于,所述若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点,包括:
若所述目标轮廓线段上的端点不是所述特征点,则确定所述轮廓线段上的内部点是否为特征点;
若所述轮廓线段上的内部点不是所述特征点,则选取所述目标轮廓线段的中点。
7.根据权利要求1所述的方法,其特征在于,所述基于所述中点与目标直线之间的距离对所述中点进行筛选,包括:
对所述中点和所述特征点进行集合划分,得到坐标点集合;
将所述坐标点集合中起始坐标点和结束坐标点所在直线确定为目标直线;
确定所述坐标点集合中各所述中点到所述目标直线的距离;
若最大的所述距离不大于距离阈值,则将所述坐标点集合中的中点删除;
若最大的所述距离大于所述距离阈值,则保留最大的所述距离对应的中点,并根据最大的所述距离对应的中点确定子坐标点集合和子目标直线,以基于对所述子坐标点集合中的中点到所述子目标直线的距离,对所述子坐标点集合中的中点进行筛选。
8.根据权利要求7所述的方法,其特征在于,所述保留最大的所述距离对应的中点,包括:
若最大的所述距离对应的中点为至少两个,则对最大的所述距离对应的中点进行排序,得到排序结果;
从所述排序结果中选取目标中点,并将所述目标中点进行保留。
9.根据权利要求1所述的方法,其特征在于,所述目标直线包括第一目标直线和第二目标直线;所述第一目标直线是基于所述特征点确定的;所述第二目标直线是基于中点或中点与特征点确定的;所述基于所述中点与目标直线之间的距离对所述中点进行筛选,包括:
将当前所述图形轮廓的相邻两个所述特征点所在的直线确定为第一目标直线,获取所述第一目标直线所对应的第一中点集合;所述相邻两个所述特征点包括第一特征点和第二特征点;
确定所述第一中点集合内各中点到对应的所述第一目标直线的距离;
若最大的所述距离不大于预设距离阈值,则将所述第一中点集合对应的中点进行删除;
若最大的所述距离大于预设距离阈值,则保留最大的所述距离对应的目标中点,并根据所述第一特征点、所述目标中点和所述第二特征点确定第二目标直线,以基于所述中点与第二目标直线的距离对所述中点进行筛选。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
基于所述特征点的坐标生成特征点列表;
创建轮廓点列表,所述轮廓点列表用于存储优化后的图形轮廓中轮廓线段的端点;
针对每个所述图形轮廓,按照当前所述图形轮廓中各轮廓线段间的连接顺序,遍历当前所述图形轮廓中各轮廓线段的端点;
若所述目标轮廓线段的第一端点和第二端点中的至少一个存在于所述特征点列表,则将存在于所述特征点列表的端点添加至所述轮廓点列表;
若所述目标轮廓线段的第一端点和第二端点均不存在于所述特征点列表,则将所述目标轮廓线段中的目标内部点添加至所述轮廓点列表。
11.根据权利要求10所述的方法,其特征在于,所述将所述目标轮廓线段中的目标内部点添加至所述轮廓点列表,包括:
按照预设空间步长遍历当前所述图形轮廓中的目标轮廓线段,以从所述目标轮廓线段中提取内部点;
若所述内部点中的目标内部点存在于所述特征点列表,则将所述目标内部点添加至所述轮廓点列表;
若所述内部点均不存在于所述特征点列表,则确定所述目标轮廓线段的中点,并将所述目标轮廓线段的中点作为目标内部点添加至所述轮廓点列表。
12.根据权利要求11所述的方法,其特征在于,所述目标轮廓线段的中点和所述特征点存储于所述轮廓点列表;所述基于所述中点与目标直线之间的距离对所述中点进行筛选,包括:
确定所述中点与目标直线之间的距离;
若最大的所述距离不大于距离阈值,确定对所述中点进行删除,并在所述轮廓点列表中将所述中点删除;若确定最大的所述距离大于所述距离阈值,确定对最大的所述距离对应的中点进行保留,则将所述中点保留在所述轮廓点列表中,并根据最大的所述距离对应的中点对其他所述中点进行筛选,以得到更新后的轮廓点列表;
所述依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化,包括:
根据所述更新后的轮廓点列表中所存储的特征点和筛选后的中点,生成当前所述图形轮廓对应的优化后图形轮廓。
13.一种图形轮廓优化装置,其特征在于,所述装置包括:
矢量数据获取模块,用于获取对栅格数据进行矢量化所得到的矢量数据;
特征点提取模块,用于从所述矢量数据中,提取由至少三个图形轮廓相交而成的特征点;每个所述图形轮廓由至少两条轮廓线段所形成;
中点确定模块,用于针对每个所述图形轮廓,在遍历当前所述图形轮廓中目标轮廓线段的过程中,若所述目标轮廓线段上不存在所述特征点,选取所述目标轮廓线段的中点;
中点筛选模块,用于基于所述中点与目标直线之间的距离对所述中点进行筛选;所述目标直线是依据当前所述图形轮廓上的中点和特征点中的至少一类点确定的;
轮廓优化模块,用于依据当前所述图形轮廓上的所述特征点和经过筛选后的中点,对当前所述图形轮廓进行优化,直至完成每个所述图形轮廓的优化。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202111046636.6A 2021-09-08 2021-09-08 图形轮廓优化方法、装置、计算机设备和存储介质 Active CN113487523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111046636.6A CN113487523B (zh) 2021-09-08 2021-09-08 图形轮廓优化方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111046636.6A CN113487523B (zh) 2021-09-08 2021-09-08 图形轮廓优化方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113487523A true CN113487523A (zh) 2021-10-08
CN113487523B CN113487523B (zh) 2021-12-07

Family

ID=77947300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111046636.6A Active CN113487523B (zh) 2021-09-08 2021-09-08 图形轮廓优化方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113487523B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115630191A (zh) * 2022-12-22 2023-01-20 成都纵横自动化技术股份有限公司 基于全动态视频的时空数据集检索方法、装置及存储介质
CN116309442A (zh) * 2023-03-13 2023-06-23 北京百度网讯科技有限公司 挑拣信息的确定方法及目标对象的挑拣方法
CN117315288A (zh) * 2023-11-28 2023-12-29 图兮数字科技(北京)有限公司 目标对象的轮廓确定方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070257909A1 (en) * 2006-05-05 2007-11-08 Microsoft Corporation Direct inset beveling of geometric figures
CN109872287A (zh) * 2019-01-31 2019-06-11 上海华虹宏力半导体制造有限公司 Sem图像轮廓线图的修正方法
CN112052839A (zh) * 2020-10-10 2020-12-08 腾讯科技(深圳)有限公司 图像数据处理方法、装置、设备以及介质
CN112215864A (zh) * 2020-11-05 2021-01-12 腾讯科技(深圳)有限公司 电子地图的轮廓处理方法、装置及电子设备
CN113160223A (zh) * 2021-05-17 2021-07-23 深圳中科飞测科技股份有限公司 轮廓的确定方法、确定装置、检测设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070257909A1 (en) * 2006-05-05 2007-11-08 Microsoft Corporation Direct inset beveling of geometric figures
CN109872287A (zh) * 2019-01-31 2019-06-11 上海华虹宏力半导体制造有限公司 Sem图像轮廓线图的修正方法
CN112052839A (zh) * 2020-10-10 2020-12-08 腾讯科技(深圳)有限公司 图像数据处理方法、装置、设备以及介质
CN112215864A (zh) * 2020-11-05 2021-01-12 腾讯科技(深圳)有限公司 电子地图的轮廓处理方法、装置及电子设备
CN113160223A (zh) * 2021-05-17 2021-07-23 深圳中科飞测科技股份有限公司 轮廓的确定方法、确定装置、检测设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115630191A (zh) * 2022-12-22 2023-01-20 成都纵横自动化技术股份有限公司 基于全动态视频的时空数据集检索方法、装置及存储介质
CN116309442A (zh) * 2023-03-13 2023-06-23 北京百度网讯科技有限公司 挑拣信息的确定方法及目标对象的挑拣方法
CN116309442B (zh) * 2023-03-13 2023-10-24 北京百度网讯科技有限公司 挑拣信息的确定方法及目标对象的挑拣方法
CN117315288A (zh) * 2023-11-28 2023-12-29 图兮数字科技(北京)有限公司 目标对象的轮廓确定方法、装置、电子设备及存储介质
CN117315288B (zh) * 2023-11-28 2024-02-13 图兮数字科技(北京)有限公司 目标对象的轮廓确定方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113487523B (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113487523B (zh) 图形轮廓优化方法、装置、计算机设备和存储介质
Richter et al. Concepts and techniques for integration, analysis and visualization of massive 3D point clouds
Chebbi et al. Improvement of satellite image classification: Approach based on Hadoop/MapReduce
CN109241846A (zh) 遥感影像的时空变化估测方法、装置与存储介质
CN106355210B (zh) 基于深度神经元响应模式的绝缘子红外图像特征表达方法
GB2534903A (en) Method and apparatus for processing signal data
CN110956213A (zh) 遥感影像特征库生成、遥感影像检索方法及装置
Robles et al. The shape of an image: A study of mapper on images
Peters Quadtree-and octree-based approach for point data selection in 2D or 3D
CN114820975B (zh) 基于全要素参数符号化的三维场景仿真重构系统及方法
Nousias et al. A saliency aware CNN-based 3D model simplification and compression framework for remote inspection of heritage sites
Azri et al. Review of spatial indexing techniques for large urban data management
CN115952252B (zh) 基于动态渲染的语义瓦片数据处理方法、装置和电子设备
Babaee et al. Assessment of dimensionality reduction based on communication channel model; application to immersive information visualization
CN110991562A (zh) 一种基于物种构成特征的动物类群地理区划方法
CN111080080A (zh) 一种村镇地质灾害风险预估方法及系统
Lee et al. Taxonomy of space tessellation
CN116012626A (zh) 建筑立面图像的素材匹配方法、装置、设备和存储介质
Murase et al. On-demand generalization of guide maps with road networks and category-based web search results
CN113256793A (zh) 一种三维数据处理方法及系统
CN115048473A (zh) 城市信息模型人工智能服务方法及系统
Tang et al. Research on the Network Map Service Technology of Remote Sensing Image Intelligent Conversion Based on Gan Model
Tian et al. An approach to generate spatial Voronoi Treemaps for points, lines, and polygons
Fellegara et al. Analysis of geolocalized social networks based on simplicial complexes
CN113313101B (zh) 一种建筑物轮廓自动聚合方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40053585

Country of ref document: HK