一种书写笔迹分段平滑方法和系统与流程

文档序号:11154143
一种书写笔迹分段平滑方法和系统与制造工艺

本发明涉及电子领域,特别是指一种书写笔迹分段平滑方法和系统。



背景技术:

书写笔迹平滑算法,是计算机绘制书写笔迹效果的一种优化,旨在减少绘制过程中笔迹的毛刺和折线是绘制效果更平滑更接近真实书写。

在白板书写时,由于鼠标上点的速度与坐标的差异,如果直接把得到的点绘制出来会出现好多折线以及毛刺,例如windows画图板程序的效果。



技术实现要素:

有鉴于此,本发明的目的在于提出一种书写笔迹分段平滑方法和系统,能够优化书写效果,大幅度减少笔迹中的折线和毛刺。

基于上述目的本发明提供的书写笔迹分段平滑方法,包括步骤:

第一步,鼠标落压第一点作为分段起始点O,记录O点坐标;

第二步,鼠标移动获得下一点,记为P并记录P点坐标;然后,计算与起始点O的距离OP;

第三步,鼠标移动获得下一点,记为P1并记录P1点坐标;然后,计算与P点的距离PP1;

第四步,计算获得P1点通过P点到达起始点O的距离,即计算OP加上PP1的长度;

第五步,判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,若都不满足则进行步骤六,若满足上面条件的任意一个则进行步骤八;

第六步,根据所述坐标点存储表中存储的本段中的坐标点,拟合并绘制出曲线,然后执行步骤七;

第七步,判断鼠标是否抬起,若没有抬起则返回步骤三;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹 绘制出来,然后退出;

第八步,本段中所有坐标点完成存储,根据所述坐标点存储表中存储的本段中所有坐标点,拟合并绘制出曲线,然后执行步骤九;

第九步,判断鼠标是否抬起,若没有抬起则将本段的结束点作为下一个分段的起始点,然后返回步骤二;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来,然后退出。

可选地,所述步骤一中将O点坐标存储在坐标点存储表中。

可选地,所述步骤四中还计算线段PP1与线段OP的夹角。

进一步地,在执行所述步骤四之后,调整P点的坐标使得所述线段PP1与线段OP的夹角大于45度,然后将调整后的P点坐标存储在坐标点存储表中。

进一步地,所述对于线段PP1与线段OP的夹角小于45度的坐标值进行调整采用的是加权平均法。

进一步地,所述加权平均法设置的比例为3:4:3,调整后点P的坐标为Px'=0.3*Ox+0.4*Px+0.3*P1x,Py'=0.3*Oy+0.4*Py+0.3*P1y

进一步地,在执行所述步骤五之后,判断所述线段PP1是否大于预先设置的像素阈值,若小于则去掉点P1,返回步骤四;若大于则将所述的点P1存储到预先设置的坐标点存储表中。

进一步地,所述预先设置的像素阈值为3至6。

进一步地,所述预先设置的像素阈值为4.13。

可选地,所述坐标点的数量是否大于预先设置的数值为10。

可选地,所述预先设置的P1点通过P点到达起始点O的距离长度为40像素。

可选地,所述步骤四中还需要计算P1点到起始点O的直线距离L;然后,当进行步骤十时,则是判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,或者直线距离L与P1点通过P点到达起始点O的距离的比值是否在预先设置的范围内。

进一步地,所述直线距离L与P1点通过P点到达起始点O的距离的比值范围为1.45至10之间。

进一步地,所述根据坐标点拟合、绘制曲线采用的都是贝塞尔方法。

另外,本发明还通过了一种书写笔迹分段平滑系统,包括鼠标点获取单元、坐标点处理单元和坐标点拟合绘制单元,所述鼠标点获取单元鼠标落压第一点作为分段起始点O,记录O点坐标;鼠标移动获得下一点,记为P并记录P点坐标;鼠标移动获得下一点,记为P1并记录P1点坐标;

所述坐标点处理单元计算与起始点O的距离OP,并且计算获得P1点通过P点到达起始点O的距离,即计算OP加上PP1的长度;判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度;

若都不满足则所述坐标点处理单元与所述坐标点拟合绘制单元相连,所述坐标点拟合绘制单元根据所述坐标点存储表中存储的本段中的坐标点,拟合并绘制出曲线;判断鼠标是否抬起,若没有抬起则所述坐标点拟合绘制单元与所述鼠标点获取单元相连;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来;

若满足上面条件的任意一个则所述坐标点处理单元与所述坐标点拟合绘制单元相连,所述坐标点拟合绘制单元将本段中所有坐标点完成存储,根据所述坐标点存储表中存储的本段中所有坐标点,拟合并绘制出曲线;判断鼠标是否抬起,若没有抬起则将本段的结束点作为下一个分段的起始点,然后所述坐标点拟合绘制单元与所述鼠标点获取单元相连;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来。

可选地,所述鼠标点获取单元将O点坐标存储在坐标点存储表中。

