CN110297677B - 绘制方法、装置、设备以及存储介质 - Google Patents
绘制方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN110297677B CN110297677B CN201810240017.2A CN201810240017A CN110297677B CN 110297677 B CN110297677 B CN 110297677B CN 201810240017 A CN201810240017 A CN 201810240017A CN 110297677 B CN110297677 B CN 110297677B
- Authority
- CN
- China
- Prior art keywords
- drawing point
- state vector
- point
- current
- current drawing
- 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.)
- Active
Links
Images
Classifications
-
- 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/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
Abstract
本公开提出了一种绘制方法、装置、设备以及存储介质。基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用第一方式(例如卡尔曼滤波方式)确定当前绘制点的绘制位置。并且,以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用第二方式(例如贝塞尔曲线)绘制由起点到终点的线条。由此,响应于用户的书画操作,利用本公开可以在电子白板上实时生成较为平滑的线条。
Description
技术领域
本公开涉及绘制领域,尤其涉及一种绘制方法、装置、设备以及存储介质。
背景技术
行业内一般将在PC、TV等电子设备上实现的模拟白板书写操作的应用程序称为电子白板,电子白板可以为用户提供书写、绘画服务,以更好地表达用户的观点。目前,电子白板广泛应用于教育、会议、设计等多种领域。
一般是通过在电子设备的屏幕上设置电容或红外等触控模块,为用户提供电子白板。但是,在实际工作过程中容易产生噪声数据,导致在电子白板上生成的笔画、图线看起来不平滑(比如容易有锯齿等),尤其是在TV这样的大屏上,细微的不平滑会被放大,影响用户的交互体验。
因此,需要一种能够生成自然平滑的笔画、图线等线条的绘制方案。
发明内容
本公开的一个目的在于提供一种能够生成自然平滑的笔画、图线等线条的绘制方法、装置、设备以及存储介质。
根据本公开的第一个方面,提出了一种绘制方法,包括:基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用卡尔曼滤波方式确定当前绘制点的绘制位置;以及以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用N次贝塞尔曲线绘制由起点到终点的线条,其中,N为大于或等于2的整数。
可选地,状态向量是使用卡尔曼滤波方式确定的修正后的状态向量,并且,状态向量包括位置信息和速度信息。
可选地,使用卡尔曼滤波方式确定当前绘制点的位置的步骤包括:基于上一绘制点的状态向量,预测当前绘制点的估计状态向量;基于估计状态向量、当前绘制点的观测状态向量以及上一绘制点的误差协方差矩阵,确定当前绘制点的位置。
可选地,预测当前绘制点的估计状态向量的步骤包括:通过状态向量变换矩阵与状态向量的乘法运算来获得估计状态向量。
可选地,确定当前绘制点的位置的步骤包括:基于估计状态向量、观测状态向量以及误差协方差矩阵,确定修正后的状态向量;以及基于修正后的状态向量中的位置信息,确定当前绘制点的绘制位置。
可选地,确定修正后的状态向量的步骤包括:基于状态向量变换矩阵、过程噪声协方差矩阵以及误差协方差矩阵,计算当前绘制点的误差协方差矩阵,以得到计算误差协方差矩阵;基于计算误差协方差矩阵、观测值变换矩阵以及测量噪声协方差矩阵,计算卡尔曼增益矩阵;以及基于卡尔曼增益矩阵、估计状态向量、观测状态向量以及观测值变换矩阵,确定修正后的状态向量。
可选地,绘制方法还包括:基于卡尔曼增益矩阵和观测值变换矩阵对计算误差协方差矩阵进行更新,以得到当前绘制点的误差协方差矩阵。
可选地,绘制方法还包括:判断当前绘制点与上一绘制点间的距离是否大于第一预定阈值;以及/或者判断当前绘制点与上一绘制点间的角度变化是否大于第二预定阈值;以及/或者判断当前绘制点与上一绘制点间的时间间隔是否大于第三预定阈值。
可选地,在当前绘制点与上一绘制点间的距离大于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化大于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间间隔大于第三预定阈值的情况下,使用卡尔曼滤波方式确定当前绘制点的位置。
可选地,在当前绘制点与上一绘制点间的距离小于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化小于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间间隔小于第三预定阈值的情况下,丢弃当前绘制点。
可选地,该绘制方法是响应于用户的书画操作而执行的,绘制点对应于用户的书画操作点。
根据本公开的第二个方面,还提供了一种绘制方法,包括:基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用第一方式确定当前绘制点的绘制位置;以及以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用第二方式绘制由起点到终点的线条。
根据本公开的第三个方面,还提供了一种绘制装置,包括:确定模块,用于基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用卡尔曼滤波方式确定当前绘制点的绘制位置;以及绘制模块,用于以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用N次贝塞尔曲线绘制由起点到终点的线条,其中,N为大于或等于2的整数。
可选地,状态向量是使用卡尔曼滤波方式确定的修正后的状态向量,并且,状态向量包括位置信息和速度信息。
可选地,确定模块包括:预测模块,用于基于上一绘制点的状态向量,预测当前绘制点的估计状态向量;以及位置确定模块,用于基于估计状态向量、当前绘制点的观测状态向量以及上一绘制点的误差协方差矩阵,确定当前绘制点的位置。
可选地,预测模块通过状态向量变换矩阵与状态向量的乘法运算来获得估计状态向量。
可选地,位置确定模块包括:状态向量确定模块,用于基于估计状态向量、观测状态向量以及误差协方差矩阵,确定修正后的状态向量;以及绘制位置确定模块,用于基于修正后的状态向量中的位置信息,确定当前绘制点的绘制位置。
可选地,状态向量确定模块包括:误差协方差矩阵计算模块,用于基于状态向量变换矩阵、过程噪声协方差矩阵以及误差协方差矩阵,计算当前绘制点的误差协方差矩阵,以得到计算误差协方差矩阵;卡尔曼增益矩阵计算模块,用于基于计算误差协方差矩阵、观测值变换矩阵以及测量噪声协方差矩阵,计算卡尔曼增益矩阵;以及状态向量修正模块,基于卡尔曼增益矩阵、估计状态向量、观测状态向量以及观测值变换矩阵,确定修正后的状态向量。
可选地,绘制装置还包括:误差协方差矩阵更新模块,用于基于卡尔曼增益矩阵和观测值变换矩阵对计算误差协方差矩阵进行更新,以得到当前绘制点对应的误差协方差矩阵。
可选地,绘制装置还包括:第一判断模块,用于判断当前绘制点与上一绘制点间的距离是否大于第一预定阈值;以及/或者第二判断模块,用于判断当前绘制点与上一绘制点间的角度变化是否大于第二预定阈值;以及/或者第三判断模块,用于判断当前绘制点与上一绘制点间的时间是否大于第三预定阈值。
可选地,在当前绘制点与上一绘制点间的距离大于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化大于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间大于第三预定阈值的情况下,使用卡尔曼滤波方式确定当前绘制点的位置。
可选地,在当前绘制点与上一绘制点间的距离小于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化小于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间小于第三预定阈值的情况下,丢弃当前绘制点。
可选地,该绘制装置是响应于用户的书画操作而执行的,绘制点对应于用户的书画操作点。
根据本公开的第四个方面,还提供了一种绘制装置,包括:确定模块,用于基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用第一方式确定当前绘制点的绘制位置;以及绘制模块,用于以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用第二方式绘制由起点到终点的线条。
根据本公开的第五个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面或第二个方面述及的方法。
根据本公开的第六个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面或第二个方面述及的方法。
在用户执行书画操作时,例如在针对电子白板执行书画操作时,利用本公开可以实时对当前绘制点的绘制位置进行修正,并通过绘制连接上一绘制点与当前绘制点的贝塞尔曲线,可以得到较为平滑的线条。由此,在降低书写延时的同时,还可以提高用户的交互体验。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本公开一实施例的绘制方法的示意性流程图。
图2是示出了根据本公开另一实施例的绘制方法的示意性流程图。
图3是示出了根据本公开一实施例的绘制装置的结构示意图。
图4是示出了确定模块可以具有的功能模块的结构示意图。
图5示出了根据本公开一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
【术语解析】
在描述本公开的方案之前,首先就本公开涉及的概念做简要说明。
电子白板,在PC、TV等电子设备上实现的模拟白板书写操作的应用程序。
书画操作,本公开述及的书画操作主要是指用户针对电子白板做出的用于在电子白板上呈现预定内容的操作。例如,可以是书写操作、绘画操作等等。其中,户可以通过特定的输入设备(如触控笔)在电子白板上滑动来实现书画操作,也可以通过手指在电子白板上滑动来实现书画操作,对此本公开不做限定。在本公开中,可以将用户从触摸屏幕、在屏幕上移动到离开屏幕之间的操作视为一个书画操作。
书画延时,从用户输入到屏幕上显示出针对用户输入内容的时间差。
绘制点,与用户执行书画操作时的书画操作点相对应。其中,书画操作点可以是指执行书画操作时用户手指或触控笔在屏幕上的触控点。
【方案概述】
目前的修正方案主要是在获得全部绘制点后,再通过曲线拟合等算法生成平滑的曲线。这种方案虽然能获得比较平滑的曲线,但是要等到单个书画操作(例如单个笔画操作)完成后再修正,实时性不好,并且用户会在书写过程中看到书画结果的修正过程,用户体验较差。
有鉴于此,本公开提出,在对当前绘制点的位置进行修正时,可以仅基于上一绘制点的信息(例如上一绘制点的状态向量)。由此,可以减少修正时的计算量,并且不必在获取所有绘制点的位置后才执行修正操作,从而可以在用户执行书画操作的过程中,实时对当前绘制点的位置进行修正,提高用户的体验。并且,在对当前绘制点的位置进行修正后,可以使用预定的画线算法绘制上一绘制点和当前绘制点之间的线条,以得到修正后的较为平滑的线条。
图1是示出了根据本公开一实施例的绘制方法的示意性流程图。
参见图1,在步骤S110,基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用第一方式确定当前绘制点的绘制位置。
第一方式用于对当前绘制点的位置进行修正,以得到当前绘制点的绘制位置。为了减少计算量,第一方式可以采用在对当前绘制点的位置进行修正时,仅依赖前一绘制点的状态向量的修正方式。例如,第一方式可以采用卡尔曼滤波方式。
在步骤S120,以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用第二方式绘制由起点到终点的线条。
第二方式用于绘制上一绘制点和当前绘制点之间的线条。第二方式可以采用多种画线算法。例如,可以采用N次贝塞尔曲线绘制由上一绘制点到当前绘制点的线条,以得到较为平滑的线条,其中,N为大于或等于2的整数。
在用户执行书画操作时,例如在针对电子白板执行书画操作时,利用本公开可以实时对当前绘制点的绘制位置进行修正,并通过绘制连接上一绘制点与当前绘制点的线条(如贝塞尔曲线),可以得到较为平滑的线条。由此,在降低书写延时的同时,还可以提高用户的交互体验。
下面就以第一方式为卡尔曼滤波方式,第二方式为贝塞尔曲线为例,就本公开的绘制方法做进一步说明。应该知道,基于本公开的原理,第一方式还可以使用其它多种位置修正方式,第二方式也可以使用其它多种画线方式,对此本公开不再赘述。
【卡尔曼滤波】
卡尔曼(Kalman)滤波是一种线性滤波与预测方法,Kalman滤波分为2个步骤,预测(predict)和校正(correct)。预测是基于上一时刻状态估计当前时刻状态,而校正则是综合当前时刻的估计状态与观测状态,估计出最优的状态。也就是说,卡尔曼滤波模型假设k时刻的真实状态是从(k-1)时刻的状态演化而来。关于卡尔曼滤波的实现原理及公式推导为已知的成熟技术,此处不再赘述。
下面就使用卡尔曼滤波方式对当前绘制点的位置进行修正的实现过程进行说明。
如图1所示,可以基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用卡尔曼滤波方式确定当前绘制点的绘制位置(即修正后的位置)。其中,上一绘制点的状态向量可以是使用卡尔曼滤波方式确定的修正后的状态向量。
在本公开中,绘制点的状态向量(观测状态向量、修正后的状态向量)可以包括绘制点的位置信息和速度信息。作为示例,第k个绘制点的观测状态向量(也即待修正的状态向量)可以表征为m=[px(k),py(k),vx(k),vy(k)],修正后的状态向量可以表征为x=[rx(k),ry(k),vx(k),vy(k)]。其中,px(k)表示第k个绘制点的x轴坐标,py(k)表示第k个绘制点的y轴坐标,rx(k)表示使用卡尔曼对第k个绘制点进行滤波后的x轴坐标,ry(k)表示使用卡尔曼对第k个绘制点进行滤波后的y轴坐标,vx(k)表示第k个绘制点在x轴方向上的移动速度,vx(k)=px(k)-rx(k-1),vy(k)表示第k个绘制点在y轴方向上的移动速度,vy(k)=py(k)-ry(k-1)。
也就是说,可以基于上一绘制点的状态向量,使用卡尔曼滤波方式对当前绘制点的观测状态向量进行修正,以确定当前绘制点的位置。具体地,可以基于上一绘制点的状态向量,预测当前绘制点的估计状态向量(也可称为“预测状态”)。其中,估计状态向量可以通过状态向量变换矩阵与状态向量的乘法运算来获得。例如,状态向量变换矩阵A可以表示如下。
设上一绘制点的状态向量为prex,则当前绘制点的估计状态向量x=A*prex。
在得到估计状态向量后,就可以基于估计状态向量、当前绘制点的观测状态向量以及上一绘制点的误差协方差矩阵,确定当前绘制点的绘制位置。此处主要是基于估计状态向量、当前绘制点的观测状态向量以及误差协方差矩阵,得到修正后的状态向量,修正后的状态向量中的位置信息即为当前绘制点的绘制位置。获取修正后的状态向量的过程即是综合当前绘制点的估计状态向量、观测状态向量以及误差协方差矩阵,估计出最优的状态向量的过程。
此处述及的误差协方差矩阵为使用卡尔曼滤波方式对上一绘制点的状态向量进行修正后,得到的更新后的误差协方差矩阵。基于估计状态向量、当前绘制点的观测状态向量以及误差协方差矩阵,确定当前绘制点的绘制位置的过程如下。
首先,可以基于状态向量变换矩阵、过程噪声协方差矩阵以及误差协方差矩阵,计算当前绘制点的误差协方差矩阵(也即对当前绘制点的误差协方差矩阵进行预测),以得到计算误差协方差矩阵。计算误差协方差矩阵可以用P′表示,可以使用下式计算P′。P′=(A*P*AT)+Q。其中,A为状态向量变换矩阵,AT为矩阵A的转置,Q为过程噪声协方差矩阵,P为使用卡尔曼滤波方式对上一绘制点的状态向量进行修正后得到的更新后的误差协方差矩阵,初始情况下,P为零矩阵。
然后,可以基于计算误差协方差矩阵P′、观测值变换矩阵H以及测量噪声协方差矩阵Q,计算卡尔曼增益矩阵K。作为示例,可以使用如下公式计卡尔曼增益矩阵K。S=(H*P′*HT)+R,K=P′*HT*SI。其中,HT为矩阵H的转置,SI为矩阵S的逆矩阵。
最后,可以基于卡尔曼增益矩阵、观测状态向量以及观测值变换矩阵,确定修正后的状态向量。作为示例,可以通过如下公式确定修正后的状态向量x′。y=m-(H*x),x′=x+(K*y)。其中,m为当前绘制点的观测状态向量,H为观测值变换矩阵,x为当前绘制点的估计状态向量,K为卡尔曼增益矩阵。根据计算得到的x′中的位置信息(x轴坐标和y轴坐标),可以确定当前绘制点的绘制位置。
在得到当前绘制点的绘制位置后,还可以基于卡尔曼增益矩阵和观测值变换矩阵对计算误差协方差矩阵进行更新,以得到当前绘制点对应的误差协方差矩阵。所得到的误差协方差矩阵可以参与下一绘制点的绘制位置的计算。其中,更新误差协方差矩阵的公式可以表示如下,P″=(I-K*H)*P′,其中,I为单位矩阵,P″即为当前绘制点对应的误差协方差矩阵。
【贝塞尔曲线】
贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。
在使用卡尔曼滤波方式对当前绘制点的位置进行修正,得到修正后的绘制位置后,可以以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用N次贝塞尔曲线绘制由起点到终点的线条,其中,N为大于或等于2的整数,如可以是2或3。
关于贝塞尔曲线的绘制原理及具体实现过程为本领域已知的成熟技术,此处不再赘述。
作为示例,设第i个绘制点的x轴坐标为x(i),y轴坐标为y(i),绘制点的总数为N,并且使用2次贝塞尔曲线进行绘制。在绘制由第i-1个的绘制点到第i个绘制点的线条时,可以以{x(i-1),y(i-1)}为起点,以{x(i),y(i)}为终点,以{x(i-1)*0.5+x(i)*0.5,y(i-1)*0.5+y(i)*0.5}为控制点,绘制由起点到终点的2次贝塞尔曲线。并且,对于第N-1个点,可以绘制连接到最后一个点的直线。
图2是示出了根据本公开另一实施例的绘制方法的示意性流程图。
参见图2,可以响应于用户执行书画操作开始,在步骤210,获取本次输入的绘制点,也即当前绘制点。其中,关于绘制点的概念可以参见上文描述,此处不再赘述。
在步骤S220,判断当前绘制点是否有效。
此处主要是将当前绘制点与上一有效绘制点进行比较。可以通过比较当前绘制点与上一有效绘制点之间的距离是否小于一定阈值(为了便于区分,可以称为“第一预定阈值”),如果大于第一预定阈值,则当前绘制点可以视为有效绘制点,可以对当前绘制点进行后续处理。如果小于第一预定阈值,则视为无效,丢弃这个点。
另外,也可以比较当前绘制点与上一有效绘制点之间的角度变化或者时间间隔,来判断当前绘制点是否有效。例如,可以在当前绘制点与上一绘制点间的角度变化大于第二预定阈值,或者,当前绘制点与上一绘制点间的时间大于第三预定阈值的情况下,判定当前绘制点有效。被判定为无效的绘制点可以丢弃。
由此,本公开可以将距离变化、角度变化或者时间间隔较小的绘制点判定为无效绘制点,并丢弃。如此,本公开的修正方案可以仅对有效绘制点执行,在不影响内容的正常呈现的情况下,可以大大减少计算量。
在当前绘制点无效的情况下,跳至步骤S250,判断书画操作是否结束,即是否还有下一绘制点。在判定结束的情况下,整个流程结束。
在判定当前绘制点有效的情况下,可以执行步骤S230,使用卡尔曼滤波的方式确定当前绘制点的绘制位置。其中,使用卡尔曼滤波确定绘制位置的实现过程可以参见上文描述,此处不再赘述。
在步骤S240,以上一有效绘制点为起点,以当前有效绘制点为终点,绘制贝塞尔曲线。贝塞尔曲线的绘制过程可以参见上文描述,此处不再赘述。
在对本次输入的绘制点执行上述处理后,可以执行步骤S250,判断书画操作是否结束,即是否还有下一绘制点。在判定结束的情况下,整个流程结束。在判定未结束的情况下,可以返回步骤S210,继续对下一个输入的绘制点执行上述处理。
由此,本公开的绘制方法可以响应于用户的书画操作而执行,并且在用户执行书画操作的过程中,利用本公开可以实时对书画操作对应的书画结果进行修正,而不必等待整个书画操作完成后,再进行修正。
【绘制装置】
图3是示出了根据本公开一实施例的绘制装置的结构示意图。其中,绘制装置300的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就绘制装置300可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图3,绘制装置300包括确定模块310和绘制模块320。绘制装置300可以响应于用户的书画操作而执行,绘制点可以对应于用户的书画操作点。
确定模块310用于基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用第一方式(例如卡尔曼滤波方式)确定当前绘制点的绘制位置。其中,上一绘制点的状态向量是使用卡尔曼滤波方式确定的修正后的状态向量,并且,状态向量包括位置信息和速度信息。
绘制模块320用于以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用第二方式绘制由起点到终点的线条。例如,可以使用N次贝塞尔曲线绘制由起点到终点的线条,其中,N为大于或等于2的整数。
如图4所示,确定模块310可以可选地包括预测模块311和位置确定模块312。
预测模块311用于基于上一绘制点的状态向量,预测当前绘制点的估计状态向量。作为示例,预测模块311可以通过状态向量变换矩阵与状态向量的乘法运算来获得估计状态向量。位置确定模块312用于基于估计状态向量、当前绘制点的观测状态向量以及上一绘制点的误差协方差矩阵,确定当前绘制点的位置。
如图4所示,位置确定模块312可以可选地包括状态向量确定模块3121和绘制位置确定模块3122。
状态向量确定模块3121用于基于估计状态向量、观测状态向量以及误差协方差矩阵,确定修正后的状态向量。绘制位置确定模块3122用于基于修正后的状态向量中的位置信息,确定当前绘制点的绘制位置。
作为示例,状态向量确定模块3121可以可选地包括第一计算模块3123、第二计算模块3125和修正模块3127。第一计算模块3123用于基于状态向量变换矩阵、过程噪声协方差矩阵以及误差协方差矩阵,计算当前绘制点的误差协方差矩阵,以得到计算误差协方差矩阵。第二计算模块3125用于基于计算误差协方差矩阵、观测值变换矩阵以及测量噪声协方差矩阵,计算卡尔曼增益矩阵。修正模块3127用于基于卡尔曼增益矩阵、估计状态向量、观测状态向量以及观测值变换矩阵,确定修正后的状态向量。
如图4所示,确定模块310还可以可选地包括更新模块313。更新模块313可以基于卡尔曼增益矩阵和观测值变换矩阵对计算误差协方差矩阵进行更新,以得到当前绘制点对应的误差协方差矩阵。
回到图3,绘制装置300还可以可选地包括图中虚线框所示的第一判断模块330、第二判断模块340以及第三判断模块350中的一个或多个。
第一判断模块330用于判断当前绘制点与上一绘制点间的距离是否大于第一预定阈值。第二判断模块340用于判断当前绘制点与上一绘制点间的角度变化是否大于第二预定阈值。第三判断模块350用于判断当前绘制点与上一绘制点间的时间是否大于第三预定阈值。
在当前绘制点与上一绘制点间的距离大于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化大于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间大于第三预定阈值的情况下,使用卡尔曼滤波方式确定当前绘制点的位置。
并且,在当前绘制点与上一绘制点间的距离小于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化小于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间小于第三预定阈值的情况下,丢弃当前绘制点。
【计算设备】
图5示出了根据本公开一实施例可用于实现上述绘制方法的计算设备的结构示意图。
参见图5,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可处理代码,当可处理代码被处理器1020处理时,可以使处理器1020执行上文述及的绘制方法。
上文中已经参考附图详细描述了根据本发明的绘制方法、装置、设备以及存储介质。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种绘制方法,其特征在于,包括:
基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用卡尔曼滤波方式确定当前绘制点的绘制位置,所述状态向量和所述观测状态向量均包括位置信息和速度信息;以及
以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用N次贝塞尔曲线绘制由所述起点到所述终点的线条,其中,N为大于或等于2的整数;
其中,所述使用卡尔曼滤波方式确定当前绘制点的位置的步骤包括:
基于上一绘制点的状态向量,预测当前绘制点的估计状态向量;
基于所述估计状态向量、所述观测状态向量以及上一绘制点的误差协方差矩阵,确定修正后的状态向量;以及
将修正后的状态向量中的位置信息作为当前绘制点的绘制位置。
2.根据权利要求1所述的绘制方法,其特征在于,
所述状态向量是使用卡尔曼滤波方式确定的修正后的状态向量,并且,所述状态向量包括位置信息和速度信息。
3.根据权利要求1所述的绘制方法,其特征在于,所述预测当前绘制点的估计状态向量的步骤包括:
通过状态向量变换矩阵与所述状态向量的乘法运算来获得所述估计状态向量。
4.根据权利要求1所述的绘制方法,其特征在于,所述确定修正后的状态向量的步骤包括:
基于状态向量变换矩阵、过程噪声协方差矩阵以及所述误差协方差矩阵,计算当前绘制点的误差协方差矩阵,以得到计算误差协方差矩阵;
基于所述计算误差协方差矩阵、观测值变换矩阵以及测量噪声协方差矩阵,计算卡尔曼增益矩阵;以及
基于所述卡尔曼增益矩阵、所述估计状态向量、所述观测状态向量以及所述观测值变换矩阵,确定修正后的状态向量。
5.根据权利要求4所述的绘制方法,其特征在于,还包括:
基于所述卡尔曼增益矩阵和所述观测值变换矩阵对所述计算误差协方差矩阵进行更新,以得到当前绘制点的误差协方差矩阵。
6.根据权利要求1所述的绘制方法,其特征在于,还包括:
判断当前绘制点与上一绘制点间的距离是否大于第一预定阈值;以及/或者
判断当前绘制点与上一绘制点间的角度变化是否大于第二预定阈值;以及/或者
判断当前绘制点与上一绘制点间的时间间隔是否大于第三预定阈值。
7.根据权利要求6所述的绘制方法,其特征在于,
在当前绘制点与上一绘制点间的距离大于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化大于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间间隔大于第三预定阈值的情况下,使用卡尔曼滤波方式确定当前绘制点的位置。
8.根据权利要求6所述的绘制方法,其特征在于,
在当前绘制点与上一绘制点间的距离小于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化小于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间间隔小于第三预定阈值的情况下,丢弃当前绘制点。
9.根据权利要求1-8中任何一项所述的绘制方法,其特征在于,该绘制方法是响应于用户的书画操作而执行的,所述绘制点对应于用户的书画操作点。
10.一种绘制装置,其特征在于,包括:
确定模块,用于基于上一绘制点的状态向量和当前绘制点的观测状态向量,使用卡尔曼滤波方式确定当前绘制点的绘制位置,所述状态向量和所述观测状态向量均包括位置信息和速度信息;以及
绘制模块,用于以上一绘制点的绘制位置为起点,所确定的当前绘制点的绘制位置为终点,使用N次贝塞尔曲线绘制由所述起点到所述终点的线条,其中,N为大于或等于2的整数;
其中,所述确定模块包括:
预测模块,用于基于上一绘制点的状态向量,预测当前绘制点的估计状态向量;以及
位置确定模块,用于基于所述估计状态向量、所述观测状态向量以及上一绘制点的误差协方差矩阵,确定修正后的状态向量;以及将修正后的状态向量中的位置信息作为当前绘制点的绘制位置。
11.根据权利要求10所述的绘制装置,其特征在于,
所述状态向量是使用卡尔曼滤波方式确定的修正后的状态向量,并且,所述状态向量包括位置信息和速度信息。
12.根据权利要求10所述的绘制装置,其特征在于,
所述预测模块通过状态向量变换矩阵与所述状态向量的乘法运算来获得所述估计状态向量。
13.根据权利要求10所述的绘制装置,其特征在于,所述状态向量确定模块包括:
第一计算模块,用于基于状态向量变换矩阵、过程噪声协方差矩阵以及所述误差协方差矩阵,计算当前绘制点的误差协方差矩阵,以得到计算误差协方差矩阵;
第二计算模块,用于基于所述计算误差协方差矩阵、观测值变换矩阵以及测量噪声协方差矩阵,计算卡尔曼增益矩阵;以及
修正模块,用于基于所述卡尔曼增益矩阵、所述估计状态向量、所述观测状态向量以及所述观测值变换矩阵,确定修正后的状态向量。
14.根据权利要求13所述的绘制装置,其特征在于,所述确定模块还包括:
更新模块,用于基于所述卡尔曼增益矩阵和所述观测值变换矩阵对所述计算误差协方差矩阵进行更新,以得到当前绘制点对应的误差协方差矩阵。
15.根据权利要求10所述的绘制装置,其特征在于,还包括:
第一判断模块,用于判断当前绘制点与上一绘制点间的距离是否大于第一预定阈值;以及/或者
第二判断模块,用于判断当前绘制点与上一绘制点间的角度变化是否大于第二预定阈值;以及/或者
第三判断模块,用于判断当前绘制点与上一绘制点间的时间是否大于第三预定阈值。
16.根据权利要求15所述的绘制装置,其特征在于,
在当前绘制点与上一绘制点间的距离大于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化大于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间大于第三预定阈值的情况下,使用卡尔曼滤波方式确定当前绘制点的位置。
17.根据权利要求15所述的绘制装置,其特征在于,
在当前绘制点与上一绘制点间的距离小于第一预定阈值,并且/或者,当前绘制点与上一绘制点间的角度变化小于第二预定阈值,并且/或者,当前绘制点与上一绘制点间的时间小于第三预定阈值的情况下,丢弃当前绘制点。
18.根据权利要求10-17中任何一项所述的绘制装置,其特征在于,该绘制装置响应于用户的书画操作而执行,所述绘制点对应于用户的书画操作点。
19.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-9中任何一项所述的方法。
20.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810240017.2A CN110297677B (zh) | 2018-03-22 | 2018-03-22 | 绘制方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810240017.2A CN110297677B (zh) | 2018-03-22 | 2018-03-22 | 绘制方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297677A CN110297677A (zh) | 2019-10-01 |
CN110297677B true CN110297677B (zh) | 2022-12-23 |
Family
ID=68025653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810240017.2A Active CN110297677B (zh) | 2018-03-22 | 2018-03-22 | 绘制方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297677B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2591766B (en) | 2020-02-04 | 2023-02-08 | Peratech Holdco Ltd | Maintaining pressure input paths |
CN111913644B (zh) * | 2020-07-29 | 2022-06-24 | 北京大麦地信息技术有限公司 | 一种白板的线条绘制方法及装置、可读存储介质 |
CN113466567A (zh) * | 2021-06-08 | 2021-10-01 | 广东电网有限责任公司广州供电局 | 一种基于卡尔曼滤波器的雷电活动预测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216945A (zh) * | 2007-12-26 | 2008-07-09 | 广东威创视讯科技股份有限公司 | 绘制图形的方法及装置 |
CN107608619A (zh) * | 2017-09-20 | 2018-01-19 | 广州视源电子科技股份有限公司 | 用于触控屏的笔迹曲线生成方法、装置、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5294313B2 (ja) * | 2008-11-07 | 2013-09-18 | Necシステムテクノロジー株式会社 | ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム |
US9323449B2 (en) * | 2014-05-09 | 2016-04-26 | Htc Corporation | Electronic apparatus and drawing method using the same |
-
2018
- 2018-03-22 CN CN201810240017.2A patent/CN110297677B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216945A (zh) * | 2007-12-26 | 2008-07-09 | 广东威创视讯科技股份有限公司 | 绘制图形的方法及装置 |
CN107608619A (zh) * | 2017-09-20 | 2018-01-19 | 广州视源电子科技股份有限公司 | 用于触控屏的笔迹曲线生成方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110297677A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394318B2 (en) | Scene analysis for improved eye tracking | |
CN110297677B (zh) | 绘制方法、装置、设备以及存储介质 | |
US8587563B2 (en) | Touch system and positioning method therefor | |
CN107219941B (zh) | 软笔实时轨迹生成方法、存储介质、处理设备 | |
CN113330421B (zh) | 点积计算器及其操作方法 | |
US9020266B2 (en) | Methods and devices for processing handwriting input | |
US10186081B2 (en) | Tracking rigged smooth-surface models of articulated objects | |
JP2017529623A (ja) | ウェットインク予測器 | |
CN108280843A (zh) | 一种视频目标检测跟踪方法及设备 | |
CN107808388B (zh) | 包含运动目标的图像处理方法、装置及电子设备 | |
US9846501B2 (en) | Method for simulating digital watercolor image and electronic device using the same | |
CN112306301A (zh) | 触控数据的处理方法、装置、设备及存储介质 | |
CN108960012B (zh) | 特征点检测方法、装置及电子设备 | |
CN107808394B (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN113850859A (zh) | 用于增强图像深度置信度图的方法、系统、制品和装置 | |
CN113516697B (zh) | 图像配准的方法、装置、电子设备及计算机可读存储介质 | |
CN110765926B (zh) | 图画书识别方法、装置、电子设备和存储介质 | |
CN111126101B (zh) | 关键点位置的确定方法、装置、电子设备和存储介质 | |
CN113626903B (zh) | 一种道路曲线设置方法、装置、电子设备及存储介质 | |
US7386169B2 (en) | Method for edge detection and contour stroke generation | |
CN110070479B (zh) | 图像变形拖拽点定位方法和装置 | |
US7646389B1 (en) | Divergent and non-divergent texture fetches | |
CN107066919B (zh) | 笔尖位置求解方法、设备和计算机可读存储介质 | |
CN104750275A (zh) | 一种滑块的移动速度的确定方法及装置 | |
Deokar et al. | Review on distributed canny edge detector using FPGA |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201119 Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China Applicant after: Zebra smart travel network (Hong Kong) Ltd. Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Applicant before: Alibaba Group Holding Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |