CN112365565A - 笔触处理方法、装置、设备及存储介质 - Google Patents
笔触处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112365565A CN112365565A CN202110045230.XA CN202110045230A CN112365565A CN 112365565 A CN112365565 A CN 112365565A CN 202110045230 A CN202110045230 A CN 202110045230A CN 112365565 A CN112365565 A CN 112365565A
- Authority
- CN
- China
- Prior art keywords
- target
- sampling period
- pen
- current sampling
- point
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 238000007781 pre-processing Methods 0.000 claims abstract description 18
- 238000005070 sampling Methods 0.000 claims description 207
- 230000000875 corresponding effect Effects 0.000 claims description 184
- 238000001914 filtration Methods 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 20
- 230000036961 partial effect Effects 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 238000009877 rendering Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000010339 dilation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012888 cubic function Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种笔触处理方法、装置、设备及存储介质,通过获取采集设备采集到的一个或多个笔触点,根据该一个或多个笔触点,确定待绘制的一个或多个目标点。根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。采用本申请,笔触笔迹的边缘较为平滑,从而避免了笔触笔迹出现边缘锯齿的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种笔触处理方法、装置、设备及存储介质。
背景技术
随着计算机技术的不断发展,终端设备的功能越来越强大。例如,用户可以在带有输入设备例如鼠标、触屏、数位板的终端设备上进行笔触书写。
但是,一般笔触书写出的内容会出现边缘锯齿。从而导致用户在终端设备上书写出的内容不够平滑,用户体验不好。
发明内容
本申请提供了一种笔触处理方法、装置、设备及存储介质。
根据本申请的一方面,提供了一种笔触处理方法,包括:
获取采集设备采集到的一个或多个笔触点;
根据该一个或多个笔触点,确定待绘制的一个或多个目标点;
根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
根据本申请的另一方面,提供了一种笔触处理装置,该装置包括:
获取模块,用于获取采集设备采集到的一个或多个笔触点;
确定模块,用于根据该一个或多个笔触点,确定待绘制的一个或多个目标点;
处理模块,用于根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本申请任意一实施例所提供的方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行本申请任意一项实施例所提供的方法。
采用本申请,通过获取采集设备采集到的一个或多个笔触点,根据该一个或多个笔触点,确定待绘制的一个或多个目标点。进一步,根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。由于纹理图像是经边缘预处理后得到的纹理图像,因此,采用该纹理图像进行贴图处理所得到的笔触笔迹,其边缘较为平滑,避免了笔触笔迹出现边缘锯齿的问题,从而使得用户在终端设备上书写出的内容可以足够平滑,提高了用户体验。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1为本申请一实施例的笔触处理方法的流程图;
图2为本申请一实施例的应用场景的示意图;
图3为本申请一实施例的应用场景的示意图;
图4为本申请另一实施例的应用场景的示意图;
图5为本申请另一实施例的纹理图像的示意图;
图6为本申请一实施例的纹理图像及笔触的示意图;
图7为本申请另一实施例的笔触处理方法的流程图;
图8为本申请一实施例的同一采样周期对应的目标曲线的示意图;
图9为本申请一实施例的不同采样周期对应的目标曲线的示意图;
图10为本申请另一实施例的笔触处理的流程图;
图11为本申请一实施例的线性收锋的示意图;
图12为本申请一实施例的采用线性收锋的笔触笔迹的示意图;
图13为本申请一实施例的非线性收锋的示意图;
图14为本申请一实施例的采用非线性收锋的笔触笔迹的示意图;
图15为本申请另一实施例的笔触处理的流程图;
图16为本申请另一实施例的笔触笔迹的示意图;
图17为本申请另一实施例的笔触处理的流程图;
图18为本申请一实施例的笔触处理装置的结构示意图;
图19为本申请一实施例的笔触处理设备的结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
一般笔触书写出的内容会出现边缘锯齿。从而导致用户在终端设备上书写出的内容不够平滑,用户体验不好。为了解决该问题,本申请实施例提供了一种笔触处理方法。下面结合具体的实施例对本申请实施例提供的一种笔触处理方法进行详细介绍。
图1示出根据本申请一实施例的笔触处理方法的流程图。如图1所示,该方法可以包括:
S101、获取采集设备采集到的一个或多个笔触点。
本实施例所述的笔触处理方法可以适用于如图2所示的应用场景。例如,终端设备21可以连接有输入设备22,该输入设备22具体可以是鼠标,终端设备21的屏幕中可以显示有鼠标标识23。用户通过该鼠标标识23可以在终端设备21上进行笔触书写。同时,终端设备21还可以将用户笔触书写的内容渲染或显示在终端设备21的屏幕中。该终端设备21具体可以是笔记本电脑、台式机、平板电脑等。
另外,本实施例所述的笔触处理方法还可以适用于其他的应用场景,例如,图3所示的应用场景。该应用场景中包括终端设备31,终端设备31可以包括触摸屏,触摸屏可以简称触屏。用户可以通过手指在该触摸屏上进行笔触书写。可以理解的是,带触屏的终端设备31不限于智能手机,例如,还可以是平板电脑、掌上电脑等。可以理解的是,对于带触屏的终端设备,用户还可以通过触控笔进行笔触书写。
此外,本实施例所述的笔触处理方法还可以适用于如图4所示的应用场景,该应用场景中的终端设备41可以包括压感设备,该压感设备可以检测笔触的压力值。具体的,该终端设备41可以是数位板,也可以是其他带有压感设备的终端设备。如图4所示,用户可以通过压感笔42在该数位板41上进行笔触书写,或者用户也可以通过手指在该数位板41上进行笔触书写。
在本实施例中,可以将鼠标、触屏、数位板等输入设备记为指针(pointer)设备。指针设备可以作为采集设备采集用户在终端设备上的滑动轨迹中的一个或多个笔触点。笔触可以是将采集设备采集到的笔触点渲染出来的能力。
可选的,获取采集设备采集到的一个或多个笔触点,包括:获取该采集设备在一个或多个采样周期内分别采集到的一个或多个笔触点。
例如,采集设备可以周期性的采集笔触点,从而得到采集点。具体的,采集点可以与硬件设备相关,目前主要以接收通用pointer消息来采集。本实施例以带鼠标或触控笔的终端设备为例进行示意性说明。采集设备可以按照采样周期采集笔触点。例如,采集设备可以在每个采样周期内采集到一个或多个笔触点。本实施例并不限定该采样周期的时长,例如可以是60ms。
S102、根据该一个或多个笔触点,确定待绘制的一个或多个目标点。
例如,终端设备可以对采集设备在每个采样周期中采集到的一个或多个笔触点进行滤波处理,并根据滤波处理后的笔触点拟合出一条或多个曲线。进一步,在拟合出的一条或多个曲线中确定出待绘制的一个或多个目标点。
S103、根据边缘预处理后的纹理图像,在所述一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
具体的,在终端设备确定出待绘制的一个或多个目标点的情况下,终端设备可以根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理即纹理贴图,从而得到笔触笔迹。其中,边缘预处理后的纹理图像可以是预先设置好的,该纹理图像还可以称为笔头的纹理图片或已生成的笔头图片。其中,待绘制的目标点也可以称为待绘制坐标点,在每个目标点上进行贴图处理可以理解为在每个待绘制坐标点的位置上逐个进行贴图。每个待绘制坐标点经过纹理贴图之后即可得到笔触笔迹,该笔触笔迹还可以记为绘制笔迹。
如图5所示,51所示为边缘预处理后的纹理图像,52所示为边缘没有预处理的纹理图像。例如,纹理图像51的边缘较为模糊,纹理图像52的边缘较为清晰。在每个目标点上进行贴图处理具体可以是在每个目标点上贴上该边缘预处理后的纹理图像51。可以理解的是,在多个目标点足够密集的情况下,在每个目标点上贴上该边缘预处理后的纹理图像51的情况下,可以使得任意相邻的两个目标点上分别贴上的纹理图像51有较大的重合范围,从而可以得到笔触笔迹,例如一条连续的笔画。由于纹理图像51的边缘较为模糊,因此,在多个目标点足够密集的情况下,即大量纹理图像51中相邻纹理图像51高度重合的情况下,可使得重合形成的笔触笔迹的边缘较为平滑。相反,在采用边缘没有预处理的纹理图像52对多个目标点进行贴图处理的情况下,由于纹理图像52的边缘较为锐利,因此,大量纹理图像52重合形成的笔触笔迹的边缘可能会出现毛刺,从而导致笔触笔迹的边缘不够平滑。
本申请实施例通过获取采集设备采集到的一个或多个笔触点,根据该一个或多个笔触点,确定待绘制的一个或多个目标点。进一步,根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。使得笔触笔迹的边缘较为平滑,从而避免笔触笔迹出现边缘锯齿。从而使得用户在终端设备上书写出的内容可以足够平滑,提高了用户体验。
可以理解的是,本实施例并不限定边缘预处理后的纹理图像的具体形状。例如,除了图5所示的圆形的纹理图像51之外,还可以是三角形、树叶形、带倾斜角度的椭圆形。也就是说,各种不同形状的纹理图像可以满足笔触绘制的灵活性和差异性。例如图6所示以带倾斜角度的椭圆形60为例,由带倾斜角度的椭圆形60构成的笔画例如“撇”即61所示的宽度大于“捺”即62所示的宽度。也就是说,同一个边缘预处理后的纹理图像,构成的不同笔画的宽度不同。使得同一个字的不同笔画宽度可以是不同的,从而使得用户在终点设备上的笔触书写可以模仿真实的书写环境,提高了笔触书写的真实性。另外,在笔触使用带倾斜角度的椭圆形的情况下,还可以使得笔画的线条更有层次感。
另外,采用纹理贴图还可以充分利用图形处理器(Graphics Processing Unit,GPU)进行加速。而如果绘制矢量曲线,则性能会低于像素级(pixel-wise)的渲染。其次,采用纹理贴图的方式还可以预处理边缘,从而可以减少实时抗锯齿的运算量。例如,现有技术的笔触不是通过贴图方式实现的,而是通过点的方式实现笔触,例如,基于点的中心画固定半径的圆。该现有技术的缺陷一方面在于无法收锋,另一方面需要实时的针对每个点去做抗锯齿处理,导致性能较低。而本实施例通过纹理贴图的方式实现每个目标点的笔触,可以将抗锯齿等处理预先放在纹理图像的制作过程中,从而提高了性能。
此外,通过微分绘制可以精细的控制每一个目标点上的纹理图像的大小即笔触宽度,避免出现突兀的宽度变化。在逐个坐标点贴图积分的粒度足够细的情况下,即可以生成轨迹。
在上述实施例的基础上,根据该一个或多个笔触点,确定待绘制的一个或多个目标点,包括如图7所示的如下几个步骤:
S701、对该一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点。
具体的,终端设备可以对采集设备已采集到的所有笔触点的坐标进行滤波处理。例如,每个当前的笔触点的坐标可以记为(X1,Y1),每个当前的笔触点的上一个笔触点的坐标可记为(X0,Y0),对每个当前的笔触点进行滤波处理后的坐标点可以记为(Xn,Yn),(Xn,Yn)可以通过如下公式(1)和公式(2)得到:
Xn=X0*a+X1*(1-a)(1)
Yn=Y0*a+Y1*(1-a)(2)
其中,a的值为系数权重值,介于0-1之间,a的值具体可以是经验值,例如一般为0.3左右。X表示横坐标,Y表示纵坐标。公式(1)和公式(2)可以作为一种加权滤波的方法。
具体的,终端设备可以对采集设备采集到的每个笔触点逐个进行滤波处理。
可选的,对该一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点,包括:对该采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到该当前采样周期对应的滤波处理后的一个或多个笔触点。
具体的,采集设备可以按照固定的采样周期对笔触点进行周期性采样。例如,采集设备每隔60ms采集一次笔触点,并且每次可以采集一个或多个笔触点。也就是说,采集设备的采样周期为60ms。进一步,可以对每个采样周期内采集到的一个或多个笔触点分别进行滤波处理。例如,对采集设备在当前采样周期内采集到的一个或多个笔触点逐个进行滤波处理,从而得到当前采样周期对应的滤波处理后的一个或多个笔触点。
可选的,对该采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到该当前采样周期对应的滤波处理后的一个或多个笔触点之后,该方法还包括:在该采集设备在当前采样周期内采集到的一个或多个笔触点的最后一个笔触点为连续笔画的收尾点的情况下,对该采集设备在当前采样周期内采集到的一个或多个笔触点中末尾的一个或多个笔触点进行补偿。
可以理解的是,加权滤波可能会导致连续一个笔画的最后停笔的点信息丢失,即连续笔画的收尾点可能会被丢掉。例如,在公式(1)和公式(2)中,在a的值偏向于(X0,Y0)的情况下,可能会导致滤波后的当前的笔触点的坐标值(Xn,Yn)偏向于上一个笔触点的坐标(X0,Y0),从而可能把最后收尾点的坐标例如(X1,Y1)给丢掉。因此,本实施例还可以对收尾点的坐标做补偿计算。具体的,补偿计算可以根据鼠标的停留来生成相同的点,从而补偿因为滤波而被丢掉的点所造成的损失。
例如,针对采集设备在当前采样周期内采集到一个或多个笔触点的情况下,可以判断该当前采样周期内采集到一个或多个笔触点的最后一个笔触点是否为连续笔画的收尾点。在该最后一个笔触点是连续笔画的收尾点的情况下,可以对采集设备在当前采样周期内采集到一个或多个笔触点中末尾的一个或多个笔触点进行补偿。也就是说,在对每个采样周期内的最后一个笔触点进行过滤计算之前,可以将参与补偿运算的点先缓存下来。该参与补偿运算的点可以是每个采样周期内末尾的一个或多个笔触点。在确定出某个采样周期内的最后一个笔触点是连续笔画的收尾点的情况下,说明笔触发生了新的位移,因此可以补偿该采样周期内末尾的一个或多个笔触点。也就是说,可以补偿该采样周期内末尾的一个笔触点,也可以补偿该采样周期内最后的多个笔触点。但是,经过测试发现,在一些场景中,补偿该采样周期内末尾的一个笔触点即可。此外,在一些场景中,如果鼠标点不动,则不进行补偿。
S702、根据该滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线。
例如,终端设备对采集设备已采集到的所有笔触点的坐标进行滤波处理,得到滤波处理后的所有笔触点的坐标的情况下,可以进一步根据该滤波处理后的所有笔触点的坐标,拟合出一个或多个目标曲线。
可选的,根据该滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线,包括:根据该当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出该当前采样周期对应的一个或多个目标曲线。
该目标曲线可以是二阶贝塞尔曲线或三阶贝塞尔曲线。其中,二阶贝塞尔曲线可以根据权重生成一个控制点,而G1连续的点需要多个点进行共同拟合。拟合的方法可以是根据滤波处理后的一个或多个笔触点生成初始曲线,进一步采用牛顿迭代法来做逼近,通过微分的均方差与超参的比值来拟合。但是,本实施例所述的目标曲线的拟合,并不是全局拟合,而是局部拟合。其中,全局拟合是在连续的一个笔画完全书写完成的情况下,根据该笔画所对应的所有的笔触点进行全局拟合,从而拟合出一条曲线。而本实施例所述的局部拟合是针对采集设备在每个采样周期中采集到的笔触点拟合出一个或多个目标曲线,即边采集边拟合。例如,针对采集设备在当前采样周期对应的滤波处理后的一个或多个笔触点,进行三阶贝塞尔曲线的拟合,从而拟合出该当前采样周期对应的一个或多个目标曲线。
可选的,根据该当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出该当前采样周期对应的一个或多个目标曲线,包括:根据该当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出该当前采样周期对应初始曲线;根据该当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与该初始曲线之间的距离,对该初始曲线进行调整,得到该当前采样周期对应的一个或多个目标曲线。
例如,以采集设备在当前采样周期采集到的一个或多个笔触点为例,终端设备可以对当前采样周期内采集到的一个或多个笔触点进行滤波处理以及补偿处理,得到当前采样周期对应的滤波处理后的一个或多个笔触点。进一步,基于预设值,对当前采样周期对应的滤波处理后的一个或多个笔触点拟合出一条初始曲线。然后针对这条拟合出的初始曲线,采用牛顿迭代法来做逼近。逼近的过程具体可以是:根据当前采样周期对应的滤波处理后的每个笔触点分别与该条初始曲线求方差,该方差可以是每个滤波处理后的笔触点到该条初始曲线的垂直距离。进一步,对每个垂直距离进行加权求方差,在该加权求得的方差大于如上所述的预设值的情况下,可以根据加权求得的方差调整该初始曲线,以使该方差变小,使得该方差小于该预设值,从而得到该当前采样周期对应的一个或多个目标曲线。该加权求得的方差越小,说明调整后的初始曲线与原始的笔触点越接近。
可选的,根据该当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与该初始曲线之间的距离,对该初始曲线进行调整,得到该当前采样周期对应的一个或多个目标曲线,包括:确定该初始曲线上的一个或多个拐点;根据该一个或多个拐点将该初始曲线划分为多段部分曲线;根据该当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与该初始曲线之间的距离、以及该多段部分曲线,得到该当前采样周期对应的多个目标曲线。
具体的,一个采样周期内的笔触点可以拟合出一个或多个目标曲线,该目标曲线的数量与采样周期内笔触点的位置变化有关。例如,在某个采样周期内笔触点的变化比较多的情况下,一条目标曲线可能无法表达,此时可以采用多个目标曲线来表达。具体的,可以在初始曲线上预先找到变化率比较大的点作为拐点,该初始曲线上的拐点可以是一个或多个。进一步,基于该一个或多个拐点将该初始曲线切分为多段部分曲线。进一步,针对该多段部分曲线中的每一段部分曲线进行如上所述的逼近,从而得到该采样周期对应的多个目标曲线。
S703、根据该一个或多个目标曲线,确定该待绘制的一个或多个目标点。
例如,终端设备根据该滤波处理后的所有笔触点的坐标,拟合出一个或多个目标曲线的情况下,还可以进一步根据该一个或多个目标曲线确定该待绘制的一个或多个目标点。
可选的,根据该一个或多个目标曲线,确定该待绘制的一个或多个目标点,包括:确定该当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的该待绘制的一个或多个目标点。
例如图8所示的目标曲线AB和目标曲线BE是当前采样周期对应的多个目标曲线。进一步,可以从目标曲线AB和目标曲线BE中分别获取待绘制的一个或多个目标点。
具体的,目标曲线AB和目标曲线BE处于G1连续状态。其中,G1连续状态是一个相对于G0连续状态的概念。具体的,G0连续状态是指一条曲线的一个端点与另一条曲线的一个端点相重合,此时可以认为这两条曲线在这一个端点的连接处于G0连续状态,G0连续也可称为位置连续。G0连续不要求相切(斜率)和曲率(斜率改变)这两方面都连续。G1连续状态是指两条曲线在某一点处于G0连续状态,并且该两条曲线在该点的法线相同,该两条曲线在该点的切线的夹角为零度,此时可以认为这两条曲线在该点的连接处于G1连续状态。具体的,本实施例中同一个采样周期对应的多个目标曲线之间可以保持G1连续状态。例如,根据每次运算的结束点例如点B和点B的控制点D之间的连线生成该连线的反向量BF,该反向量BF可以作为下一起始点例如点B的锚点。
可选的,确定该当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的该待绘制的一个或多个目标点,包括:根据该当前采样周期对应的一个或多个目标曲线中每个目标曲线的第一起始点、第一末尾点、该第一起始点对应的控制点和该第一末尾点对应的控制点,确定该当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的该待绘制的一个或多个目标点。
例如图8所示的C点为目标曲线AB的起始点A对应的控制点,D点为目标曲线AB的末尾点B对应的控制点。该起始点A可以记为第一起始点。该末尾点B可以记为第一末尾点。进一步,根据点A、点B、点C和点D可以确定出该目标曲线AB上的待绘制的一个或多个目标点。例如,点A的坐标可以记为P0,点C的坐标可以记为P1,点B的坐标可以记为P2,点D的坐标可以记为P3,待绘制的目标点的坐标可以记为P,P可以通过如下三阶公式(3)计算得到:
P= P0*(1-t)^3+3*P1*(1-t)*t+3*P2*(1-t)*t^2+P3*t^3(3)
其中,P是目标曲线AB上的点。由t=0到t=1做微分,再计算出待绘制的目标点P,具体方法为:控制t按照固定步长从0到1进行取值,t每取一个值,将P0、P1、P2、P3的值分别代入公式(3)中。例如,将P0、P1、P2、P3分别对应的横坐标X值代入公式(3)中可以计算得出P点的横坐标,将P0、P1、P2、P3分别对应的纵坐标Y值代入公式(3)中可以计算得出P点的纵坐标。也就是说,t每取一个值即可根据公式(3)计算出一个P。在t不断的取值过程中,可以得到该目标曲线AB上的多个P即多个待绘制的目标点。
同理,图8中点F是目标曲线BE的起始点B对应的控制点,H是目标曲线BE的末尾点E对应的控制点。起始点B可以记为第一起始点。末尾点E可以记为第一末尾点。进一步,根据点B、点E、点F和点H可以确定出该目标曲线BE上的待绘制的一个或多个目标点。具体确定过程可以参照上述公式(3)此处不再赘述,从而得到当前采样周期对应的多个目标曲线例如目标曲线AB和目标曲线BE中每个目标曲线上的待绘制的一个或多个目标点。
本申请实施例在对每个采样周期内的最后一个笔触点进行过滤计算之前,将参与补偿运算的点先缓存下来。该参与补偿运算的点可以是每个采样周期内末尾的一个或多个笔触点。在确定出某个采样周期内的最后一个笔触点是连续笔画的收尾点的情况下,通过补偿该采样周期内末尾的一个或多个笔触点,可以避免因为滤波而被丢掉的点所造成的损失。另外,本实施例通过局部拟合可以实时的拟合出目标曲线,从而可以提高目标曲线的拟合效率。
由于本实施例可以在实时书写的过程中做局部拟合,即针对每个采样周期内的笔触点都可以拟合出相应的目标曲线。那么针对多个采样周期,可以控制上一个采样周期对应的目标曲线与当前采样周期对应的目标曲线保持连续性,即控制不同采样周期之间的目标曲线保持连续性。
可选的,还包括:该当前采样周期对应的第一曲线和该当前采样周期的下一个采样周期对应的第二曲线执行平滑过渡,其中,该第一曲线为该当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线,该第二曲线为该下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线。
如图9所示,当前采样周期对应的目标曲线为AB和BE,其中,目标曲线BE是该当前采样周期对应的最后一个目标曲线,该当前采样周期对应的最后一个目标曲线可以记为第一曲线。EI可以是该当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线,该下一个采样周期对应的第一个目标曲线可以记为第二曲线。具体的,目标曲线BE和目标曲线EI之间可以在E点平滑过渡。
可选的,该方法还包括如图10所示的如下几个步骤:
S1001、确定该当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线的第二末尾点和该第二末尾点的控制点之间的连线。
例如,可以将图9中当前采样周期对应的最后一个目标曲线BE的末尾点E记为第二末尾点,末尾点E对应的控制点为H。进一步,确定末尾点E和控制点H之间的连线。
S1002、确定该连线的反向量,该当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线与该反向量相切。
例如,在确定出末尾点E和控制点H之间连线的情况下,可以进一步确定该连线的反向量,例如,反向量为EJ。在拟合当前采样周期的下一个采样周期对应的一个或多个目标曲线的过程中,可以控制该下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线例如EI与该反向量EJ相切,从而使得当前采样周期的最后一个目标曲线BE与下一个采样周期的第一个目标曲线EI在E点平滑过渡。也就是说,本实施例可以通过上述步骤S1001和S1002可以使得相邻两个采样周期之间的目标曲线满足G1连接状态。
本申请实施例通过确定该当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线的第二末尾点和该第二末尾点的控制点之间的连线,确定该连线的反向量。进一步,控制该当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线与该反向量相切,可以使得相邻两个采样周期之间的目标曲线平滑过渡。从而可以提高笔触书写的流畅感,以便提高用户体验。
在上述实施例的基础上,根据边缘预处理后的纹理图像,在所述一个或多个目标点中的每个目标点上进行贴图处理,包括:在该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点上贴上该纹理图像。
例如,在图9所示的基础上,可以得到每个目标曲线上的一个或多个目标点P。进一步,可以在每个目标点P上进行纹理贴图,即在每个目标点P的位置贴上边缘预处理后的纹理图像。
可选的,该每个目标点上所贴的该纹理图像中的预设点与该目标点重合。例如,纹理图像可以是规则图像,也可以是不规则图像,具体图像此处不做限定。在每个目标点P的位置进行纹理贴图的过程中,可以控制该纹理图像中的预设点与该目标点重合,从而得到如上所述的笔触笔迹。
可选的,该纹理图像中的预设点为该纹理图像的中心点。例如,可以控制该纹理图像的中心点与目标点重合,从而得到笔触笔迹。
可选的,在该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点上贴上该纹理图像,包括:控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像逐渐减小。
例如,采集设备周期性的采集笔触点,因此,从屏幕中看到的内容可能会比已经书写的内容慢若干个采样周期的内容。例如,在抬笔的一瞬间还有若干个采样周期的内容没有展示在屏幕中。在这种情况下,可以对抬笔之前的若干个采样周期的内容进行收锋处理。例如,屏幕可以在1秒内显示60帧图像,在屏幕中看到的内容比已经书写的内容慢1个采样周期例如60ms的情况下,60ms大概可以显示3-4帧图像,相当于在抬笔的一瞬间还有3-4帧的图像未显示出来,即屏幕中显示的图像比实际交互晚3-4帧。在这种情况下,可以对抬笔之前的3-4帧进行收锋处理。例如,对抬笔之前的3-4帧的补帧计算过程中递减纹理图像的大小或宽度来实现收锋。收锋具体是在改变笔头的渲染宽度。通常情况下,在时间差小于80ms的情况下,对笔触书写的跟手性没有明显的影响。另外,收锋与抬笔时机和书写速度有关。例如,在书写速度较快的情况下,收锋比较长。在书写速度较慢的情况下,收锋比较短。
本实施例可以基于经验值,预留抬笔之前的预设数量的采样周期对应的一个或多个目标点进行收锋处理。
例如,图11所示的点K是连续一笔书写完成的情况下,用户抬笔之前的最后一个笔触点。110所示的若干个点可以是抬笔之前预设数量的采样周期对应的一个或多个目标点。具体的,可以对抬笔之前预设数量的采样周期对应的一个或多个目标点进行收锋处理,例如,控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像逐渐减小。
可选的,该抬笔之前的预设数量的采样周期对应的一个或多个目标点为该抬笔之前的预设数量的采样周期对应的所有目标点中的部分目标点或全部目标点。
例如,图11中110所示的若干个点可以是抬笔之前预设数量的采样周期对应的全部目标点。或者,110所示的若干个点可以是抬笔之前预设数量的采样周期对应的所有目标点中的部分目标点,例如,该部分目标点是该所有目标点末尾部分的若干个目标点。
可选的,控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像逐渐减小,包括:控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像线性减小或非线性减小。
如图11所示,控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像线性减小,并且每个目标点与其对应的纹理图像的中心点重合,即线性居中收锋。例如,线性居中收锋后的字体可以如图12所示。
另外,考虑到实际的书法衬线是非线性的朝某一边收锋。因此,在其他一些实施例中,还可以对“横”、“竖”、“撇”、“捺”、“提”等笔画做非线性的收锋,即以非线性控制方式进行贴图。例如可以采用三次函数减小收锋部分的纹理图像,而不是线性减小纹理图像。从而使得笔触更像书法,如图13和图14所示。例如,在图13中,可以控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像非线性减小,并且每个目标点与其对应的纹理图像的左上角重合,从而实现非线性收锋。
本申请实施例通过对抬笔之前的预设数量的采样周期对应的一个或多个目标点进行收锋处理,可以使得笔触更像书法,从而提高了笔触书写的真实感,进一步提高了用户体验。
以上实施例是以鼠标或触屏为例,但是,鼠标或触屏只能感知用户在某个地方有笔触,并不能感应出笔触的压力值。在针对带压力感应的设备的情况下,例如,数位板包括压感设备,该压感设备可以检测出笔触的压力值。
可选的,该目标点对应的压感值与该目标点上所贴的该纹理图像的大小,保持正相关。例如,在该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点上所贴的该纹理图像的大小与该目标点对应的压感值正相关。
例如,某个目标点对应的压感值较大,则该目标点上所贴的纹理图像较大,使得该目标点位置的书写较粗。若某个目标点对应的压感值较小,则该目标点上所贴的纹理图像较小,使得该目标点位置的书写较细。从而可以高保真的还原用户的书写粗细变化,该用户例如可以是老师。
可选的,该方法还包括如图15所示的如下几个步骤:
S1501、根据该采集设备在每个采样周期中采集到的一个或多个笔触点中每个笔触点对应的压感系数,得到滤波处理后的每个笔触点对应的压感值。
例如,在对采集设备采集到的笔触点进行滤波的过程中,可以增加压感系数的参与,再由最终的压感系数来决定每一个目标点对应的纹理图像的宽度或大小。从而使得硬件采集的系数可以参与到算法中,让笔迹随之具备宽度变化的特性。
例如,每个当前的笔触点的坐标可以记为(X1,Y1),每个当前的笔触点的上一个笔触点的坐标可记为(X0,Y0),对每个当前的笔触点进行滤波处理后的坐标点可以记为(Xn,Yn),(Xn,Yn)可以通过如下公式(4)和公式(5)得到。滤波处理后的坐标点(Xn,Yn)对应的压感值可以通过如下公式(6)计算得到:
Xn=X0*a+X1*(1-a)(4)
Yn=Y0*a+Y1*(1-a)(5)
Zn=Z0*a+Z1*(1-a)(6)
其中,Zn表示滤波处理后的坐标点(Xn,Yn)对应的压感值。Z0表示(X0,Y0)这一点对应的压感系数。Z1表示(X1,Y1)这一点对应的压感系数。
S1502、根据该滤波处理后的每个笔触点对应的压感值,确定该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点对应的压感值。
例如,根据如上所述的公式(3)、以及滤波处理后的每个笔触点对应的压感值,可以计算出该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点对应的压感值。
进一步,根据每个目标点对应的压感值控制贴图过程中每个目标点对应的纹理图像的大小或宽度。如图16所示为根据每个目标点对应的压感值控制每个目标点对应的纹理图像的大小或宽度的情况下,形成的笔触笔迹的示意图。
本申请实施例通过在该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点上所贴的该纹理图像的大小与该目标点对应的压感值正相关,可以高保真的还原用户的书写粗细变化。另外,本实例通过解决、优化笔触的边缘锯齿、宽度、收锋、跟手性等多方面问题,有效提高了笔触书写的用户体验。
如图17所示为本申请另一实施例的笔触处理方法的流程图。如图17所示,该方法可以包括:
S1701、前向加权滤波。
具体的,前向加权滤波具体可以是如上公式(1)和(2)所述的滤波处理。
S1702、三阶贝塞尔曲线拟合。
具体的,三阶贝塞尔曲线拟合可以是如上所述的目标曲线的拟合过程。
S1703、微分采样生成渲染坐标。
具体的,微分采样生成渲染坐标具体可以是如上所述的目标点P的生成过程。
S1704、纹理笔触绘制。
具体的,纹理笔触绘制可以是如上所述的纹理贴图的过程。
S1705、笔锋收锋。
具体的,笔锋收锋可以是如上所述的收锋处理过程。
S1706、压感实现。
具体的,压感实现可以是如上所述的类似于数位板这种带有压感设备的终端,根据压感值控制纹理图像大小或宽度的过程。
S1707、细节优化。
具体的,细节优化可以是如上所述的线性收锋、非线性收锋的处理过程。
另外,在工程落地方面,具体落地方式可以结合实际应用场景,在不同的技术栈,使用合适的实现方式。从而保证在性能、扩展性上不会有太大的差别。在本地框架(native)下使用开放图形库(Open Graphics Library,opengl),前端使用万维网图形库(webGraphics Library,webGL)都可将最耗时的计算与渲染交给着色器(shader)硬件加速来完成。
图18示出根据本申请一实施例的笔触处理装置的结构框图。如图18所示,该装置180可以包括:
获取模块181,用于获取采集设备采集到的一个或多个笔触点;
确定模块182,用于根据该一个或多个笔触点,确定待绘制的一个或多个目标点;
处理模块183,用于根据边缘预处理后的纹理图像,在该一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
可选的,确定模块182包括:
滤波单元1821,用于对该一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点;
拟合单元1822,用于根据该滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线;
确定单元1823,用于根据该一个或多个目标曲线,确定该待绘制的一个或多个目标点。
可选的,获取模块181具体用于:
获取该采集设备在一个或多个采样周期内分别采集到的一个或多个笔触点。
可选的,滤波单元1821具体用于:对该采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到该当前采样周期对应的滤波处理后的一个或多个笔触点;
拟合单元1822具体用于:根据该当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出该当前采样周期对应的一个或多个目标曲线;
确定单元1823具体用于:确定该当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的该待绘制的一个或多个目标点。
可选的,该装置180还包括:补偿模块184,用于在该采集设备在当前采样周期内采集到的一个或多个笔触点的最后一个笔触点为连续笔画的收尾点的情况下,对该采集设备在当前采样周期内采集到的一个或多个笔触点中末尾的一个或多个笔触点进行补偿。
可选的,拟合单元1822具体用于:
根据该当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出该当前采样周期对应初始曲线;
该装置180还包括:调整模块185,用于根据该当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与该初始曲线之间的距离,对该初始曲线进行调整,得到该当前采样周期对应的一个或多个目标曲线。
可选的,调整模块185具体用于:
确定该初始曲线上的一个或多个拐点;
根据该一个或多个拐点将该初始曲线划分为多段部分曲线;
根据该当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与该初始曲线之间的距离、以及该多段部分曲线,得到该当前采样周期对应的多个目标曲线。
可选的,确定单元1823具体用于:根据该当前采样周期对应的一个或多个目标曲线中每个目标曲线的第一起始点、第一末尾点、该第一起始点对应的控制点和该第一末尾点对应的控制点,确定该当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的该待绘制的一个或多个目标点。
可选的,还包括平衡过渡执行单元,用于该当前采样周期对应的第一曲线和该当前采样周期的下一个采样周期对应的第二曲线执行平滑过渡,其中,该第一曲线为该当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线,该第二曲线为该下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线。
可选的,确定模块182还用于:
确定该当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线的第二末尾点和该第二末尾点的控制点之间的连线;
确定该连线的反向量,该当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线与该反向量相切。
可选的,处理模块183具体用于:
在该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点上贴上该纹理图像。
可选的,该每个目标点上所贴的该纹理图像中的预设点与该目标点重合。
可选的,该纹理图像中的预设点为该纹理图像的中心点。
可选的,处理模块183具体用于:
控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像逐渐减小。
可选的,该抬笔之前的预设数量的采样周期对应的一个或多个目标点为该抬笔之前的预设数量的采样周期对应的所有目标点中的部分目标点或全部目标点。
可选的,处理模块183具体用于:控制抬笔之前的预设数量的采样周期对应的一个或多个目标点上所贴的该纹理图像线性减小或非线性减小。
可选的,该目标点对应的压感值与该目标点上所贴的该纹理图像的大小,保持正相关。
可选的,该装置180还包括:计算模块186,用于根据该采集设备在每个采样周期中采集到的一个或多个笔触点中每个笔触点对应的压感系数,得到滤波处理后的每个笔触点对应的压感值;
该确定模块182还用于:根据该滤波处理后的每个笔触点对应的压感值,确定该采集设备的每个采样周期分别对应的该一个或多个目标点中的每个目标点对应的压感值。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图19所示,是用来实现本申请实施例的检测框自适应外扩方法的电子设备的框图。该电子设备可以为前述部署设备或代理设备。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图19所示,该电子设备包括:一个或多个处理器1901、存储器1902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图19中以一个处理器1901为例。
存储器1902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的检测框自适应外扩方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的检测框自适应外扩方法。
存储器1902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的检测框自适应外扩方法对应的程序指令/模块。处理器1901通过运行存储在存储器1902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的检测框自适应外扩方法。
存储器1902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1902可选包括相对于处理器1901远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
检测框自适应外扩方法的电子设备,还可以包括:输入装置1903和输出装置1904。处理器1901、存储器1902、输入装置1903和输出装置1904可以通过总线或者其他方式连接,图19中以通过总线连接为例。
输入装置1903可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (28)
1.一种笔触处理方法,其特征在于,所述方法包括:
获取采集设备采集到的一个或多个笔触点;
根据所述一个或多个笔触点,确定待绘制的一个或多个目标点;
根据边缘预处理后的纹理图像,在所述一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
2.根据权利要求1所述的方法,其特征在于,根据所述一个或多个笔触点,确定待绘制的一个或多个目标点,包括:
对所述一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点;
根据所述滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线;
根据所述一个或多个目标曲线,确定所述待绘制的一个或多个目标点。
3.根据权利要求2所述的方法,其特征在于,获取采集设备采集到的一个或多个笔触点,包括:
获取所述采集设备在一个或多个采样周期内分别采集到的一个或多个笔触点。
4.根据权利要求3所述的方法,其特征在于,对所述一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点,包括:
对所述采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到所述当前采样周期对应的滤波处理后的一个或多个笔触点;
根据所述滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线,包括:
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出所述当前采样周期对应的一个或多个目标曲线;
根据所述一个或多个目标曲线,确定所述待绘制的一个或多个目标点,包括:
确定所述当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的所述待绘制的一个或多个目标点。
5.根据权利要求4所述的方法,其特征在于,对所述采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到所述当前采样周期对应的滤波处理后的一个或多个笔触点之后,所述方法还包括:
在所述采集设备在当前采样周期内采集到的一个或多个笔触点的最后一个笔触点为连续笔画的收尾点的情况下,对所述采集设备在当前采样周期内采集到的一个或多个笔触点中末尾的一个或多个笔触点进行补偿。
6.根据权利要求4所述的方法,其特征在于,根据所述当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出所述当前采样周期对应的一个或多个目标曲线,包括:
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出所述当前采样周期对应初始曲线;
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与所述初始曲线之间的距离,对所述初始曲线进行调整,得到所述当前采样周期对应的一个或多个目标曲线。
7.根据权利要求6所述的方法,其特征在于,根据所述当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与所述初始曲线之间的距离,对所述初始曲线进行调整,得到所述当前采样周期对应的一个或多个目标曲线,包括:
确定所述初始曲线上的一个或多个拐点;
根据所述一个或多个拐点将所述初始曲线划分为多段部分曲线;
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与所述初始曲线之间的距离、以及所述多段部分曲线,得到所述当前采样周期对应的多个目标曲线。
8.根据权利要求4所述的方法,其特征在于,确定所述当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的所述待绘制的一个或多个目标点,包括:
根据所述当前采样周期对应的一个或多个目标曲线中每个目标曲线的第一起始点、第一末尾点、所述第一起始点对应的控制点和所述第一末尾点对应的控制点,确定所述当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的所述待绘制的一个或多个目标点。
9.根据权利要求4所述的方法,其特征在于,还包括:
所述当前采样周期对应的第一曲线和所述当前采样周期的下一个采样周期对应的第二曲线执行平滑过渡;
其中,所述第一曲线为所述当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线,所述第二曲线为所述下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
确定所述当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线的第二末尾点和所述第二末尾点的控制点之间的连线;
确定所述连线的反向量,所述当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线与所述反向量相切。
11.根据权利要求1至10中任一项所述的方法,其特征在于,根据边缘预处理后的纹理图像,在所述一个或多个目标点中的每个目标点上进行贴图处理,包括:
在所述采集设备的每个采样周期分别对应的所述一个或多个目标点中的每个目标点上贴上所述纹理图像。
12.根据权利要求11所述的方法,其特征在于,所述每个目标点上所贴的所述纹理图像中的预设点与所述目标点重合。
13.根据权利要求11所述的方法,其特征在于,所述目标点对应的压感值与所述目标点上所贴的所述纹理图像的大小,保持正相关。
14.一种笔触处理装置,其特征在于,包括:
获取模块,用于获取采集设备采集到的一个或多个笔触点;
确定模块,用于根据所述一个或多个笔触点,确定待绘制的一个或多个目标点;
处理模块,用于根据边缘预处理后的纹理图像,在所述一个或多个目标点中的每个目标点上进行贴图处理,得到笔触笔迹。
15.根据权利要求14所述的装置,其特征在于,所述确定模块包括:
滤波单元,用于对所述一个或多个笔触点进行滤波处理,得到滤波处理后的一个或多个笔触点;
拟合单元,用于根据所述滤波处理后的一个或多个笔触点,拟合出一个或多个目标曲线;
确定单元,用于根据所述一个或多个目标曲线,确定所述待绘制的一个或多个目标点。
16.根据权利要求15所述的装置,其特征在于,所述获取模块具体用于:
获取所述采集设备在一个或多个采样周期内分别采集到的一个或多个笔触点。
17.根据权利要求16所述的装置,其特征在于,
所述滤波单元具体用于:对所述采集设备在当前采样周期内采集到的一个或多个笔触点进行滤波处理,得到所述当前采样周期对应的滤波处理后的一个或多个笔触点;
所述拟合单元具体用于:根据所述当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出所述当前采样周期对应的一个或多个目标曲线;
所述确定单元具体用于:确定所述当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的所述待绘制的一个或多个目标点。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:补偿模块,用于在所述采集设备在当前采样周期内采集到的一个或多个笔触点的最后一个笔触点为连续笔画的收尾点的情况下,对所述采集设备在当前采样周期内采集到的一个或多个笔触点中末尾的一个或多个笔触点进行补偿。
19.根据权利要求17所述的装置,其特征在于,所述拟合单元具体用于:
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点,拟合出所述当前采样周期对应初始曲线;
所述装置还包括:调整模块,用于根据所述当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与所述初始曲线之间的距离,对所述初始曲线进行调整,得到所述当前采样周期对应的一个或多个目标曲线。
20.根据权利要求19所述的装置,其特征在于,所述调整模块具体用于:
确定所述初始曲线上的一个或多个拐点;
根据所述一个或多个拐点将所述初始曲线划分为多段部分曲线;
根据所述当前采样周期对应的滤波处理后的一个或多个笔触点中每个笔触点与所述初始曲线之间的距离、以及所述多段部分曲线,得到所述当前采样周期对应的多个目标曲线。
21.根据权利要求17所述的装置,其特征在于,所述确定单元具体用于:
根据所述当前采样周期对应的一个或多个目标曲线中每个目标曲线的第一起始点、第一末尾点、所述第一起始点对应的控制点和所述第一末尾点对应的控制点,确定所述当前采样周期对应的一个或多个目标曲线中,每个目标曲线上的所述待绘制的一个或多个目标点。
22.根据权利要求17所述的装置,其特征在于,还包括平衡过渡执行单元,用于:
所述当前采样周期对应的第一曲线和所述当前采样周期的下一个采样周期对应的第二曲线执行平滑过渡;
其中,所述第一曲线为所述当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线,所述第二曲线为所述下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线。
23.根据权利要求22所述的装置,其特征在于,所述确定模块还用于:
确定所述当前采样周期对应的一个或多个目标曲线中的最后一个目标曲线的第二末尾点和所述第二末尾点的控制点之间的连线;
确定所述连线的反向量,所述当前采样周期的下一个采样周期对应的一个或多个目标曲线中的第一个目标曲线与所述反向量相切。
24.根据权利要求14至23中任一项所述的装置,其特征在于,所述处理模块具体用于:
在所述采集设备的每个采样周期分别对应的所述一个或多个目标点中的每个目标点上贴上所述纹理图像。
25.根据权利要求24所述的装置,其特征在于,所述每个目标点上所贴的所述纹理图像中的预设点与所述目标点重合。
26.根据权利要求24所述的装置,其特征在于,所述目标点对应的压感值与所述目标点上所贴的所述纹理图像的大小,保持正相关。
27.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-13中任一项所述的方法。
28.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110045230.XA CN112365565B (zh) | 2021-01-14 | 2021-01-14 | 笔触处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110045230.XA CN112365565B (zh) | 2021-01-14 | 2021-01-14 | 笔触处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112365565A true CN112365565A (zh) | 2021-02-12 |
CN112365565B CN112365565B (zh) | 2022-05-17 |
Family
ID=74534924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110045230.XA Active CN112365565B (zh) | 2021-01-14 | 2021-01-14 | 笔触处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112365565B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377856A (zh) * | 2008-10-07 | 2009-03-04 | 广东威创视讯科技股份有限公司 | 笔迹书写的方法及装置 |
CN105225260A (zh) * | 2015-09-25 | 2016-01-06 | 中国电子科技集团公司第三十二研究所 | 一种手写原笔迹实现方法 |
CN111815743A (zh) * | 2020-07-14 | 2020-10-23 | 深圳市昇利扬科技有限公司 | 一种数字墨水手写笔迹美化的方法 |
-
2021
- 2021-01-14 CN CN202110045230.XA patent/CN112365565B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377856A (zh) * | 2008-10-07 | 2009-03-04 | 广东威创视讯科技股份有限公司 | 笔迹书写的方法及装置 |
CN105225260A (zh) * | 2015-09-25 | 2016-01-06 | 中国电子科技集团公司第三十二研究所 | 一种手写原笔迹实现方法 |
CN111815743A (zh) * | 2020-07-14 | 2020-10-23 | 深圳市昇利扬科技有限公司 | 一种数字墨水手写笔迹美化的方法 |
Non-Patent Citations (1)
Title |
---|
CARRIE COUSINS: "How to Install & Use a Photoshop Brush in 3 Minutes", 《HTTPS://DESIGNSHACK.NET/ARTICLES/SOFTWARE/HOW-TO-INSTALL-USE-A-PHOTOSHOP-BRUSH》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112365565B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10719168B2 (en) | Wet ink predictor | |
CN111294665B (zh) | 视频的生成方法、装置、电子设备及可读存储介质 | |
CN108351864B (zh) | 成凹几何密铺 | |
US9020266B2 (en) | Methods and devices for processing handwriting input | |
US9613444B2 (en) | Information input display device and information input display method | |
US10438385B2 (en) | Generating ink effects for a digital ink stroke | |
CN111368137A (zh) | 视频的生成方法、装置、电子设备及可读存储介质 | |
CN111860362A (zh) | 生成人脸图像校正模型及校正人脸图像的方法和装置 | |
CN108228057B (zh) | 一种触控拐点的修正方法、装置及触控屏 | |
CN111291218B (zh) | 视频融合方法、装置、电子设备及可读存储介质 | |
CN111601013A (zh) | 用于处理视频帧的方法和装置 | |
CN108290071B (zh) | 用于在预测游戏者的意图的情况下确定用于执行绘制的资源分配的介质、装置、系统和方法 | |
CN112365565B (zh) | 笔触处理方法、装置、设备及存储介质 | |
CN112200169B (zh) | 用于训练模型的方法、装置、设备以及存储介质 | |
CN111652025B (zh) | 一种人脸的处理、直播方法、装置、电子设备和存储介质 | |
CN115359166B (zh) | 一种图像生成方法、装置、电子设备和介质 | |
CN111027387A (zh) | 人数评估及评估模型获取方法、装置及存储介质 | |
CN113160045B (zh) | 模型训练方法、超分辨率方法、装置、电子设备及介质 | |
US20220122335A1 (en) | Scaling and rendering virtual hand | |
CN116009725A (zh) | 支持多终端触屏信息采集还原的系统、方法、设备、存储介质 | |
CN113055594A (zh) | 图像的获取方法和装置 | |
CN114399536A (zh) | 虚拟人视频的生成方法和装置 | |
KR20220004894A (ko) | 터치 입력의 디스플레이 출력 지연을 줄이는 디바이스 및 방법 | |
CN116704086A (zh) | 用于3d图形中0相运动矢量的方法和系统 | |
CN113129457A (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 |