可选地,所述坐标点处理单元还计算线段PP1与线段OP的夹角。

进一步地,所述坐标点处理单元计算获得P1点通过P点到达起始点O的距离之后,调整P点的坐标使得所述线段PP1与线段OP的夹角大于45度,然后将调整后的P点坐标存储在坐标点存储表中。

进一步地,所述对于线段PP1与线段OP的夹角小于45度的坐标值进行调整采用的是加权平均法。

进一步地,所述加权平均法设置的比例为3:4:3,调整后点P的坐标为Px'=0.3*Ox+0.4*Px+0.3*P1x,Py'=0.3*Oy+0.4*Py+0.3*P1y

进一步地,所述坐标点处理单元还包括判断所述线段PP1是否大于预先设置的像素阈值,若小于则去掉点P1;若大于则将所述的点P1存储到预先设置的坐标点存储表中。

进一步地,所述预先设置的像素阈值为3至6。

进一步地,所述预先设置的像素阈值为4.13。

可选地,所述坐标点的数量是否大于预先设置的数值为10。

可选地,所述预先设置的P1点通过P点到达起始点O的距离长度为40像素。

可选地,所述坐标点处理单元还包括计算P1点到起始点O的直线距离L;判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,或者直线距离L与P1点通过P点到达起始点O的距离的比值是否在预先设置的范围内。

进一步地,所述直线距离L与P1点通过P点到达起始点O的距离的比值范围为1.45至10之间。

进一步地,所述根据坐标点拟合、绘制曲线采用的都是贝塞尔方法。

从上面所述可以看出,本发明提供的书写笔迹分段平滑方法和系统,通过鼠标落压第一点为起始点O;鼠标移动获得点P,计算距离OP;鼠标移动获得点P1,计算距离PP1,计算OP加PP1的长度;判断坐标点数量是否大于设置的数值,或者P1点通过P到达O的距离长度是否大于设置的长度,若都不满足则根据存储表中本段的坐标点,拟合曲线;判断鼠标是否抬起,若抬起则将整体曲线上所有点重新拟合;若满足上面条件的任意一个则本段中所有坐标点完成存储,根据本段中所有坐标点拟合曲线;判断鼠标是否抬起,若没有则将本段的结束点作为下一个分段的起始点;若抬起则根据该整体曲线上所有点重新拟合。从而,所述书写笔迹分段平滑方法和系统能够得到一条相对平滑的曲线,使得绘制效果更自然。

附图说明

图1为本发明实施例书写笔迹分段平滑方法的流程示意图;

图2为本发明实施例书写笔迹分段平滑系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

在本发明的一个实施例中,如图1所示,为本发明实施例书写笔迹分段平滑方法的流程示意图,所述书写笔迹分段平滑方法包括:

步骤101,鼠标落压第一点作为分段起始点O,记录O点坐标。

步骤102,鼠标移动获得下一点,记为P并记录P点坐标。然后,计算与起始点O的距离OP。

步骤103,鼠标移动获得下一点,记为P1并记录P1点坐标。然后,计算与P点的距离PP1。

步骤104,计算获得P1点通过P点到达起始点O的距离,即计算OP加上PP1的长度。

步骤105,判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,若都不满足则进行步骤106,若满足上面条件的任意一个则进行步骤108。

步骤106,根据所述坐标点存储表中存储的本段中的坐标点,拟合并绘制出曲线,然后执行步骤107。

步骤107,判断鼠标是否抬起,若没有抬起则返回步骤103;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来,然后退出。

步骤108,本段中所有坐标点完成存储,根据所述坐标点存储表中存储的本段中所有坐标点,拟合并绘制出曲线,然后执行步骤109。

步骤109,判断鼠标是否抬起,若没有抬起则将本段的结束点作为下一个分段的起始点,然后返回步骤102;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来,然后退出。

在本发明的另一个实施例中,所述的书写笔迹分段平滑方法包括:

步骤201,鼠标落压第一点作为分段起始点O,将O点坐标存储在坐标点存储表中。

步骤202,鼠标移动获得下一点,记为P并记录P点坐标。然后,计算 与起始点O的距离OP。

步骤203,鼠标移动获得下一点,记为P1并记录P1点坐标。然后,计算与P点的距离PP1。

步骤204,计算获得P1点通过P点到达起始点O的距离,即计算OP加上PP1的长度。以及计算线段PP1与线段OP的夹角。

步骤205,判断所述线段PP1与线段OP的夹角是否小于45度,若是则进行步骤206,若不是则直接进行步骤207。

步骤206,调整P点的坐标使得所述线段PP1与线段OP的夹角大于45度,然后进行步骤207。

优选地,对于线段PP1与线段OP的夹角小于45度的坐标值进行调整采用的是加权平均法,其设置的比例为3:4:3。那么,调整后点P的坐标为Px'=0.3*Ox+0.4*Px+0.3*P1x,Py'=0.3*Oy+0.4*Py+0.3*P1y。另外,将调整后的P点坐标进行存储,可以存储在坐标点存储表中。

