发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种实时手写笔迹的美化方法及电子设备,用于解决现有技术中手写笔迹无法简便的体现个性化特点的问题。
为实现上述目的及其他相关目的,本发明提供一种实时手写笔迹的美化方法,应用于具有轨迹输入装置的电子设备中,其至少包括:1)当检测到所述轨迹输入装置开始进行轨迹输入时,实时捕获所述轨迹上的轨迹点的坐标和时间,直至所述轨迹输入结束;2)从所捕获的第二个轨迹点开始,利用所捕获的第n个所述轨迹点、及此前所捕获的一个所述轨迹点的坐标和时间,来计算第n个所述轨迹点的速度,其中,n为大于1的整数;3)基于预设的轨迹点的速度分别与手写笔迹的尺寸和透明度的对应关系,来确定第n个所述轨迹点所对应的手写笔迹的尺寸和透明度;4)利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述轨迹点各自所对应的尺寸和透明度进行美化处理,以得到美化后的手写笔迹。
优选地,所捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度均为预设值。
优选地,确定所述轨迹点所对应的手写笔迹的尺寸的方式包括:基于预设的轨迹点的速度与手写笔迹的尺寸的线性关系,来确定第n个所述轨迹点所对应的手写笔迹的尺寸。
优选地,确定所述轨迹点所对应的手写笔迹的透明度的方式包括:基于预设的轨迹点的速度与手写笔迹的透明度的线性关系,来确定第n个所述轨迹点所对应的手写笔迹的透明度。
优选地,利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述轨迹点各自所对应的尺寸和透明度进行美化处理的步骤包括:3-1)利用预设的分段规则,将所捕获的多个轨迹点所构成的每一段轨迹进行插值处理,以得到由插值点和所述轨迹点所构成的平滑轨迹;3-2)根据经插值处理后的所述轨迹上的各所述轨迹点所对应的尺寸和透明度来确定所述插值点各自所对应的手写笔迹的尺寸和透明度;3-3)利用所述插值点和轨迹点各自所对应的手写笔迹的尺寸和透明度,将插值处理后的轨迹美化处理成尺寸和透明度连续变化的手写笔迹。
优选地,利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述轨迹点各自所对应的尺寸和透明度进行美化处理的方式还包括:利用公式1,将每一段轨迹进行插值处理;
Bn(t)=MidPoint(P2n-2,P2n-1)(1-t)3+3P2n-1t(1-t)2+3P2nt2(1-t)+MidPoint(P2n,P2n+1)t3公式1;
其中,Bn(t)表示插值点的坐标的集合;P2n-2、P2n-1、P2n、P2n+1均为所捕获的所述轨迹点的坐标;n为大于1的整数;t为步进次数、MidPoint(P2n-2,P2n-1)表示所述轨迹点P2n-2、P2n-1的中点的坐标,也是插值处理后的轨迹的起点;MidPoint(P2n,P2n+1)表示所述轨迹点P2n、P2n+1的中点的坐标,也就是插值处理后的轨迹的终点。
优选地,根据所述轨迹上的所述轨迹点所对应的尺寸来确定所述起点和终点各自所对应的手写笔迹的尺寸的方式包括:基于所述起点和终点分别在所捕获的相邻的所述轨迹点的位置来确定所述起点和终点各自所对应的手写笔迹的尺寸和透明度。
优选地,根据所述轨迹上的所述轨迹点所对应的尺寸来确定所述插值点各自所对应的手写笔迹的尺寸的方式包括:利用公式2来取得各插值点所对应的手写笔迹的尺寸;
W(t)=(1-t)3BeginPt.Width+3t(1-t)2ControlPt1.Width 公式2;
+3t3(1-t)ControlPt2.Width+t3EndPt.Width
其中,W(t)表示插值点所对应的手写笔迹的尺寸的集合;BeginPt.Width表示所述起点所对应的手写笔迹的尺寸;ControlPt1.Width、ControlPt2.Width分别表示所述起点和终点之间的两个所述轨迹点所对应的手写笔迹的尺寸;EndPt.Width表示所述终点所对应的手写笔迹的尺寸。
优选地,根据所述轨迹上的所述轨迹点所对应的透明度来确定所述插值点各自所对应的手写笔迹的透明度的方式包括:利用公式3来取得各插值点所对应的手写笔迹的透明度;
A(t)=(1-t)3BeginPt.Alpha+3t(1-t)2ControlPt1.Alpha 公式3;
+3t3(1-t)ControlPt2.Alpha+t3EndPt.Alpha
其中,A(t)表示插值点的透明度的集合;BeginPt.Alpha表示插值处理后的所述轨迹的起点的透明度;ControlPt1.Alpha、ControlPt2.Alpha表示所述起点和终点之间的两个所述轨迹点的透明度;EndPt.Alpha表示插值处理后的所述轨迹的终点的透明度。
优选地,将插值处理后的轨迹美化处理成尺寸和透明度连续变化的手写笔迹的方式还包括:按照预设的手写笔迹的模板,将所述轨迹点和插值点依次以相应的尺寸和透明度进行手写笔迹的拼接处理。
基于上述目的,本发明还提供一种电子设备,其至少包括:轨迹输入装置;捕获模块,用于当检测到所述轨迹输入装置开始进行轨迹输入时,实时捕获所述轨迹上的轨迹点的坐标和时间,直至所述轨迹输入结束;速度计算模块,用于从所述捕获模块所捕获的第二个轨迹点开始,利用所述捕获模块所捕获的第n个所述轨迹点、及此前所捕获的一个所述轨迹点的坐标和时间,来计算第n个所述轨迹点的速度,其中,n为大于1的整数;笔迹处理模块,用于基于预设的轨迹点的速度分别与手写笔迹的尺寸和透明度的对应关系、以及所述速度计算模块所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的尺寸和透明度;美化处理模块,用于利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述笔迹处理模块所取得的所述轨迹点各自所对应的尺寸和透明度进行美化处理,以得到美化后的手写笔迹。
优选地,所捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度均为预设值。
优选地,所述笔迹处理模块包括:笔迹尺寸处理子模块,用于基于预设的轨迹点的速度与手写笔迹的尺寸的线性关系、以及所述速度计算模块所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的尺寸。
优选地,所述笔迹处理模块包括:笔迹透明度处理子模块,用于基于预设的轨迹点的速度与手写笔迹的透明度的线性关系、以及所述速度计算模块所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的透明度。
优选地,所述美化处理模块包括:插值处理子模块,用于利用预设的分段规则,将所述捕获模块所捕获的多个轨迹点所构成的每一段轨迹进行插值处理,以得到由插值点和所述轨迹点所构成的平滑轨迹;插值点的笔迹处理子模块,用于根据经插值处理后的所述轨迹上的各所述轨迹点所对应的尺寸和透明度来确定所述插值点各自所对应的手写笔迹的尺寸和透明度;美化处理子模块,用于所述插值点和轨迹点各自所对应的手写笔迹的尺寸和透明度,将插值处理后的轨迹美化处理成尺寸和透明度连续变化的手写笔迹。
优选地,所述插值点的笔迹处理子模块还用于:利用公式1,将每一段轨迹进行插值处理;
Bn(t)=MidPoint(P2n-2,P2n-1)(1-t)3+3P2n-1t(1-t)2+3P2nt2(1-t)+MidPoint(P2n,P2n+1)t3公式1;
其中,Bn(t)表示插值点的坐标的集合;P2n-2、P2n-1、P2n、P2n+1均为所捕获的所述轨迹点的坐标;n为大于1的整数;t为步进次数、MidPoint(P2n-2,P2n-1)表示所述轨迹点P2n-2、P2n-1的中点的坐标,也是插值处理后的轨迹的起点;MidPoint(P2n,P2n+1)表示所述轨迹点P2n、P2n+1的中点的坐标,也就是插值处理后的轨迹的终点。
优选地,所述插值点的笔迹处理子模块还用于基于所述起点和终点分别在所捕获的相邻的所述轨迹点的位置来确定所述起点和终点各自所对应的手写笔迹的尺寸和透明度。
优选地,所述插值点的笔迹处理子模块还用于利用公式2来取得各插值点所对应的手写笔迹的尺寸;
W(t)=(1-t)3BeginPt.Width+3t(1-t)2ControlPt1.Width 公式2;
+3t3(1-t)ControlPt2.Width+t3EndPt.Width
其中,W(t)表示插值点所对应的手写笔迹的尺寸的集合;BeginPt.Width表示所述起点所对应的手写笔迹的尺寸;ControlPt1.Width、ControlPt2.Width分别表示所述起点和终点之间的两个所述轨迹点所对应的手写笔迹的尺寸;EndPt.Width表示所述终点所对应的手写笔迹的尺寸。
优选地,所述插值点的笔迹处理子模块还用于利用公式3来取得各插值点所对应的手写笔迹的透明度;
A(t)=(1-t)3BeginPt.Alpha+3t(1-t)2ControlPt1.Alpha 公式3;
+3t3(1-t)ControlPt2.Alpha+t3EndPt.Alpha
其中,A(t)表示插值点的透明度的集合;BeginPt.Alpha表示插值处理后的所述轨迹的起点的透明度;ControlPt1.Alpha、ControlPt2.Alpha表示所述起点和终点之间的两个所述轨迹点的透明度;EndPt.Alpha表示插值处理后的所述轨迹的终点的透明度。
优选地,美化处理子模块还用于按照预设的手写笔迹的模板,将所述轨迹点和插值点依次以相应的尺寸和透明度进行手写笔迹的拼接处理。
如上所述,本发明的实时手写笔迹的美化方法及电子设备,具有以下有益效果:通过实时捕获轨迹点的坐标和时间来获取轨迹点的速度,并依据各轨迹点的速度与手写笔迹的尺寸和透明度的对应关系来对各轨迹点所构成的轨迹进行美化处理,由此,能够有效地取得具有用户书写风格的笔锋、笔画;另外,利用三阶贝赛尔曲线算法来进行插值处理,能够得到平滑效果出色的轨迹;并且,利用贝赛尔曲线算法来计算各插值点所对应的手写笔迹的尺寸和透明度,能够得到笔迹宽度、透明度平滑变化的笔锋、笔画,更能体现用户的笔体风格。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1所示,本发明提供一种实时手写笔迹的美化方法。所述美化方法主要由美化系统来执行。所述美化方法适用于具有鼠标、触摸屏等轨迹输入装置的电子设备中。所述电子设备包括但不限于:手机、平板电脑等。
在步骤S1中,所述美化系统当检测到所述轨迹输入装置开始进行轨迹输入时,实时捕获所述轨迹上的轨迹点的坐标和时间,直至所述轨迹输入结束。
具体地,所述美化系统监测用户利用轨迹输入装置进行手写输入的开始动作以及结束的动作,并在此期间,实时捕获所述轨迹输入装置所经过的各轨迹点坐标和时间。
例如,所述美化系统监测到用户按下鼠标的动作时,确认手写输入开始,按预设时间间隔捕获鼠标所经过的各轨迹点,当监测到用户抬起鼠标的动作时,确认手写输入结束。
在步骤S2中,所述美化系统从所捕获的第二个轨迹点开始,利用所捕获的第n个所述轨迹点、及此前所捕获的一个所述轨迹点的坐标和时间,来计算第n个所述轨迹点的速度,其中,n为大于1的整数。
具体地,所述美化系统捕获第一个所述轨迹点时,仅记录所述轨迹点的坐标和时间,从捕获第二个所述轨迹点开始,实时计算所捕获的所有轨迹点的速度。
其中,捕获第n个所述轨迹点的速度的方式为利用所捕获的第n个轨迹点、及此前所捕获的一个轨迹点的坐标,计算所捕获的该两个轨迹点之间的位移;再根据所述位移与该两个轨迹点的时间之差的比值,来取得第n个所述轨迹点的速度。
例如,所述美化系统先后捕获鼠标所经过的轨迹点P1的坐标(x1,y1)和时间t1,及轨迹点P2的坐标(x2,y2)和时间t2;接着,利用公式(1)所得到的轨迹点P1和P2之间的平均速度v,并将所述平均速度v作为轨迹点P2的速度。
在步骤S3中,所述美化系统基于预设的轨迹点的速度分别与手写笔迹的尺寸和透明度的对应关系,来确定第n个所述轨迹点所对应的手写笔迹的尺寸和透明度。其中,所述尺寸可以是手写笔迹的宽度。
具体地,预设的轨迹点的速度与手写笔迹的尺寸的对应关系、及速度与手写笔迹的透明度的对应关系是根据人们的书写习惯的经验进行计算得到的,例如,根据对人们书写习惯的统计,书写速度越快,手写笔迹就越细;书写速度越快,手写笔迹就越透明。因此,所述速度分别与手写笔迹的尺寸和透明度的对应关系可以是成比例的对应关系。
优选地,所述美化系统基于预设的速度与手写笔迹的尺寸的线性关系,来确定第n个所述轨迹点所对应的手写笔迹的尺寸。
例如,所述美化系统利用公式(2)来确定所捕获的第n个轨迹点所对应的手写笔迹的尺寸。
其中,W表示第n个轨迹点所对应的手写笔迹的尺寸;v表示第n个所述轨迹点手写速度,参数W
max、W
min分别表示手写笔迹的尺寸的最大值和最小值,v
max、v
min分别表示所述轨迹点的速度的最大值和最小值;W
max、W
min、v
max、v
min能够调整所述尺寸变化效果
表示所述尺寸的变化程度,它的值越大,则所述尺寸变化越明显。
其中,Wmax、Wmin、vmax、vmin可为预设的固定值,也可以由用户预先设定。
所述美化系统基于预设的速度与手写笔迹的透明度的线性关系,来确定第n个所述轨迹点所对应的手写笔迹的透明度。
例如,所述美化系统利用公式(3)来确定所捕获的第n个轨迹点所对应的手写笔迹的尺寸。
其中,A表示第n个轨迹点所对应的手写笔迹的透明度;v表示第n个所述轨迹点手写速度,参数A
max、A
min分别表示手写笔迹的透明度的最大值和最小值,v
max、v
min分别表示所述轨迹点的速度的最大值和最小值;A
max、A
min、v
max、v
min能够调整所述透明度变化效果
表示所述透明度的变化程度,它的值越大,则所述透明度变化越明显。
其中,Amax、Amin、vmax、vmin可为预设的固定值,也可以由用户预先设定。
需要说明的是,按照公式(2)、(3)所捕获的第一个所述轨迹点由于速度为0,则其所对应的手写笔迹的尺寸和透明度可以均为最大值。
优选地,所捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度均为预设值。
例如,所述美化系统预设捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度分别为1个像素和50%的透明度。
在步骤S4中,所述美化系统利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述轨迹点各自所对应的尺寸和透明度进行美化处理,以得到美化后的手写笔迹。
具体地,所述美化系统在捕获到满足预设数量的轨迹点时,开始对这些轨迹点所构成的轨迹按照所述轨迹点各自所对应的尺寸和透明度进行图像处理,以得到该段轨迹所对应的手写笔迹,然后当再捕获相应数量的轨迹点时,将该段轨迹点所构成的轨迹按照相应轨迹点各自所对应的尺寸和透明度进行图像处理;依此类推,所述美化系统分段地将各所述轨迹点所构成的轨迹进行美化处理,以得到连续的手写笔迹。
例如,所述美化系统按照预设的美化处理的方案,将已捕获的P1、P2、P3三个轨迹点所构成的轨迹进行美化处理,然后将再捕获的轨迹点P3、P4和P5所构成的轨迹进行美化处理,以得到笔画为点的完整的手写笔迹。
优选地,如图2所示,所述步骤S4还包括:步骤S41、步骤S42、S43。
在步骤S41中,所述美化系统利用预设的分段规则,将所捕获的多个轨迹点所构成的每一段轨迹进行插值处理,以得到由插值点和所述轨迹点所构成的轨迹。其中,插值处理的方式包括但不限于:利用DDA插值算法进行插值处理。优选地,插值处理的方式为利用贝塞尔曲线算法进行插值处理。
具体地,所述美化系统利用公式(4),将每一段轨迹进行插值处理;
Bn(t)=MidPoint(P2n-2,P2n-1)(1-t)3+3P2n-1t(1-t)2+3P2nt2(1-t)+MidPoint(P2n,P2n+1)t3 (4)
其中,Bn(t)表示插值点的坐标的集合;P2n-2、P2n-1、P2n、P2n+1均为所捕获的所述轨迹点的坐标;n为大于1的整数;t为步进次数、MidPoint(P2n-2,P2n-1)表示所述轨迹点P2n-2、P2n-1的中点的坐标,也是插值处理后的轨迹的起点;MidPoint(P2n,P2n+1)表示所述轨迹点P2n、P2n+1的中点的坐标,也就是插值处理后的轨迹的终点。
优选地,所述美化系统还利用公式(5)对第一段所述轨迹进行插值处理;
B1(t)=P1(1-t)3+3P2t(1-t)2+3P3t2(1-t)+MidPoint(P3,P4)t3 (5)
其中,B1(t)表示第一段所述轨迹中的插值点的坐标的集合;P1、P2、P3、P4均为所捕获的所述轨迹点的坐标;t为步进次数;MidPoint(P3,P4)表示所述轨迹点P3、P4的中点的坐标。
在步骤S42中,所述美化系统根据经插值处理后的所述轨迹上的各所述轨迹点所对应的尺寸和透明度来确定所述插值点各自所对应的手写笔迹的尺寸和透明度。
具体地,所述美化系统按照相邻轨迹点之间插入的插值点的数量,对相邻的轨迹点所对应的手写笔迹的尺寸和透明度进行均分,以得到每一个插值点所对应的手写笔迹的尺寸和透明度。
例如,所述美化系统按照公式(4)将轨迹点P3、P4、P5和P6所构成的轨迹进行插值处理,以得到插值点集合B2(t),其包括{P3’,P41’,P42’,P43’,P51’,P52’,P53’,P6’}个插值点,其中,插值点P3’为经插值处理后的轨迹的起点的坐标,{P41’,P42’,P43’}插值点为轨迹点P4、P5之间的插值点的坐标,{P51’,P52’,P53’}插值点为轨迹点P5、P6之间的插值点的坐标,P6’为经插值处理后的轨迹的终点的坐标;则所述美化系统按照轨迹点P3、P4各自所对应的手写笔迹的尺寸的平均值来确定起点P3’所对应的手写笔迹的尺寸,按照轨迹点P3、P4各自所对应的手写笔迹的透明度的平均值来确定起点P3’所对应的手写笔迹的透明度;类似的,所述终点P6’所对应的手写笔迹的尺寸和透明度由轨迹点P5和P6各自所对应的手写笔迹的尺寸和透明度的平均值来得到;插值点{P41’,P42’,P43’}各自所对应的手写笔迹的尺寸和透明度则通过等分轨迹点P4、P5各自所对应的尺寸和透明度计算而得;插值点{P51’,P52’,P53’}各自所对应的手写笔迹的尺寸和透明度则通过等分轨迹点P5、P6各自所对应的尺寸和透明度计算而得。
优选地,所述美化系统利用公式(6)来取得各插值点所对应的手写笔迹的尺寸;
W(t)=(1-t)3BeginPt.Width+3t(1-t)2ControlPt1.Width (6);
+3t3(1-t)ControlPt2.Width+t3EndPt.Width
其中,W(t)表示插值点所对应的手写笔迹的尺寸的集合;BeginPt.Width表示所述轨迹的起点所对应的手写笔迹的尺寸;ControlPt1.Width、ControlPt2.Width分别表示所述起点和终点之间的两个所述轨迹点所对应的手写笔迹的尺寸;EndPt.Width表示所述轨迹的终点所对应的手写笔迹的尺寸。
类似的,所述美化系统利用公式(7)来取得各插值点所对应的手写笔迹的透明度;
A(t)=(1-t)3BeginPt.Alpha+3t(1-t)2ControlPt1.Alpha (7);
+3t3(1-t)ControlPt2.Alpha+t3EndPt.Alpha
其中,A(t)表示插值点的透明度的集合;BeginPt.Alpha表示插值处理后的所述轨迹的起点的透明度;ControlPt1.Alpha、ControlPt2.Alpha表示所述起点和终点之间的两个所述轨迹点的透明度;EndPt.Alpha表示插值处理后的所述轨迹的终点的透明度。
其中,所述轨迹的起点和终点若是插值点,则所述美化系统基于所述起点和终点各自在缩放后的相邻的轨迹点之间的位置,来确定所述起点和终点各自所对应的手写笔迹的透明度。
本实施例中,所述起点为相邻两个所述轨迹点的中点,则所述起点所对应的手写笔迹的透明度为该两轨迹点各自所对应的透明度的平均值。确定所述终点所对应的手写笔迹的透明度的方式与确定所述起点所对应的手写笔迹的透明度的方式相同或相似。
在步骤S43中,所述美化系统利用经插值处理后的轨迹的插值点、以及轨迹点各自所对应的手写笔迹的尺寸和透明度,将插值处理后的轨迹转换成尺寸和透明度连续变化的手写笔迹。
需要说明的是,所述美化系统可按照所述步骤S4中的方式将插值点、以及轨迹点依所述轨迹的顺序转换成尺寸和透明度连续变化的手写笔迹。
优选地,所述美化系统按照预设的手写笔迹的模板,将所述轨迹点和插值点依次以相应的尺寸和透明度进行手写笔迹的拼接处理。其中,手写笔迹的模板包括但不限于:毛笔风格的模板、钢笔风格的模板等。其中,所述拼接处理的方式包括但不限于:图像渲染的方式等。
例如,预设的手写笔迹的模板为毛笔风格的模板,经过插值处理后的轨迹上的轨迹点和插值点依次为{P3’,P4,P41’,P42’,P43’,P5,P51’,P52’,P53’,P6,P6’},其中,P4、P5、P6为轨迹点,其他点为插值点,则所述美化系统按在步骤S42中取得的各点所对应的手写笔迹的尺寸和透明度,依次在各点附近渲染出尺寸和透明度相符合的毛笔风格的手写笔迹,以得到一条笔画粗细和笔墨浓淡变化平滑的手写笔迹。
如图3所示,本发明还提供一种电子设备1。所述电子设备1包括:轨迹输入装置11、捕获模块12、速度计算模块13、笔迹处理模块14和美化处理模块15。
所述轨迹输入装置11包括任何能够手动输入轨迹的装置,其包括但不限于:鼠标、触屏笔、触摸屏等。
所述捕获模块12用于当检测到所述轨迹输入装置11开始进行轨迹输入时,实时捕获所述轨迹上的轨迹点的坐标和时间,直至所述轨迹输入结束。
具体地,所述捕获模块12监测用户利用轨迹输入装置11进行手写输入的开始动作以及结束的动作,并在此期间,实时捕获所述轨迹输入装置11所经过的各轨迹点坐标和时间。
例如,所述捕获模块12监测到用户按下鼠标的动作时,确认手写输入开始,按预设时间间隔捕获鼠标所经过的各轨迹点,当监测到用户抬起鼠标的动作时,确认手写输入结束。
所述速度计算模块13用于从所述捕获模块12所捕获的第二个轨迹点开始,利用所述捕获模块12所捕获的第n个所述轨迹点、及此前所捕获的一个所述轨迹点的坐标和时间,来计算第n个所述轨迹点的速度,其中,n为大于1的整数。
具体地,所述速度计算模块13捕获第一个所述轨迹点时,仅记录所述轨迹点的坐标和时间,从捕获第二个所述轨迹点开始,实时计算所捕获的所有轨迹点的速度。
其中,捕获第n个所述轨迹点的速度的方式为利用所捕获的第n个轨迹点、及此前所捕获的一个轨迹点的坐标,计算所捕获的该两个轨迹点之间的位移;再根据所述位移与该两个轨迹点的时间之差的比值,来取得第n个所述轨迹点的速度。
例如,所述速度计算模块13先后捕获鼠标所经过的轨迹点P1的坐标(x1,y1)和时间t1,及轨迹点P2的坐标(x2,y2)和时间t2;接着,利用公式(1)所得到的轨迹点P1和P2之间的平均速度v,并将所述平均速度v作为轨迹点P2的速度。
所述笔迹处理模块14用于基于预设的轨迹点的速度分别与手写笔迹的尺寸和透明度的对应关系、以及所述速度计算模块13所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的尺寸和透明度。
具体地,预设的轨迹点的速度与手写笔迹的尺寸的对应关系、及速度与手写笔迹的透明度的对应关系是根据人们的书写习惯的经验进行计算得到的,例如,根据对人们书写习惯的统计,书写速度越快,手写笔迹就越细;书写速度越快,手写笔迹就越透明。因此,所述速度分别与手写笔迹的尺寸和透明度的对应关系可以是成比例的对应关系。
优选地,如图4所示,所述笔迹处理模块14包括:笔迹尺寸处理子模块141、笔迹透明度处理子模块142。
所述笔迹尺寸处理子模块141用于基于预设的轨迹点的速度与手写笔迹的尺寸的线性关系、以及所述速度计算模块13所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的尺寸。
例如,所述笔迹尺寸处理子模块141利用公式(2)来确定所捕获的第n个轨迹点所对应的手写笔迹的尺寸。
其中,W表示第n个轨迹点所对应的手写笔迹的尺寸;v表示第n个所述轨迹点手写速度,参数W
max、W
min分别表示手写笔迹的尺寸的最大值和最小值,v
max、v
min分别表示所述轨迹点的速度的最大值和最小值;W
max、W
min、v
max、v
min能够调整所述尺寸变化效果
表示所述尺寸的变化程度,它的值越大,则所述尺寸变化越明显。
其中,Wmax、Wmin、vmax、vmin可为预设的固定值,也可以由用户预先设定。
所述笔迹透明度处理子模块142用于基于预设的轨迹点的速度与手写笔迹的透明度的线性关系、以及所述速度计算模块13所计算出的第n个所述轨迹点的速度,来确定第n个所述轨迹点所对应的手写笔迹的透明度。
例如,所述笔迹透明度处理子模块142利用公式(3)来确定所捕获的第n个轨迹点所对应的手写笔迹的尺寸。
其中,A表示第n个轨迹点所对应的手写笔迹的透明度;v表示第n个所述轨迹点手写速度,参数A
max、A
min分别表示手写笔迹的透明度的最大值和最小值,v
max、v
min分别表示所述轨迹点的速度的最大值和最小值;A
max、A
min、v
max、v
min能够调整所述透明度变化效果
表示所述透明度的变化程度,它的值越大,则所述透明度变化越明显。
其中,Amax、Amin、vmax、vmin可为预设的固定值,也可以由用户预先设定。
需要说明的是,按照公式(2)、(3)所捕获的第一个所述轨迹点由于速度为0,则其所对应的手写笔迹的尺寸和透明度可以均为最大值。
优选地,所捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度均为预设值。
例如,预设捕获的第一个所述轨迹点所对应的手写笔迹的尺寸和透明度分别为1个像素和50%的透明度。
所述美化处理模块15用于利用预设的轨迹分段规则,将所捕获的多个轨迹点所构成的每一段轨迹按照所述笔迹处理模块14所取得的所述轨迹点各自所对应的尺寸和透明度进行美化处理,以得到美化后的手写笔迹。
具体地,所述美化处理模块15在捕获到满足预设数量的轨迹点时,开始对这些轨迹点所构成的轨迹按照所述轨迹点各自所对应的尺寸和透明度进行图像处理,以得到该段轨迹所对应的手写笔迹,然后当再捕获相应数量的轨迹点时,将该段轨迹点所构成的轨迹按照相应轨迹点各自所对应的尺寸和透明度进行图像处理;依此类推,所述美化处理模块15分段地将各所述轨迹点所构成的轨迹进行美化处理,以得到连续的手写笔迹。
例如,所述美化处理模块15按照预设的美化处理的方案,将已捕获的P1、P2、P3三个轨迹点所构成的轨迹进行美化处理,然后将再捕获的轨迹点P3、P4和P5所构成的轨迹进行美化处理,以得到笔画为点的完整的手写笔迹。
优选地,如图5所示,所述美化处理模块15包括:插值处理子模块151、插值点的笔迹处理子模块152、美化处理子模块153。
所述插值处理子模块151用于利用预设的分段规则,将所述捕获模块12所捕获的多个轨迹点所构成的每一段轨迹进行插值处理,以得到由插值点和所述轨迹点所构成的平滑轨迹。其中,插值处理的方式包括但不限于:利用DDA插值算法进行插值处理。优选地,插值处理的方式为利用贝塞尔曲线算法进行插值处理。
具体地,所述插值处理子模块151利用公式(4),将每一段轨迹进行插值处理;
Bn(t)=MidPoint(P2n-2,P2n-1)(1-t)3+3P2n-1t(1-t)2+3P2nt2(1-t)+MidPoint(P2n,P2n+1)t3 (4)
其中,Bn(t)表示插值点的坐标的集合;P2n-2、P2n-1、P2n、P2n+1均为所捕获的所述轨迹点的坐标;n为大于1的整数;t为步进次数、MidPoint(P2n-2,P2n-1)表示所述轨迹点P2n-2、P2n-1的中点的坐标,也是插值处理后的轨迹的起点;MidPoint(P2n,P2n+1)表示所述轨迹点P2n、P2n+1的中点的坐标,也就是插值处理后的轨迹的终点。
优选地,所述插值处理子模块151还利用公式(5)对第一段所述轨迹进行插值处理;
B1(t)=P1(1-t)3+3P2t(1-t)2+3P3t2(1-t)+MidPoint(P3,P4)t3 (5)
其中,B1(t)表示第一段所述轨迹中的插值点的坐标的集合;P1、P2、P3、P4均为所捕获的所述轨迹点的坐标;t为步进次数;MidPoint(P3,P4)表示所述轨迹点P3、P4的中点的坐标。
所述插值点的笔迹处理子模块152用于根据经插值处理后的所述轨迹上的各所述轨迹点所对应的尺寸和透明度来确定所述插值点各自所对应的手写笔迹的尺寸和透明度。
具体地,所述插值点的笔迹处理子模块152按照相邻轨迹点之间插入的插值点的数量,对相邻的轨迹点所对应的手写笔迹的尺寸和透明度进行均分,以得到每一个插值点所对应的手写笔迹的尺寸和透明度。
例如,所述插值点的笔迹处理子模块152按照公式(4)将轨迹点P3、P4、P5和P6所构成的轨迹进行插值处理,以得到插值点集合B2(t),其包括{P3’,P41’,P42’,P43’,P51’,P52’,P53’,P6’}个插值点,其中,插值点P3’为经插值处理后的轨迹的起点的坐标,{P41’,P42’,P43’}插值点为轨迹点P4、P5之间的插值点的坐标,{P51’,P52’,P53’}插值点为轨迹点P5、P6之间的插值点的坐标,P6’为经插值处理后的轨迹的终点的坐标;则所述插值点的笔迹处理子模块152按照轨迹点P3、P4各自所对应的手写笔迹的尺寸的平均值来确定起点P3’所对应的手写笔迹的尺寸,按照轨迹点P3、P4各自所对应的手写笔迹的透明度的平均值来确定起点P3’所对应的手写笔迹的透明度;类似的,所述终点P6’所对应的手写笔迹的尺寸和透明度由轨迹点P5和P6各自所对应的手写笔迹的尺寸和透明度的平均值来得到;插值点{P41’,P42’,P43’}各自所对应的手写笔迹的尺寸和透明度则通过等分轨迹点P4、P5各自所对应的尺寸和透明度计算而得;插值点{P51’,P52’,P53’}各自所对应的手写笔迹的尺寸和透明度则通过等分轨迹点P5、P6各自所对应的尺寸和透明度计算而得。
优选地,所述插值点的笔迹处理子模块152利用公式(6)来取得各插值点所对应的手写笔迹的尺寸;
W(t)=(1-t)3BeginPt.Width+3t(1-t)2ControlPt1.Width (6);
+3t3(1-t)ControlPt2.Width+t3EndPt.Width
其中,W(t)表示插值点所对应的手写笔迹的尺寸的集合;BeginPt.Width表示所述轨迹的起点所对应的手写笔迹的尺寸;ControlPt1.Width、ControlPt2.Width分别表示所述起点和终点之间的两个所述轨迹点所对应的手写笔迹的尺寸;EndPt.Width表示所述轨迹的终点所对应的手写笔迹的尺寸。
类似的,所述插值点的笔迹处理子模块152利用公式(7)来取得各插值点所对应的手写笔迹的透明度;
A(t)=(1-t)3BeginPt.Alpha+3t(1-t)2ControlPt1.Alpha (7);
+3t3(1-t)ControlPt2.Alpha+t3EndPt.Alpha
其中,A(t)表示插值点的透明度的集合;BeginPt.Alpha表示插值处理后的所述轨迹的起点的透明度;ControlPt1.Alpha、ControlPt2.Alpha表示所述起点和终点之间的两个所述轨迹点的透明度;EndPt.Alpha表示插值处理后的所述轨迹的终点的透明度。
其中,所述轨迹的起点和终点若是插值点,则所述美化系统基于所述起点和终点各自在缩放后的相邻的轨迹点之间的位置,来确定所述起点和终点各自所对应的手写笔迹的透明度。
本实施例中,所述起点为相邻两个所述轨迹点的中点,则所述起点所对应的手写笔迹的透明度为该两轨迹点各自所对应的透明度的平均值。确定所述终点所对应的手写笔迹的透明度的方式与确定所述起点所对应的手写笔迹的透明度的方式相同或相似。
所述美化处理子模块153用于利用经插值处理后的轨迹的插值点、以及轨迹点各自所对应的手写笔迹的尺寸和透明度,将插值处理后的轨迹美化处理成尺寸和透明度连续变化的手写笔迹。
需要说明的是,所述美化处理子模块153可按照所述步骤S4中的方式将插值点、以及轨迹点依所述轨迹的顺序转换成尺寸和透明度连续变化的手写笔迹。
优选地,所述美化处理子模块153按照预设的手写笔迹的模板,将所述轨迹点和插值点依次以相应的尺寸和透明度进行手写笔迹的拼接处理。其中,手写笔迹的模板包括但不限于:毛笔风格的模板、钢笔风格的模板等。其中,所述拼接处理的方式包括但不限于:图像渲染的方式等。
例如,预设的手写笔迹的模板为毛笔风格的模板,经过插值处理后的轨迹上的轨迹点和插值点依次为{P3’,P4,P41’,P42’,P43’,P5,P51’,P52’,P53’,P6,P6’},其中,P4、P5、P6为轨迹点,其他点为插值点,则所述美化处理子模块153按在步骤S42中取得的各点所对应的手写笔迹的尺寸和透明度,依次在各点附近渲染出尺寸和透明度相符合的毛笔风格的手写笔迹,以得到一条笔画粗细和笔墨浓淡变化平滑的手写笔迹。
所述电子设备1的工作过程如下:
用户利用所述轨迹输入装置11进行手写输入,所述捕获模块12基于用户进行手写输入的开始动作时起,直至结束动作时止,实时捕获所述轨迹输入装置11所经过的轨迹点的坐标和时间,并将所捕获的轨迹点的坐标和时间提供给所述速度计算模块13,以供所述速度计算模块13计算所述轨迹点的速度;再基于预设的轨迹点的速度与手写笔迹的尺寸和透明度的线性关系,由笔迹处理模块14计算出所捕获的轨迹点所对应的手写笔迹的尺寸和透明度;再由所述美化模块中的插值处理子模块151对所捕获的多个轨迹点所构成的轨迹进行插值平滑处理,并取得多个插值点,再由插值点的笔迹处理子模块152基于相应的所述轨迹点所对应的尺寸和透明度来取得各插值点所对应的尺寸和透明度,再由所述美化子处理模块将各所述插值点和轨迹点依次进行渲染处理,以得到手写笔迹的尺寸和透明度都平滑变化的手写笔迹,即笔画或笔锋。
综上所述,本发明的实时手写笔迹的美化方法及电子设备,通过实时捕获轨迹点的坐标和时间来获取轨迹点的速度,并依据各轨迹点的速度与手写笔迹的尺寸和透明度的对应关系来对各轨迹点所构成的轨迹进行美化处理,由此,能够有效地取得具有用户书写风格的笔锋、笔画;另外,利用三阶贝赛尔曲线算法来进行插值处理,能够得到平滑效果出色的轨迹;并且,利用贝赛尔曲线算法来计算各插值点所对应的手写笔迹的尺寸和透明度,能够得到笔迹宽度、透明度平滑变化的笔锋、笔画,更能体现用户的笔体风格。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。