一种基于绘画时序的笔划线条动态合并方法与流程

文档序号:15449649发布日期:2018-09-14 23:48阅读:520来源:国知局

本发明涉及一种利用计算机技术的基于绘画时序的笔划线条动态合并方法,能够保留绘画者的创作意图,并自动、准确地完成复杂线画图的简化工作。



背景技术:

线画图作为一种简易的引导性表达形式,广泛应用于工业设计和艺术创作领域中,受到广大艺术创作者和设计师的喜爱。相比较纸笔绘制的线画图,绘画者借助数位板,将每一笔的信息记录并传输到计算机中,能够更完整的保留绘制者所表达的意图,方便绘画者对线画图的修改和重用。

绘画者在进行线画图的绘制过程中,往往多次勾勒较难绘制的部分,导致线画图中存在大量的重叠线条。这样的线画图的线条非常复杂,绘画者很难对这样的线画图进行精细修改和重用。为了简化复杂的线画图,在保留绘画者意图的前提下尽可能精简线条,现有的方法通过分析线画图中区域与线条之间的邻近、平行以及绘制方向等属性的空间距离约束,对线画图中的线条进行聚类与合并,得到一幅简洁的线画图。然而,现有的方法仅仅考虑区域与线条之间空间属性,忽略了线条绘制的时序信息,其聚类与合并结果难以完整保留绘画者的绘画意图,也无法处理复杂的线画图形。

绘画者在绘制线画图的过程中,存在一定的先后顺序。电子笔和数位板是很多新生代设计师与绘画者常用的绘画工具,它们可以依次记录下的所有线条。本发明将这些线条的绘制时序与它们的空间位置相结合,提出一种基于绘画时序的笔划线条动态合并方法。相比较现有的方法,本方法能够在简化复杂笔划线条时更好地保留绘画者的绘制意图。



技术实现要素:

为了解决现有笔划线条合并方法的不足,本发明提供了一种利用计算机技术的基于绘画时序的笔划线条动态合并方法,能够高效准确地完成复杂线画图的简化工作。

本发明分析绘画者绘制线条的空间距离信息和时序信息,对笔划线条进行动态的聚类与合并,从而实现在保证绘画者意图的前提下,简化复杂线画图的目的。

在本文中有如下符号定义:对于已输入的n条线条定义为s={s1,s2,...,sn};定义合并之后的m条线条l={l1,l2,...,lm}。ds(si,sj)表示线条si与sj间的空间距离;hausdorff(si,sj)计算线条si上所有点到sj最短距离的最大值,t为空间距离阈值。

步骤1,对于新输入的任意线条sn+1,计算它与前一输入线条sn的空间距离ds(sn,sn+1)=hausdorff(sn,sn+1)。

步骤2,如果ds(sn,sn+1)<t,通过ds(lj,sn+1)计算lj与sn+1的空间距离,否则将sn+1作为新的合并线条lm+1。

步骤3,如果ds(lj,sn+1)<t,合并sn+1与lj并更新lj;否则将sn+1作为新的合并线条lm+1。

进一步,步骤3中,线条sn+1与lj的合并主要有以下步骤:首先,对lj和sn+1互相寻找位于另一条线条上的距离该线条两个端点最近的两个点,以此确定这两根线条近距离重合的部分,将lj和sn+1的重合部分分别记为条段k1和k2;接着,对k1和k2进行线性插值,即k=λk1+(1-λ)k2,其中k是插值得到的新线段,λ是插值权重,λ不是全局权重,而是在重合部分线条每一个位置都可以不同的局部权重。sn+1与lj的两端有可能还有不重合部分的线条,由于重合部分是通过端点计算得到的,所以不重合部分的线条不会同时出现在k线段的一侧。假设在k线段的一侧,lj或sn+1有不重合部分的线条,那么将这一侧的λ设置为1或0,以保证新线段k能够与不重合部分的线条连续。λ=1时,k=k1;λ=0时,k=k2。如果k线段的一侧没有连接lj或sn+1的不重合部分的线条,将该一侧的λ设置为0.5,并且将k线段的中间位置处的λ也设置为0.5。为了保证新线段k在其任意位置都是连续的,非端点和中点位置的λ采用从端点到中点的线性过渡方法计算。

本发明的技术构思是:以线画图中笔画的时序先后为主要依据,对线条进行动态组合,从而实现对复杂线画图的动态合并。在合并过程中,利用线条之间的空间距离检测重合关系,进而实现高效、连续地合并。

本发明的优点在于:在线画图的线条合并中把线条的时序先后考虑进去,合并过程中只考虑上一根线条和合并线条,支持动态更新,提高了合并的效率;线条的合并考虑空间的距离关系,并通过合并权重的设计保证最终的合并线条处处连续。

附图说明

图1为本发明的流程图。

图2为本发明的输入示意图,数字表示每个笔划的时序。

图3为本发明的聚类结果图,不同灰度的笔划表示不同分类。

图4线条合并示例图。

图5线画图简化结果图。

具体实施方式

参照附图,对于已输入的n条线条定义为s={s1,s2,...,sn};定义合并之后的m条线条l={l1,l2,...,lm}。ds(si,sj)表示线条si与sj间的空间距离;hausdorff(si,sj)计算线条si上所有点到sj最短距离的最大值,t为空间距离阈值,进一步说明本发明:

步骤1,对于新输入的任意线条sn+1,计算它与前一输入线条sn的空间距离ds(sn,sn+1)=hausdorff(sn,sn+1)。

步骤2,如果ds(sn,sn+1)<t,通过ds(lj,sn+1)计算lj与sn+1的空间距离,否则将sn+1作为新的合并线条lm+1。

步骤3,如果ds(lj,sn+1)<t,合并sn+1与lj并更新lj;否则将sn+1作为新的合并线条lm+1。

进一步,步骤3中,线条sn+1与lj的合并主要有以下步骤:首先,对lj和sn+1互相寻找位于另一条线条上的距离该线条两个端点最近的两个点,以此确定这两根线条近距离重合的部分,将lj和sn+1的重合部分分别记为条段k1和k2;接着,对k1和k2进行线性插值,即k=λk1+(1-λ)k2,其中k是插值得到的新线段,λ是插值权重,λ不是全局权重,而是在重合部分线条每一个位置都可以不同的局部权重。sn+1与lj的两端有可能还有不重合部分的线条,由于重合部分是通过端点计算得到的,所以不重合部分的线条不会同时出现在k线段的一侧。假设在k线段的一侧,lj或sn+1有不重合部分的线条,那么将这一侧的λ设置为1或0,以保证新线段k能够与不重合部分的线条连续。λ=1时,k=k1;λ=0时,k=k2。如果k线段的一侧没有连接lj或sn+1的不重合部分的线条,将该一侧的λ设置为0.5,并且将k线段的中间位置处的λ也设置为0.5。为了保证新线段k在其任意位置都是连续的,非端点和中点位置的λ采用从端点到中点的线性过渡方法计算。

笔划线条的合并是提高艺术家绘制草图效率的有效手段,现有的笔划线条简化方法只考虑了线条之间的空间距离,但存在着算法稳定性低、计算效率低、合并结果不准确等问题。本发明提出了一种基于绘画时序的笔划线条动态合并方法,能够自动、准确地将由很多笔划线条构成的线画草图合并为数量较少但保留了原图内容的线画图。

本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1