步骤207,判断所述线段PP1是否大于预先设置的像素阈值,若小于则进行步骤208,若大于则进行步骤209。

作为实施例,预先设置的像素阈值为3至6。优选地,像素阈值为4.13。

还需要说明的是,步骤206和步骤207可以如上面所述的先进行步骤206再进行步骤207,也可以先进行步骤207再进行步骤206。

步骤208,去掉点P1,返回步骤204。

步骤209,将所述的点P1存储到预先设置的坐标点存储表中。

步骤210,判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,若都不满足则进行步骤211,若满足上面条件的任意一个则进行步骤213。

在本发明的实施例中,所述坐标点的数量是否大于预先设置的数值为10。较佳地,可以查看所述坐标点存储表中存储的点数量是否大于预先设置的数值为10。另外,预先设置的P1点通过P点到达起始点O的距离长度为40像素。

步骤211,根据所述坐标点存储表中存储的本段中的坐标点,拟合并绘制出曲线,然后执行步骤212。

步骤212,判断鼠标是否抬起,若没有抬起则返回步骤203;若抬起则根 据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来,然后退出。

步骤213,本段中所有坐标点完成存储,根据所述坐标点存储表中存储的本段中所有坐标点,拟合并绘制出曲线,然后执行步骤214。

步骤214,判断鼠标是否抬起,若没有抬起则将本段的结束点作为下一个分段的起始点,然后返回步骤202;若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来,然后退出。

优选地,上面所述的根据坐标点拟合、绘制曲线采用的都是贝塞尔方法。

作为本发明的另一个实施例,在进行步骤204时,还需要计算P1点到起始点O的直线距离L。然后,当进行步骤210时,则是判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度,或者直线距离L与P1点通过P点到达起始点O的距离的比值是否在预先设置的范围内,若都不满足则进行步骤211,若满足上面条件的任意一个则进行步骤212。其中,所述直线距离L与P1点通过P点到达起始点O的距离的比值范围为1.45至10之间。

在本发明的另一个实施例中,如图2所示,为本发明实施例书写笔迹分段平滑系统的结构示意图。所述书写笔迹分段平滑系统包括鼠标点获取单元1、坐标点处理单元2和坐标点拟合绘制单元3,其中鼠标点获取单元1鼠标落压第一点作为分段起始点O,记录O点坐标。然后,鼠标移动获得下一点,记为P并记录P点坐标。最后,鼠标移动获得下一点,记为P1并记录P1点坐标。

坐标点处理单元302计算与起始点O的距离OP,并且计算获得P1点通过P点到达起始点O的距离,即计算OP加上PP1的长度。然后,判断获得的坐标点的数量是否大于预先设置的数值,或者P1点通过P点到达起始点O的距离长度是否大于预先设置的长度。

若都不满足则坐标点处理单元2与坐标点拟合绘制单元3相连,坐标点拟合绘制单元3根据所述坐标点存储表中存储的本段中的坐标点,拟合并绘制出曲线。然后,判断鼠标是否抬起,若没有抬起则坐标点拟合绘制单元3与鼠标点获取单元1相连。若抬起则根据所述坐标点存储表中存储的该整体 曲线上所有点重新拟合,形成最后的笔迹绘制出来。

若满足上面条件的任意一个则坐标点处理单元2与坐标点拟合绘制单元3相连,坐标点拟合绘制单元3将本段中所有坐标点完成存储,根据所述坐标点存储表中存储的本段中所有坐标点,拟合并绘制出曲线。然后,判断鼠标是否抬起,若没有抬起则将本段的结束点作为下一个分段的起始点,然后坐标点拟合绘制单元3与鼠标点获取单元1相连。若抬起则根据所述坐标点存储表中存储的该整体曲线上所有点重新拟合,形成最后的笔迹绘制出来。

需要说明的是,鼠标点获取单元1、坐标点处理单元2和坐标点拟合绘制单元3的工作流程在上面已经详细,在此不做重复说明。

综上所述,本发明提供的书写笔迹分段平滑方法和系统,创造性地提出了分段式的笔迹绘制;通过每获得一点段内的拟合、绘制,以及整段式的拟合、绘制;而且,本发明判断所述线段PP1与线段OP的夹角是否小于45度,从而将具有很尖的笔迹进行优化,去除了笔迹中的折线,使得笔迹更为平滑;另外,本发明判断所述线段PP1是否大于预先设置的像素阈值,从而去除了在笔迹中存在的成团或成疙瘩状的节点,去除了笔迹中的毛刺,大大改善了笔迹的顺畅度;与此同时,本发明所述的书写笔迹分段平滑方法和系统绘制效果更接近真实书写;最后,整个所述的书写笔迹分段平滑方法和系统简便、紧凑,易于实现。

所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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