CN112132928A - 矢量图的处理方法、装置、电子设备和计算机可读介质 - Google Patents

矢量图的处理方法、装置、电子设备和计算机可读介质 Download PDF

Info

Publication number
CN112132928A
CN112132928A CN202010991824.5A CN202010991824A CN112132928A CN 112132928 A CN112132928 A CN 112132928A CN 202010991824 A CN202010991824 A CN 202010991824A CN 112132928 A CN112132928 A CN 112132928A
Authority
CN
China
Prior art keywords
line segment
target
deformation
vertex
node
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.)
Pending
Application number
CN202010991824.5A
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010991824.5A priority Critical patent/CN112132928A/zh
Publication of CN112132928A publication Critical patent/CN112132928A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种矢量图的处理方法、装置、电子设备和计算机可读介质,涉及图形处理的技术领域,包括:获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图,本申请缓解了现有的矢量图编辑方法操作复杂且处理效率低的技术问题。

Description

矢量图的处理方法、装置、电子设备和计算机可读介质
技术领域
本发明涉及图形处理的技术领域,尤其是涉及一种矢量图的处理方法、装置、电子设备和计算机可读介质。
背景技术
矢量图是计算机图形学中一种表示图像的常用格式。不同于使用像素表示图像信息的位图,矢量图使用点、直线、圆或者多边形等基于数学方程的几何图来表示图像。因为它使用的是参数化的图元来表示信息,所以相比于位图,它具有占用存储空间小、支持无限放大不失真、可采取高分辨率印刷等优点,缺点是它对于色彩丰富的逼真图像表现效果较差。因为以上优点,矢量图被广泛应用于图形渲染、多媒体娱乐、工业制图等领域。
目前有很多的软件支持矢量图的创建和编辑。例如Adobe Illustrator、CorelDraw Graphics Suite、Inkscape以及国产的软件图怪兽、365编辑器等。它们有的是通用的矢量图编辑软件,有的则专注于某一项领域,用户通过它们创作出各式各样的图像,如图1所示。
但是,目前的矢量图创作软件也存在着操作复杂、流程繁琐、不易于编辑等缺点。例如,给定一副现有的矢量图,如果用户想对它进行编辑,就需要对图中待改动的部分一个一个地变动矢量图中的图元,费时费力,大大降低了设计的效率。
发明内容
有鉴于此,本发明的目的在于提供一种矢量图的处理方法、装置、电子设备和计算机可读介质,以缓解了现有的矢量图编辑方法操作复杂且处理效率低的技术问题。
第一方面,本发明实施例提供了一种矢量图的处理方法,包括:获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
进一步地,所述待聚合图元为多个待聚类线段;将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段包括:在所述多个待聚类线段中确定第一线段;所述第一线段的第一顶点与目标坐标点之间的距离最小,所述目标坐标点的横坐标值为所述多个待聚类线段所有顶点的横坐标值中的最小横坐标值,所述目标坐标点的纵坐标值为所述多个待聚类线段所有顶点的纵坐标值中的最小纵坐标值;从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段;将所述第一线段和所述多个第二线段首尾连接得到所述目标线段。
进一步地,从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段包括:将所述第一线段作为初始线段,反复执行下述步骤,直至不再生成新的第二线段:从所述初始线段开始,沿着所述初始线段的前进方向在所述多个待聚类线段中确定至少一个第三线段,其中,每个第三线段的顶点与所述第一线段相交,或者,所述第三线段的顶点与所述第一线段之间的垂直距离小于预设距离;若所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求,则基于所述至少一个第三线段生成第二线段,并将生成的第二线段作为所述初始线段,返回继续执行上述步骤;若所述至少一个第三线段与所述初始线段之间的方向差不满足预设方向要求,则将已生成的全部第二线段确定为聚类得到的所述多个第二线段。
进一步地,基于所述至少一个第三线段生成第二线段包括:将每个第三线段的方向进行均值计算,得到目标方向,并将所述目标方向确定为当前时刻第二线段的方向;将上一时刻确定出的第二线段的终点确定为当前时刻第二线段的起点,将所述至少一个第三线段所包含的所有顶点中距离所述上一时刻确定出的第二线段的起点距离最远的顶点确定为当前时刻第二线段的终点。
进一步地,通过下述方式判断所述至少一个第三线段与所述初始线段之间的方向差是否满足预设方向要求包括:计算每个所述第三线段与所述初始线段之间的方向差,得到至少一个方向差;若所述至少一个方向差中小于预设阈值的方向差的数量小于预设数量,则确定所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求。
进一步地,将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段包括:若所述待聚合图元为曲线,则对所述待聚合图元进行离散化处理,离散化得到多个首尾相连接的线段;将所述多个首尾相连接的线段中相同语义的线段进行聚类处理,聚类之后得到所述目标线段。
进一步地,响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图包括:若所述变形指令为对第二顶点进行变形的指令,则获取预先在所述目标线段中设置的多个变形节点;其中,所述第二顶点为所述目标线段中的顶点,且为设置对应位置约束信息的顶点;计算每个变形节点的旋转矩阵和平移变换矩阵;根据每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息,以实现对所述目标线段进行变形处理。
进一步地,计算每个所述变形节点的旋转矩阵和平移变换矩阵包括:构建目标能量矩阵,其中,所述目标能量矩阵为关于每个变形节点的旋转矩阵和平移变换矩阵的能量矩阵;构建目标约束条件,其中,所述目标约束条件为基于以下至少一种约束条件确定的:刚体约束条件、连贯约束条件和位置约束条件;所述刚体约束条件用于表征每个变形节点的旋转矩阵的刚体误差之和;所述连贯约束条件用于表征每个变形节点的相邻变形节点对自身的影响;所述位置约束条件用于表征所述目标线段中每个顶点变形之后的位置信息和预设顶点位置信息之间差值的总和;根据所述目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵。
进一步地,构建目标约束条件包括:通过公式
Figure BDA0002690482370000041
构建所述目标约束条件,其中,Erot表示所述刚体约束条件,Ereg表示所述连贯约束条件,Econ表示所述位置约束条件,wrot为刚体约束条件Erot的权重值,wreg为连贯约束条件Ereg的权重值,wcon为位置约束条件Econ的权重值。
进一步地,所述刚体约束条件的计算公式为:
Figure BDA0002690482370000042
其中,Rot(R)=(c1·c2)2+(c1·c1-1)2+(c2·c2-1)2,n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,Erot表示n个变形节点的旋转矩阵的刚体误差之和;所述连贯约束条件的计算公式为:
Figure BDA0002690482370000043
其中,Gj为所述n个变形节点中的第j个变形节点,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息;所述位置约束条件的计算公式为:
Figure BDA0002690482370000051
Figure BDA0002690482370000052
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
进一步地,构建目标能量矩阵包括:通过目标公式
Figure BDA0002690482370000053
构建所述目标能量矩阵,其中,
Figure BDA0002690482370000054
Figure BDA0002690482370000055
n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息,
Figure BDA0002690482370000056
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
进一步地,根据目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵包括:为每个变形节点的旋转矩阵和平移变换矩阵设置初始值;将所述初始值代入至所述目标能量矩阵中,得到中间能量矩阵和所述中间能量矩阵的雅可比矩阵;根据所述中间能量矩阵和所述雅可比矩阵构建目标方程组,并对所述目标方程组进行迭代计算,并在满足迭代停止条件时,得到迭代计算结果;根据所述迭代计算结果确定每个所述变形节点的旋转矩阵和平移变换矩阵。
进一步地,所述方法还包括:在所述多个变形节点中确定与每个顶点所关联的至少一个目标变形节点,其中,所述至少一个目标变形节点为所述多个变形节点中与对应顶点距离最近的至少一个变形节点;为每个顶点所关联的至少一个目标变形节点确定目标权重。
进一步地,根据所述每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息包括:根据公式
Figure BDA0002690482370000061
计算所述目标线段中每个顶点变形之后的位置信息,其中,wj(vi)表示所述目标线段中第i个顶点vi所关联的第j个目标变形节点的目标权重,Rj表示第i个顶点vi所关联的第j个目标变形节点的旋转矩阵,gj表示第i个顶点vi所关联的第j个目标变形节点在变形之前的位置信息,tj表示第i个顶点vi所关联的第j个目标变形节点的平移变换矩阵。
第二方面,本发明实施例还提供了一种矢量图的处理装置,包括:获取单元,用于获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;聚类处理单元,用于将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;变形单元,用于响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的方法的步骤。
第四方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面中任一项所述的方法的步骤。
在本发明实施例中,首先,获取待编辑矢量图,并在待编辑矢量图中确定待聚合图元,然后,将待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,最后,响应于目标线段的变形指令,对目标线段进行变形处理,得到编辑之后矢量图。通过上述描述可知,在本申请中,通过将语义相同的图元聚类为一条目标线段之后,在对该目标线段进行编辑的方式,能够快速的对矢量图进行编辑,相对于现有的矢量图编辑方法,缩短了图元的编辑时间,提高了矢量图的编辑效率,进而缓解了现有的矢量图编辑方法操作复杂且处理效率低的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有的矢量图编辑软件的操作界面图;
图2是根据本发明实施例的一种矢量图的处理方法的流程图;
图3是根据本发明实施例的一种贝赛尔曲线的示意图;
图4是根据本发明实施例的一种待聚类图元的示意图;
图5(a)是根据本发明实施例的另一种待聚类图元的示意图;
图5(b)是根据本发明实施例的一种待聚类图元聚类之后得到的目标线段的示意图;
图6是根据本发明实施例的一种图元融合算法的流程图;
图7(a)是根据本发明实施例的一种目标线段的变形结果的效果示意图;
图7(b)是根据本发明实施例的另一种目标线段的变形结果的效果示意图;
图7(c)是根据本发明实施例的又一种目标线段的变形结果的效果示意图;
图8是根据本发明实施例的一种矢量图的处理装置的示意图;
图9是根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
根据本发明实施例,提供了一种矢量图的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种矢量图的处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线。
矢量图的图像由基本的图形元素所构成,一般主要包含线段和曲线,这些基本图形元素被称作图元。矢量图中线段和曲线的具体表示方式如下:
1、一条线段由两个顶点连接所构成,矢量图中包含多个线段,且矢量图中存储了每一条线段的两个顶点的位置。
2、一条曲线一般用贝塞尔曲线来表示。矢量图中存储了贝塞尔曲线的控制点。如图3所示展示了一个由四个顶点控制的贝赛尔曲线。
在本申请中,可以通过矢量图编辑软件获取用户导入的待编辑矢量图。在导入待编辑矢量图之后,用户可以通过矢量图编辑软件的交互界面选择待聚合图元,从而矢量图编辑软件根据用户所选择的图元确定待聚合图元。其中,用户所选择的图元可以为多条线段,还可以为曲线,本申请对此不作具体限定。
步骤S204,将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元。
在本申请中,矢量图编辑软件在确定待聚合图元之后,就可以将待聚合图元中语义相同的图元进行聚类处理。
具体地,如果一堆短线段组成了一条长线,矢量图编辑软件的使用者认为这些短线应当是一个整体,是长线的一部分,这些短线段即为语义相同的图元。但是,矢量图编辑软件不知道这是一条长线,因此需要将所述待聚合图元中语义相同的图元进行聚类处理,从而合成一个整体进行编辑。
在将待聚合图元中语义相同的图元进行聚类处理之前,首先需要读取待编辑矢量图中的图元信息。其中,如果待聚合图元为线段,那么图元信息包含每条线段的顶点位置信息,如果待聚合图元为曲线,那么图元信息可以为该曲线的控制点的位置信息。在本申请中,可以通过开源的代码库来实现对矢量图的读取,例如svglib等。
需要说明的是,目前大部分的图元编辑软件还是对单个图元进行编辑,例如,直线的拉伸、位移,曲线的拖动等。但是有的时候,设计师希望能够对矢量图语义上一致的图元进行全局编辑,而往往载入的矢量图的各个图元是分散且混乱的,这就需要一种方法将语义一致的图元融合到一起,以方便接下来对它进行整体上的编辑。如图4所示,该矢量图中有很多的线段,在图4中表示为不相同的线段,但它们实际上完全可以合成一个整体的线条,设计师再对这条合成后的线进行编辑,这样可以大大节省编辑的时间,而不必一个个地删除和调整冗余线段。
步骤S206,响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
在本申请中,用户可以通过矢量图编辑软件对目标线段进行变形处理,矢量图编辑软件根据该变形指令,对目标线段进行编辑,从而得到编辑之后的矢量图。
在本发明实施例中,首先,获取待编辑矢量图,并在待编辑矢量图中确定待聚合图元,然后,将待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,最后,响应于目标线段的变形指令,对目标线段进行变形处理,得到编辑之后矢量图。通过上述描述可知,在本申请中,通过将语义相同的图元聚类为一条目标线段之后,在对该目标线段进行编辑的方式,能够快速的对矢量图进行编辑,相对于现有的矢量图编辑方法,缩短了图元的编辑时间,提高了矢量图的编辑效率,进而缓解了现有的矢量图编辑方法操作复杂且处理效率低的技术问题。
从上面的分析可以得知,图元的聚类是为了将语义一致的图元聚合到一起,从而删除冗余信息,以方便之后的编辑。为此,本申请提出了图元融合算法,下面将详细介绍该融合算法。
通过上述描述可知,在本申请中,在导入待编辑矢量图之后,用户可以通过矢量图编辑软件的交互界面选择待聚合图元,从而矢量图编辑软件根据用户所选择的图元确定待聚合图元。其中,用户所选择的图元可以为多条线段,还可以为曲线。
若所述待聚合图元为曲线,则对所述待聚合图元进行离散化处理,离散化得到多个首尾相连接的线段;然后,将所述多个首尾相连接的线段中相同语义的线段进行聚类处理,聚类之后得到所述目标线段。
例如,若选中的待聚合图元中存在贝塞尔曲线,则将贝塞尔曲线离散为一个一个首尾相接的线段。这样,所选中的所有待聚合图元就都是线段的形式,便于之后统一处理。贝塞尔曲线的离散化需要将曲线公式中的参数t按照一定步长不断递增,依次生成相应的离散顶点并连接。
在本申请中,在确定出待聚合图元之后,就可以将待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段。
在一个可选的实施方式中,在待聚合图元为多个待聚类线段的情况下,步骤S204,将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段包括如下过程:
步骤S2041,在所述多个待聚类线段中确定第一线段;所述第一线段的第一顶点与目标坐标点之间的距离最小,所述目标坐标点的横坐标值为所述多个待聚类线段所有顶点的横坐标值中的最小横坐标值,所述目标坐标点的纵坐标值为所述多个待聚类线段所有顶点的纵坐标值中的最小纵坐标值;
步骤S2042,从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段;
步骤S2043,将所述多个第二线段首尾连接得到所述目标线段。
在本申请中,可以根据读取到的图元信息在多个待聚类线段所包含的全部顶点中确定位于最左下的顶点和该顶点所在的线段,其中,该位于最左下的顶点即为上述步骤S2041中的第一顶点,该第一顶点所在的线段即为第一线段,记为ls,其中,可以通过下述所描述的方式确定位于最左下的顶点:
通过上述描述可知,在图元信息中包含待聚类图元所有的顶点的位置信息,首先设定在二维空间中x轴正方向向右,y轴正方向向上,然后确定目标坐标点的坐标为(xmin,ymin),其中,xmin和ymin分别指用户选中的待聚类图元的顶点中x、y坐标的最小值,那么最左下的顶点(即,第一顶点)就是距离目标坐标点(xmin,ymin)最近的顶点,该第一顶点所属的线段就是最左下的线段,即第一线段。
接下来,从第一线段的第一顶点开始沿着第一线段的前进方向对多个待聚类线段进行聚类处理,聚类得到多个第二线段。其中,多个第二线段可以通过集合G表示。
在一个可选的实施方式中,在执行上述步骤S2042时,可以将所述第一线段作为初始线段,反复执行下述步骤,直至不再生成新的第二线段,具体包括如下过程:
步骤1、从所述初始线段开始,沿着所述初始线段的前进方向在所述多个待聚类线段中确定至少一个第三线段,其中,每个第三线段的顶点与所述第一线段相交,或者,所述第三线段的顶点与所述第一线段之间的垂直距离小于预设距离;
步骤2、若所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求,则基于所述至少一个第三线段生成第二线段,并将生成的第二线段作为所述初始线段,返回继续执行上述步骤;
步骤3、若所述至少一个第三线段与所述初始线段之间的方向差不满足预设方向要求,则将已生成的全部第二线段确定为聚类得到的所述多个第二线段。
具体地,在本申请中,在确定出第一线段之后,首先将第一线段添加到集合G中。然后,从选中的第一线段的第一顶点v出发,沿着该第一顶点所属线段搜寻与其所属的第一线段相交或者距离相近的顶点。同时,记录下每个顶点所属的线段,即为至少一个第三线段,然后,将至少一个第三线段的集合记为L={l1,l2,…ln}。
接下来,观察上一步记录下的线段集合L中每一条第三线段与初始线段之间的方向差。具体地,可以判断所述至少一个第三线段与所述初始线段之间的方向差是否满足预设方向要求。若方向差不满足预设方向要求,则表明这些无法合成一条统一的线,算法返回集合G;若方向差满足预设方向要求,则根据这些第三线段生成新的第二线段。
具体地,在本申请中,可以计算每个所述第三线段与所述初始线段之间的方向差,得到至少一个方向差;若所述至少一个方向差中小于预设阈值的方向差的数量小于预设数量,则确定所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求,否则,不满足预设方向要求。
如果至少一个第三线段与初始线段之间的方向差满足预设方向要求,则基于至少一个第三线段生成新的第二线段lnew,并将新的第二线段lnew作为初始线段ls,回到步骤1进一步搜寻,直到不能再生成新的第二线段为止。
如果至少一个第三线段与初始线段之间的方向差不满足预设方向要求,则返回集合G,即将已生成的全部第二线段确定为聚类得到的所述多个第二线段。
在本申请一个可选的实施方式中,可以通过下述方式生成第二线段,具体包括:
1、将每个第三线段的方向进行均值计算,得到目标方向,并将所述目标方向确定为当前时刻第二线段的方向;
2、将上一时刻确定出的第二线段的终点确定为当前时刻第二线段的起点,将所述至少一个第三线段所包含的所有顶点中距离所述上一时刻确定出的第二线段的起点距离最远的顶点确定为当前时刻第二线段的终点。
具体地,在本申请中,可以将这些第三线段的方向进行平均,得到目标方向,并将该目标方向确定为新的第二线段lnew的方向。然后,确定新的第二线段lnew的起点和终点,例如,lnew的起点是初始线段ls(即,上一时刻确定出的第二线段)的终点,lnew的终点则取L集合(即,至少一个第三线段)中与初始线段ls(即,上一时刻确定出的第二线段)交点距离最远的顶点。
通过上述描述可知,在本申请中,根据上述所描述的算法,根据用户选中的待聚合图元,将这些待聚合图元合并为一条整体的线条,即目标线段,该线条由一段段的线段构成(即,多个第二线段),为之后的编辑做好了铺垫。如图5(a)至5(b)所示,5(a)图是处理前的效果,不同的线段排布杂乱无章,经过算法处理后,将其整合为统一的线条,整合之后的目标线段如图5(b)所示。
图6是根据本发明实施例的一种图元融合算法的流程图,如图6所示,该算法包括如下步骤:
步骤S601,获取待编辑矢量图,并在待编辑矢量图中确定待聚合图元;
步骤S602,若待聚合图元为曲线,则对待聚合图元进行离散化处理;
步骤S603,设定聚类图元集合G;
步骤S604,在多个待聚类线段中确定位于最左下位置顶点,并确定该顶线所在的线段ls,即上述步骤中的第一线段;
步骤S605,将线段ls添加到聚类图元集合G中;
步骤S606,从最左下位置顶点出发,沿着最左下位置顶点所属线段搜寻与其线段相交或者距离相近的顶点,并记录每个顶点所属的线段,得到线段集合L;
步骤S607,判断线段集合L是否为空;若否,则执行步骤S608;否则结束流程;
步骤S608,判断线段集合L中的线段与线段ls之间的方向差是否满足预设方向要求;若满足,则执行步骤S609;否则结束流程;
步骤S609,根据线段集合L中线段生成新的线段lnew(即,上述第二线段),并将新的线段lnew作为ls,并返回执行步骤S605。
在本申请中,在按照上述所描述的过程将待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段之后,就可以响应于目标线段的变形指令,对目标线段进行变形处理,得到编辑之后矢量图,下面将具体介绍该变形过程。
在将待聚类图元合并为一条线段之后,接下来需要设计一种变形算法,帮助用户能够方便地对该线段进行变形。该算法要求能够很自然地和用户期望的变形效果所吻合,并且用户可以随时地拖动线条中的节点进行变形,基于此,在本申请中,综合考虑了变形过程中物体的刚体性、运动的连贯性以及交互性,具有变形结果自然、直观、易于交互和方便实现的优点,将嵌入式变形算法作为变形算法。
在本申请中,首先采样生成变形图。具体地,在本申请中,沿着生成的目标线段进行均匀采样,生成n个变形节点Gi(i∈[1,n],n可以设置为10),相邻的变形节点之间拓扑相连,得到变形图。
在得到变形图之后,就可以设置权重值。具体地,对每个变形节点,可以沿着目标线段的前进方向,寻找多个(例如,四个)距离其最近的目标线段上的顶点作为该变形节点所影响的顶点。然后,在所述多个变形节点中确定与每个顶点所关联的至少一个目标变形节点,其中,所述至少一个目标变形节点为所述多个变形节点中与对应顶点距离最近的至少一个变形节点;进而为每个顶点所关联的至少一个目标变形节点确定目标权重。
具体地,在本申请中,可以根据距离确定上述所描述的目标权重,具体计算公式不限,但是需要保证距离越近权重越大,且权重的和为1。
例如,为每个变形节点寻找了四个与其距离最近的顶点。假设,这四个顶点到变形顶点的距离分别为1、2、3、4,那么设四个权重w1=1.0-1/(4+0.1),w2=1.0-2/(4+0.1),w3=1.0-3/(4+0.1)、w4=1.0-4/(4+0.1)。然后,计算ws=w1+w2+w3+w4,再对四个权重重新计算得到目标权重:w1’=w1/ws,w2’=w2/ws,w3’=w3/ws,w4’=w4/ws,此时,可以保证w1’>w2’>w3’>w4’,且w1’+w2’+w3’+w4’=1。
在按照上述所描述的方式确定目标权重之后,用户就可以对目标线段进行变形。在变形之前,用户可以通过该矢量图编辑软件的交互界面设定想施加位置约束信息的顶点。之后,用户就可以在交互界面中拖动施加了位置约束信息的顶点。如果矢量图编辑软件检测到用户拖动了施加位置约束信息的顶点(即,第二顶点),则确定检测到变形指令,此时,响应于目标线段的变形指令,对目标线段进行变形处理,得到编辑之后矢量图。
在一个可选的实施方式中,步骤S206,响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图包括如下过程:
步骤S2061,若所述变形指令为对第二顶点进行变形的指令,则获取预先在所述目标线段中设置的多个变形节点;其中,所述第二顶点为所述目标线段中的顶点,且为设置对应位置约束信息的顶点;
步骤S2062,计算每个变形节点的旋转矩阵和平移变换矩阵;
具体地,在本申请中,实时求解每个变形结点Gi的旋转矩阵R和平移变换t。其中R是2×2的矩阵,t是2×1的矩阵。
步骤S2063,根据每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息,以实现对所述目标线段进行变形处理。
具体地,可以根据公式
Figure BDA0002690482370000171
计算所述目标线段中每个顶点变形之后的位置信息,其中,wj(vi)表示所述目标线段中第i个顶点vi所关联的第j个目标变形节点的目标权重,Rj表示第i个顶点vi所关联的第j个目标变形节点的旋转矩阵,gj表示第i个顶点vi所关联的第j个目标变形节点在变形之前的位置信息,tj表示第i个顶点vi所关联的第j个目标变形节点的平移变换矩阵。
在本申请中,对于目标线段中的每个顶点v,假定它一共被m个变形节点所影响,gj代表第j个变形节点在求解前的位置,那么可以据此计算出第i个顶点vi新的位置
Figure BDA0002690482370000172
其中,wj(vi)是Step2提到的顶点vi的权重,计算公式如上,此处不再赘述。
在一个可选的实施方式中,步骤S2062,计算每个所述变形节点的旋转矩阵和平移变换矩阵包括如下过程:
1、构建目标能量矩阵,其中,所述目标能量矩阵为关于每个变形节点的旋转矩阵和平移变换矩阵的能量矩阵。
具体地,可以通过目标公式
Figure BDA0002690482370000181
构建所述目标能量矩阵,其中,
Figure BDA0002690482370000182
Figure BDA0002690482370000183
n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息,
Figure BDA0002690482370000184
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
Figure BDA0002690482370000185
代表第i个变形节点Gi要填入最终能量计算矩阵的子项,
Figure BDA0002690482370000186
记录的是第i个变形节点Gi影响的k个变形节点的Ereg项约束。
2、构建目标约束条件,其中,所述目标约束条件为基于以下至少一种约束条件确定的:刚体约束条件、连贯约束条件和位置约束条件;所述刚体约束条件用于表征每个变形节点的旋转矩阵的刚体误差之和;所述连贯约束条件用于表征每个变形节点的相邻变形节点对自身的影响;所述位置约束条件用于表征所述目标线段中每个顶点变形之后的位置信息和预设顶点位置信息之间差值的总和。
其中,构建目标约束条件包括:
通过公式
Figure BDA0002690482370000191
构建所述目标约束条件,其中,Erot表示所述刚体约束条件,Ereg表示所述连贯约束条件,Econ表示所述位置约束条件,wrot为刚体约束条件Erot的权重值,wreg为连贯约束条件Ereg的权重值,wcon为位置约束条件Econ的权重值。其中,wrot,wreg和wcon的取值可以为:wrot=1,wreg=10,wcon=100。
一、刚体约束条件
为保证变形结果的刚体特性,对于变形节点的每一个旋转矩阵R(二维平面上的矩阵大小为2×2),设ci为矩阵的第i列向量,则定义Rot(R)=(c1·c2)2+(c1·c1-1)2+(c2·c2-1)2
基于此,所述刚体约束条件的计算公式为:
Figure BDA0002690482370000192
n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,Erot表示n个变形节点的旋转矩阵的刚体误差之和。
二、连贯约束条件
在变形的过程中,不能只考虑单个变形节点的位移,还要兼顾对相邻变形节点的位移影响,保证变形的连贯一致,定义Ereg来计算该项约束的偏差。
基于此,连贯约束条件的计算公式为:
Figure BDA0002690482370000193
其中,Gj为所述n个变形节点中的第j个变形节点,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息。
三、位置约束条件
用户可以通过矢量图编辑软件的界面交互来设定目标线条中顶点的位置,驱动程序求解优化方程。该项约束的目的是要尽可能使求解后顶点的位置接近用户通过界面设定的位置,因此,定义Econ来计算约束的误差。
基于此,位置约束条件的计算公式为:
Figure BDA0002690482370000201
Figure BDA0002690482370000202
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
3、根据所述目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵,具体包括如下过程:
步骤1、为每个变形节点的旋转矩阵和平移变换矩阵设置初始值。
假设,有n个变形节点,为每个变形节点的旋转矩阵R和位移矩阵t赋予初始值,R均设为单位矩阵,t均设为全零矩阵。将R1-n和t1-n的所有标量依次按序排列为向量x。
步骤2、将所述初始值代入至所述目标能量矩阵中,得到中间能量矩阵和所述中间能量矩阵的雅可比矩阵;具体地,可以将每一个变形节点的R和t代入到目标能量矩阵中,得到中间能量矩阵f和中间能量矩阵f的雅可比矩阵J。
步骤3、根据所述中间能量矩阵和所述雅可比矩阵构建目标方程组,并对所述目标方程组进行迭代计算,并在满足迭代停止条件时,得到迭代计算结果。其中,目标方程组表示为:JTJδ=JTf,δ是要求解的未知向量,长度和x相等,JT是雅可比矩阵的转置形式。此时,可以对目标方程组进行迭代计算。若
Figure BDA0002690482370000203
则确定出满足停止迭代条件,停止迭代,将x按照排列的顺序重新填回R1-n和t1-n,就得到了所有变形节点的旋转和位移矩阵,求解结束,否则执行下述过程:
xnew=x+δ,并将xnew继续作为新的x,返回步骤2进行求解,直至满足迭代停止条件。
步骤4、根据所述迭代计算结果确定每个所述变形节点的旋转矩阵和平移变换矩阵。
如图7展示了利用该算法对目标线段的变形效果。图7中小圆代表目标线段的顶点,细线代表组成目标线条的线段,大圆代表经过该算法构建出的变形节点,粗线代表连接变形节点的拓扑关系。方框代表用户设定的位置约束。初始状态下如图7(a)所示,用户通过上述所描述的变形算法构建了变形节点以及变形节点和目标线段的顶点之间的关系,并且在矢量图编辑软件的交互界面中通过左右两个框限制住了框内顶点的位置。此时在7(b)图中,用户将框拖至目标线段的上部分,代表用户施加了一个交互约束,要求该目标线段在之后的变形中必须使顶点v尽量逼近框所在的位置。根据该约束,利用上述所描述的求解算法进行求解,改变了变形节点和目标线段的位置,使得目标线段在尽可能保持原有形状的前提下,遵守了用户所施加的约束,将v顶点的位置移动到了方框的位置处,这就是7(c)图所展示的结果。根据实际试验,进行一次高斯-牛顿法迭代求解仅仅需要0.3秒,完全可以满足用户实时编辑的需求。
通过上述描述可知,在本申请中,包含对矢量图格式的解析、图元聚类和拟合、变形三步操作。首先,加载矢量图,对其格式进行解析,获得矢量图中所有的图元信息。然后,用户可以选择想去聚合的图元,程序将自动对矢量图中选中的图元进行聚类,最终拟合为一条条首尾相接的线段。最后,将要编辑的线作为一条二维空间的线段,设计了兼顾刚体性、运动的连贯性和交互性的能量方程并予以求解;用户只需要简单设定线段的位置约束,进行简单拖动,就可以得到自然、直观的变形结果。在变形求解的过程中,所需要的时间与计算量非常小,完全可以满足实时的要求。对用户来说操作简单,该算法所需时间较少,用户可以借助这些方法较为方便地编辑矢量图,提高了矢量图制作的效率。
实施例二:
本发明实施例还提供了一种矢量图的处理装置,该矢量图的处理装置主要用于执行本发明实施例上述内容所提供的矢量图的处理方法,以下对本发明实施例提供的矢量图的处理装置做具体介绍。
图8是根据本发明实施例的一种矢量图的处理装置的示意图,如图8所示,该矢量图的处理装置主要包括:
获取单元10,用于获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;
聚类处理单元20,用于将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;
变形单元30,用于响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
在本发明实施例中,首先,获取待编辑矢量图,并在待编辑矢量图中确定待聚合图元,然后,将待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,最后,响应于目标线段的变形指令,对目标线段进行变形处理,得到编辑之后矢量图。通过上述描述可知,在本申请中,通过将语义相同的图元聚类为一条目标线段之后,在对该目标线段进行编辑的方式,能够快速的对矢量图进行编辑,相对于现有的矢量图编辑方法,缩短了图元的编辑时间,提高了矢量图的编辑效率,进而缓解了现有的矢量图编辑方法操作复杂且处理效率低的技术问题。
可选地,在所述待聚合图元为多个待聚类线段的情况下;聚类处理单元用于:在所述多个待聚类线段中确定第一线段;所述第一线段的第一顶点与目标坐标点之间的距离最小,所述目标坐标点的横坐标值为所述多个待聚类线段所有顶点的横坐标值中的最小横坐标值,所述目标坐标点的纵坐标值为所述多个待聚类线段所有顶点的纵坐标值中的最小纵坐标值;从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段;将所述第一线段和所述多个第二线段首尾连接得到所述目标线段。
可选地,聚类处理单元还用于:将所述第一线段作为初始线段,反复执行下述步骤,直至不再生成新的第二线段:从所述初始线段开始,沿着所述初始线段的前进方向在所述多个待聚类线段中确定至少一个第三线段,其中,每个第三线段的顶点与所述第一线段相交,或者,所述第三线段的顶点与所述第一线段之间的垂直距离小于预设距离;若所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求,则基于所述至少一个第三线段生成第二线段,并将生成的第二线段作为所述初始线段,返回继续执行上述步骤;若所述至少一个第三线段与所述初始线段之间的方向差不满足预设方向要求,则将已生成的全部第二线段确定为聚类得到的所述多个第二线段。
可选地,聚类处理单元还用于:将每个第三线段的方向进行均值计算,得到目标方向,并将所述目标方向确定为当前时刻第二线段的方向;将上一时刻确定出的第二线段的终点确定为当前时刻第二线段的起点,将所述至少一个第三线段所包含的所有顶点中距离所述上一时刻确定出的第二线段的起点距离最远的顶点确定为当前时刻第二线段的终点。
可选地,聚类处理单元还用于通过下述方式判断所述至少一个第三线段与所述初始线段之间的方向差是否满足预设方向要求:计算每个所述第三线段与所述初始线段之间的方向差,得到至少一个方向差;若所述至少一个方向差中小于预设阈值的方向差的数量小于预设数量,则确定所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求。
可选地,聚类处理单元还用于:若所述待聚合图元为曲线,则对所述待聚合图元进行离散化处理,离散化得到多个首尾相连接的线段;将所述多个首尾相连接的线段中相同语义的线段进行聚类处理,聚类之后得到所述目标线段。
可选地,变形单元用于:若所述变形指令为对第二顶点进行变形的指令,则获取预先在所述目标线段中设置的多个变形节点;其中,所述第二顶点为所述目标线段中的顶点,且为设置对应位置约束信息的顶点;计算每个变形节点的旋转矩阵和平移变换矩阵;根据每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息,以实现对所述目标线段进行变形处理。
可选地,变形还单元用于:构建目标能量矩阵,其中,所述目标能量矩阵为关于每个变形节点的旋转矩阵和平移变换矩阵的能量矩阵;构建目标约束条件,其中,所述目标约束条件为基于以下至少一种约束条件确定的:刚体约束条件、连贯约束条件和位置约束条件;所述刚体约束条件用于表征每个变形节点的旋转矩阵的刚体误差之和;所述连贯约束条件用于表征每个变形节点的相邻变形节点对自身的影响;所述位置约束条件用于表征所述目标线段中每个顶点变形之后的位置信息和预设顶点位置信息之间差值的总和;根据所述目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵。
可选地,变形还单元用于:通过公式
Figure BDA0002690482370000241
构建所述目标约束条件,其中,Erot表示所述刚体约束条件,Ereg表示所述连贯约束条件,Econ表示所述位置约束条件,wrot为刚体约束条件Erot的权重值,wreg为连贯约束条件Ereg的权重值,wcon为位置约束条件Econ的权重值。
可选地,所述刚体约束条件的计算公式为:
Figure BDA0002690482370000242
其中,Rot(R)=(c1·c2)2+(c1·c1-1)2+(c2·c2-1)2,n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,Erot表示n个变形节点的旋转矩阵的刚体误差之和;
所述连贯约束条件的计算公式为:
Figure BDA0002690482370000251
其中,Gj为所述n个变形节点中的第j个变形节点,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息;
所述位置约束条件的计算公式为:
Figure BDA0002690482370000252
Figure BDA0002690482370000253
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
可选地,变形还单元用于:
通过目标公式
Figure BDA0002690482370000254
构建所述目标能量矩阵,其中,
Figure BDA0002690482370000255
Figure BDA0002690482370000256
n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息,
Figure BDA0002690482370000261
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
可选地,变形还单元用于:为每个变形节点的旋转矩阵和平移变换矩阵设置初始值;将所述初始值代入至所述目标能量矩阵中,得到中间能量矩阵和所述中间能量矩阵的雅可比矩阵;根据所述中间能量矩阵和所述雅可比矩阵构建目标方程组,并对所述目标方程组进行迭代计算,并在满足迭代停止条件时,得到迭代计算结果;根据所述迭代计算结果确定每个所述变形节点的旋转矩阵和平移变换矩阵。
可选地,该装置还用于:在所述多个变形节点中确定与每个顶点所关联的至少一个目标变形节点,其中,所述至少一个目标变形节点为所述多个变形节点中与对应顶点距离最近的至少一个变形节点;为每个顶点所关联的至少一个目标变形节点确定目标权重。
可选地,变形还单元用于:根据公式
Figure BDA0002690482370000262
计算所述目标线段中每个顶点变形之后的位置信息,其中,wj(vi)表示所述目标线段中第i个顶点vi所关联的第j个目标变形节点的目标权重,Rj表示第i个顶点vi所关联的第j个目标变形节点的旋转矩阵,gj表示第i个顶点vi所关联的第j个目标变形节点在变形之前的位置信息,tj表示第i个顶点vi所关联的第j个目标变形节点的平移变换矩阵。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例三:
参见图9,本发明实施例还提供一种电子设备100,包括:处理器90,存储器91,总线92和通信接口93,所述处理器90、通信接口93和存储器91通过总线92连接;处理器90用于执行存储器91中存储的可执行模块,例如计算机程序。
其中,存储器91可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口93(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线92可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器91用于存储程序,所述处理器90在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器90中,或者由处理器90实现。
处理器90可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器90中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器90可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器91,处理器90读取存储器91中的信息,结合其硬件完成上述方法的步骤。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的进行矢量图的处理方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (17)

1.一种矢量图的处理方法,其特征在于,包括:
获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;
将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;
响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
2.根据权利要求1所述的方法,其特征在于,所述待聚合图元为多个待聚类线段;
将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段包括:
在所述多个待聚类线段中确定第一线段;所述第一线段的第一顶点与目标坐标点之间的距离最小,所述目标坐标点的横坐标值为所述多个待聚类线段所有顶点的横坐标值中的最小横坐标值,所述目标坐标点的纵坐标值为所述多个待聚类线段所有顶点的纵坐标值中的最小纵坐标值;
从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段;
将所述第一线段和所述多个第二线段首尾连接得到所述目标线段。
3.根据权利要求2所述的方法,其特征在于,从所述第一线段开始沿着所述第一线段的前进方向对所述多个待聚类线段进行聚类处理,聚类得到多个第二线段包括:
将所述第一线段作为初始线段,反复执行下述步骤,直至不再生成新的第二线段:
从所述初始线段开始,沿着所述初始线段的前进方向在所述多个待聚类线段中确定至少一个第三线段,其中,每个第三线段的顶点与所述第一线段相交,或者,所述第三线段的顶点与所述第一线段之间的垂直距离小于预设距离;
若所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求,则基于所述至少一个第三线段生成第二线段,并将生成的第二线段作为所述初始线段,返回继续执行上述步骤;
若所述至少一个第三线段与所述初始线段之间的方向差不满足预设方向要求,则将已生成的全部第二线段确定为聚类得到的所述多个第二线段。
4.根据权利要求3所述的方法,其特征在于,基于所述至少一个第三线段生成第二线段包括:
将每个第三线段的方向进行均值计算,得到目标方向,并将所述目标方向确定为当前时刻第二线段的方向;
将上一时刻确定出的第二线段的终点确定为当前时刻第二线段的起点,将所述至少一个第三线段所包含的所有顶点中距离所述上一时刻确定出的第二线段的起点距离最远的顶点确定为当前时刻第二线段的终点。
5.根据权利要求3所述的方法,其特征在于,通过下述方式判断所述至少一个第三线段与所述初始线段之间的方向差是否满足预设方向要求包括:
计算每个所述第三线段与所述初始线段之间的方向差,得到至少一个方向差;
若所述至少一个方向差中小于预设阈值的方向差的数量小于预设数量,则确定所述至少一个第三线段与所述初始线段之间的方向差满足预设方向要求。
6.根据权利要求1所述的方法,其特征在于,将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段包括:
若所述待聚合图元为曲线,则对所述待聚合图元进行离散化处理,离散化得到多个首尾相连接的线段;
将所述多个首尾相连接的线段中相同语义的线段进行聚类处理,聚类之后得到所述目标线段。
7.根据权利要求1所述的方法,其特征在于,响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图包括:
若所述变形指令为对第二顶点进行变形的指令,则获取预先在所述目标线段中设置的多个变形节点;其中,所述第二顶点为所述目标线段中的顶点,且为设置对应位置约束信息的顶点;
计算每个变形节点的旋转矩阵和平移变换矩阵;
根据每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息,以实现对所述目标线段进行变形处理。
8.根据权利要求7所述的方法,其特征在于,计算每个所述变形节点的旋转矩阵和平移变换矩阵包括:
构建目标能量矩阵,其中,所述目标能量矩阵为关于每个变形节点的旋转矩阵和平移变换矩阵的能量矩阵;
构建目标约束条件,其中,所述目标约束条件为基于以下至少一种约束条件确定的:刚体约束条件、连贯约束条件和位置约束条件;所述刚体约束条件用于表征每个变形节点的旋转矩阵的刚体误差之和;所述连贯约束条件用于表征每个变形节点的相邻变形节点对自身的影响;所述位置约束条件用于表征所述目标线段中每个顶点变形之后的位置信息和预设顶点位置信息之间差值的总和;
根据所述目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵。
9.根据权利要求8所述的方法,其特征在于,构建目标约束条件包括:
通过公式
Figure FDA0002690482360000041
构建所述目标约束条件,其中,Erot表示所述刚体约束条件,Ereg表示所述连贯约束条件,Econ表示所述位置约束条件,wrot为刚体约束条件Erot的权重值,wreg为连贯约束条件Ereg的权重值,wcon为位置约束条件Econ的权重值。
10.根据权利要求9所述的方法,其特征在于,
所述刚体约束条件的计算公式为:
Figure FDA0002690482360000042
其中,Rot(R)=(c1·c2)2+(c1·c1-1)2+(c2·c2-1)2,n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,Erot表示n个变形节点的旋转矩阵的刚体误差之和;
所述连贯约束条件的计算公式为:
Figure FDA0002690482360000043
其中,Gj为所述n个变形节点中的第j个变形节点,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息;
所述位置约束条件的计算公式为:
Figure FDA0002690482360000044
Figure FDA0002690482360000045
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
11.根据权利要求8所述的方法,其特征在于,构建目标能量矩阵包括:
通过目标公式
Figure FDA0002690482360000051
构建所述目标能量矩阵,其中,
Figure FDA0002690482360000052
Figure FDA0002690482360000053
n为变形节点的数量,Rj表示n个变形节点中第j个变形节点的旋转矩阵,ci为旋转矩阵R的第i列向量,gj代表第j个变形节点Gj在变形之前的位置信息,N(j)代表n个变形节点中与变形节点Gj相邻的变形节点的编号集合,k表示当前时刻与变形节点Gj相邻的变形节点Gk的编号信息,
Figure FDA0002690482360000054
所述目标线段中每个顶点变形之后的位置信息,q表示所述预设顶点位置信息,l代表所述目标线段中每个顶点的序号。
12.根据权利要求8所述的方法,其特征在于,根据目标约束条件对所述目标能量矩阵进行求解,得到每个所述变形节点的旋转矩阵和平移变换矩阵包括:
为每个变形节点的旋转矩阵和平移变换矩阵设置初始值;
将所述初始值代入至所述目标能量矩阵中,得到中间能量矩阵和所述中间能量矩阵的雅可比矩阵;
根据所述中间能量矩阵和所述雅可比矩阵构建目标方程组,并对所述目标方程组进行迭代计算,并在满足迭代停止条件时,得到迭代计算结果;
根据所述迭代计算结果确定每个所述变形节点的旋转矩阵和平移变换矩阵。
13.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述多个变形节点中确定与每个顶点所关联的至少一个目标变形节点,其中,所述至少一个目标变形节点为所述多个变形节点中与对应顶点距离最近的至少一个变形节点;
为每个顶点所关联的至少一个目标变形节点确定目标权重。
14.根据权利要求12所述的方法,其特征在于,根据所述每个变形节点的旋转矩阵和平移变换矩阵确定所述目标线段中每个顶点变形之后的位置信息包括:
根据公式
Figure FDA0002690482360000061
计算所述目标线段中每个顶点变形之后的位置信息,其中,wj(vi)表示所述目标线段中第i个顶点vi所关联的第j个目标变形节点的目标权重,Rj表示第i个顶点vi所关联的第j个目标变形节点的旋转矩阵,gj表示第i个顶点vi所关联的第j个目标变形节点在变形之前的位置信息,tj表示第i个顶点vi所关联的第j个目标变形节点的平移变换矩阵。
15.一种矢量图的处理装置,其特征在于,包括:
获取单元,用于获取待编辑矢量图,并在所述待编辑矢量图中确定待聚合图元,其中,所述待聚合图元包括:线段和/或曲线;
聚类处理单元,用于将所述待聚合图元中语义相同的图元进行聚类处理,聚类之后得到目标线段,其中,所述语义相同的图元表示能够聚类到同一条线段上的图元;
变形单元,用于响应于所述目标线段的变形指令,对所述目标线段进行变形处理,得到编辑之后矢量图。
16.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至14中任一项所述的方法的步骤。
17.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行上述权利要求1至14中任一项所述的方法的步骤。
CN202010991824.5A 2020-09-18 2020-09-18 矢量图的处理方法、装置、电子设备和计算机可读介质 Pending CN112132928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010991824.5A CN112132928A (zh) 2020-09-18 2020-09-18 矢量图的处理方法、装置、电子设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010991824.5A CN112132928A (zh) 2020-09-18 2020-09-18 矢量图的处理方法、装置、电子设备和计算机可读介质

Publications (1)

Publication Number Publication Date
CN112132928A true CN112132928A (zh) 2020-12-25

Family

ID=73841867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010991824.5A Pending CN112132928A (zh) 2020-09-18 2020-09-18 矢量图的处理方法、装置、电子设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN112132928A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415912A (zh) * 2021-12-31 2022-04-29 乐美科技股份私人有限公司 一种元素编辑方法、装置、电子设备及存储介质
WO2022252613A1 (zh) * 2021-06-01 2022-12-08 福建福昕软件开发股份有限公司 基于桌面软件通过函数拟合识别pdf内多类线条的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110316875A1 (en) * 2009-06-10 2011-12-29 Actions Semiconductor Co., Ltd. Method and device for processing vector graphics
WO2015022683A1 (en) * 2013-08-15 2015-02-19 Fontark Ltd. A method for creating a controlled and versatile connection between graphical objects
US20180357776A1 (en) * 2017-06-08 2018-12-13 Microsoft Technology Licensing, Llc Vector graphics handling processes for user applications
CN111598971A (zh) * 2020-04-02 2020-08-28 珠海华伟电气科技股份有限公司 通用矢量图绘制方法、系统及可读介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110316875A1 (en) * 2009-06-10 2011-12-29 Actions Semiconductor Co., Ltd. Method and device for processing vector graphics
WO2015022683A1 (en) * 2013-08-15 2015-02-19 Fontark Ltd. A method for creating a controlled and versatile connection between graphical objects
US20180357776A1 (en) * 2017-06-08 2018-12-13 Microsoft Technology Licensing, Llc Vector graphics handling processes for user applications
CN111598971A (zh) * 2020-04-02 2020-08-28 珠海华伟电气科技股份有限公司 通用矢量图绘制方法、系统及可读介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姚宏;姚屏;: "矢量图形的面向对象建模及其在数据转换中的应用", 邵阳学院学报(自然科学版), no. 04 *
朱宇轲: "《基于版型矢量图的实时衣服仿真》", 《全国优秀硕士学位论文全文库》, pages 138 - 4302 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252613A1 (zh) * 2021-06-01 2022-12-08 福建福昕软件开发股份有限公司 基于桌面软件通过函数拟合识别pdf内多类线条的方法
CN114415912A (zh) * 2021-12-31 2022-04-29 乐美科技股份私人有限公司 一种元素编辑方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10061870B2 (en) Automated metrology and model correction for three dimensional (3D) printability
US9946816B2 (en) System for visualizing a three dimensional (3D) model as printed from a 3D printer
EP2926982B1 (en) Automated design and manufacturing feedback for three dimensonal (3d) printability
CN111428457B (zh) 数据表的自动格式化
Wang et al. Deepvecfont: synthesizing high-quality vector fonts via dual-modality learning
CN112132928A (zh) 矢量图的处理方法、装置、电子设备和计算机可读介质
CN113094770B (zh) 图纸生成方法、装置、计算机设备和存储介质
CN113724401B (zh) 一种三维模型切割方法、装置、计算机设备和存储介质
CN112241565A (zh) 建模方法及相关装置
WO2024051498A1 (zh) 多边形修正及生成方法、装置、电子设备及计算机可读存储介质
CN113129447A (zh) 基于单张手绘草图的三维模型生成方法、装置和电子设备
Katsoulis et al. A T-splines-based parametric modeller for computer-aided ship design
Liu et al. Learning implicit glyph shape representation
CN113850884A (zh) 桑基图的生成方法、装置、电子设备和存储介质
CN114627226A (zh) 在线建模方法及装置
US20220374556A1 (en) Parameterization of digital organic geometries
CN114090666A (zh) 幻灯片显示方法、装置、设备以及存储介质
Modi et al. Multi-Agent Path Planning with Asymmetric Interactions In Tight Spaces
CN112037336B (zh) 相邻点位分割方法及装置
Obermaier et al. Volume Deformations in Grid‐Less Flow Simulations
US11615562B2 (en) Removing anchor points from a path by parameterizing the path to reduce deviation
US11875435B2 (en) Generating scalable fonts utilizing multi-implicit neural font representations
US20230154075A1 (en) Vector Object Generation from Raster Objects using Semantic Vectorization
US20230229841A1 (en) Method and system for simulating and verifying layout based on distribution
Akwensi et al. APC2Mesh: Bridging the gap from occluded building façades to full 3D models

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