CN101383050B - 笔迹的书写方法及书写装置 - Google Patents
笔迹的书写方法及书写装置 Download PDFInfo
- Publication number
- CN101383050B CN101383050B CN2008101991398A CN200810199139A CN101383050B CN 101383050 B CN101383050 B CN 101383050B CN 2008101991398 A CN2008101991398 A CN 2008101991398A CN 200810199139 A CN200810199139 A CN 200810199139A CN 101383050 B CN101383050 B CN 101383050B
- Authority
- CN
- China
- Prior art keywords
- value
- row
- matrix
- last
- difference
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Character Discrimination (AREA)
Abstract
一种笔迹的书写方法及书写装置,其通过对当前采样点与前一采样点在横向坐标方向上的横向坐标距离与在纵向坐标方向上的纵向坐标距离的比较,并根据比较结果选用相应的预设方式对初始模型矩阵进行变换,在变换时,是根据当前采样点的横向位置坐标的小数部分、纵向位置坐标的小数部分、根据预设笔宽所确定的初始模型矩阵等进行变换,并用变换后的最终变换矩阵填充采样点,由于是采用小数部分对初始模型矩阵进行变换,小数部分具有较高的精度,且是用变换后的最终变换矩阵填充当前采样点,实现简单,效率高,在各采样点相对比较密集的情况下,利用各采样点的最终变换矩阵分别对各采样点进行填充后可以达到很好的平滑性效果。
Description
技术领域
本发明涉及在计算机中绘图技术领域,特别涉及一种笔迹的书写方法及书写装置。
背景技术
随着计算机应用的日益普及,计算机绘图技术也日益普遍,涉及美术、设计、教育、军事以及会议等领域,通常情况下,计算机绘制图像是通过识别画笔(鼠标)移动的时候的一些点,将这些点通过直线段按照画笔轨迹顺序相连,得到一条画笔折线,当取样点足够多的情况下,该折线即可以粗略地表示出画笔的路径,但是,由于显示设备的光栅特性以及由此而带来的整数坐标体系,所绘制出来的画笔轨迹普遍存在锯齿、走样的问题,导致书写笔迹不平滑。
发明内容
针对上述现有技术中存在的问题,本发明的第一个目的在于提供一种笔迹的书写方法,以实现笔迹的平滑书写。
为达到上述目的,本发明采用以下技术方案:
一种笔迹的书写方法,其特征在于,包括步骤:
根据预先设定的笔宽建立初始模型矩阵;
获取曲线路径上的采样点的位置坐标;
判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离:
若是,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始行、初始列开始,依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵,并将该第一变换矩阵作为最终变换矩阵;
若否,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始列、初始行开始,依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵,并将该第二变换矩阵作为最终变换矩阵;
绘制所述最终变换矩阵,并用该最终变换矩阵填充所述当前采样点;
所述依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵具体包括:
步骤1:令初始行为当前行、初始列为当前列;
步骤2:计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与该当前行求和后所得的和值作为该当前行的变换值,并令当前行的下一行为新的当前行;
计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,并令当前列的下一列为新的当前列;
步骤3:重复执行上述步骤2直至当前行为最后一行、当前列为最后一列;
步骤4:计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值;
计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
所述依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵具体包括:
步骤a:令初始列为当前列、初始行为当前行;
步骤b:计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,令当前列的下一列为新的当前列;
计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与当前行求和后所得的和值作为该当前行的变换值,令当前行的下一行为新的当前行;
步骤c:重复执行上述步骤b直至当前列为最后一列、当前行为最后一行;
步骤d:计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值。
根据上述本发明的方案,其通过对当前采样点与前一采样点在横向坐标方向上的横向坐标距离与在纵向坐标方向上的纵向坐标距离的比较,并根据比较结果选用相应的预设方式对初始模型矩阵进行变换,在变换时,是根据当前采样点的横向位置坐标的小数部分、纵向位置坐标的小数部分等进行变换,并用变换后的最终变换矩阵填充采样点,由于是采用小数部分对初始模型矩阵进行变换,小数部分具有较高的精度,且是用变换后的最终变换矩阵填充当前采样点,实现简单,效率高,在各采样点相对比较密集的情况下,利用各采样点的最终变换矩阵进行填充后可以达到很好的平滑性效果。
本发明的第二个目的在于提供一种笔迹的书写装置,其可以实现平滑的笔迹书写。
为达到上述目的,本发明采用以下技术方案:
一种笔迹的书写装置,其特征在于,包括:
初始模型矩阵设置模块,用于根据预先设定的笔宽建立初始模型矩阵;
采样点获取模块,用于获取曲线路径上的采样点的位置坐标;
与所述采样点获取模块相连接的判别模块,用于判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离;
与所述初始模型矩阵设置模块、所述采样点获取模块、所述判别模块相连接的第一变换模块,用于当所述判别模块的判断结果为是时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始行、初始列开始,依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵;
与所述初始模型矩阵设置模块、所述采样点获取模块、所述判别模块相连接的第二变换模块,用于当所述判别模块的判断结果为否时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始列、初始行开始,依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵;
与所述判别模块、所述第一变换模块、所述第二变换模块相连接的最终变换矩阵确定模块,用于当所述判别模块的判断结果为是时,将所述第一变换矩阵作为最终变换矩阵,当所述判别模块的判断结果为否时,将所述第二变换矩阵作为最终变换矩阵;
与所述最终变换矩阵确定模块相连接的填充模块,用于绘制所述最终变换矩阵确定模块所确定的最终变换矩阵,并用该最终变换矩阵填充所述当前采样点;
所述第一变换模块依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵具体包括:
步骤1:令初始行为当前行、初始列为当前列;
步骤2:计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与该当前行求和后所得的和值作为该当前行的变换值,并令当前行的下一行为新的当前行;
计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,并令当前列的下一列为新的当前列;
步骤3:重复执行上述步骤2直至当前行为最后一行、当前列为最后一列;
步骤4:计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值;
计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
所述第二变换模块依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵具体包括:
步骤a:令初始列为当前列、初始行为当前行;
步骤b:计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,令当前列的下一列为新的当前列;
计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与当前行求和后所得的和值作为该当前行的变换值,令当前行的下一行为新的当前行;
步骤c:重复执行上述步骤b直至当前列为最后一列、当前行为最后一行;
步骤d:计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值。
根据上述本发明的方案,其通过对当前采样点与前一采样点在横向坐标方向上的横向坐标距离与在纵向坐标方向上的纵向坐标距离的比较,并根据比较结果选用相应的预设方式对初始模型矩阵进行变换,在变换时,是根据当前采样点的横向位置坐标的小数部分、纵向位置坐标的小数部分等进行变换,并用变换后的最终变换矩阵填充采样点,由于是采用小数部分对初始模型矩阵进行变换,小数部分具有较高的精度,且是用变换后的最终变换矩阵填充当前采样点,实现简单,效率高,在各采样点相对比较密集的情况下,利用各采样点的最终变换矩阵进行填充后可以达到很好的平滑性效果。
附图说明
图1是本发明笔迹的书写方法的流程示意图;
图2是本发明笔迹的书写装置的结构示意图。
具体实施方式
在本发明的方案中,通过预先根据笔宽建立初始模型矩阵,各采样点共用相同的初始模型矩阵,然后将该初始模型矩阵,并根据当前采样点的位置坐标的小数部分、以及与前一采样点的坐标的差值为参数对该模型进行变换,并用变换后的矩阵填充对应的采样点。
参见图1所示,是本发明的笔迹的书写方法的流程示意图,其具体包括:
步骤S101:根据预设笔宽,建立初始模型矩阵,其中,矩阵中的各元素值可以是代表相应的透明度值,进入步骤S102;
步骤S102:获取曲线路径上的采样点的位置坐标,进入步骤S103;
步骤S103:判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离,若是,进入步骤S104,若否,则进入步骤S105;
步骤S104:根据第一预设变换方式、所述初始模型矩阵、所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,对所述初始模型矩阵进行变换得到第一变换矩阵,并将该第一变换矩阵作为最终变换矩阵,进入步骤S106;
步骤S105:根据第二预设变换方式、所述初始模型矩阵、所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,对所述初始模型矩阵进行变换得到第二变换矩阵,并将该第二变换矩阵作为最终变换矩阵,进入步骤S106;
步骤S106:绘制所述最终变换矩阵,并用该最终变换矩阵填充所述当前采样点,即在当前采样点与前一采样点在横向坐标方向上的横向坐标距离大于或者等于在纵向坐标方向上的纵向坐标距离时,使用所述步骤S104中的第一变换矩阵填充当前采样点,在当前采样点与前一采样点在横向坐标方向上的横向坐标距离小于在纵向坐标方向上的纵向坐标距离时,使用所述步骤S105中的第二变换矩阵填充当前采样点。
根据上述本发明的方法,其通过对当前采样点与前一采样点在横向坐标方向上的横向坐标距离与在纵向坐标方向上的纵向坐标距离进行比较,并根据比较结果选用相应的预设方式对初始模型矩阵进行变换,在变换时,是根据当前采样点的横向位置坐标的小数部分、纵向位置坐标的小数部分等进行变换,并用变换后的最终变换矩阵填充采样点,由于是采用小数部分对初始模型矩阵进行变换,小数部分具有较高的精度,且是用变换后的最终变换矩阵填充当前采样点,实现简单,效率高,在各采样点相对比较密集的情况下,利用各采样点的最终变换矩阵进行填充后可以达到很好的平滑性效果。
其中,在根据第一预设变换方式进行变换时,是自上述初始模型矩阵的初始行、初始列开始依次对该初始模型矩阵的各个行的元素值、各个列的元素值进行变换,且在后变换均是在在前变换的基础上进行,假设初始行为第0行、初始列为第0列,具体可以包括:
计算初始模型矩阵中第1行减去第0行的差值,将该差值与当前采样点的纵向位置坐标的小数部分相乘,并将乘积结果与该第0行求和后所得的和值作为该第0行的变换值;
在上述步骤计算结果的基础上,计算第1列减去第0列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与第0列求和后所得的和值作为该第0列的变换值;
在上述各步骤计算结果的基础上,计算第2行减去第1行的差值,将该差值与当前采样点的纵向位置坐标的小数部分相乘,并将该乘积结果与该第1行求和后所得的和值作为该第1行的变换值;
在上述各步骤计算结果的基础上,计算第2列减去第1列的差值,将该差值与当前采样点的横向位置坐标的小数部分相乘,并将乘积结果与第1列求和后所得的和值作为该第1列的变换值;
以此类推,直至计算完倒数第二行、倒数第二列的变换值,随后进入对最后一行、最后一列的变换:
在上述各步骤计算结果的基础上,计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值;
在上述各步骤计算结果的基础上,计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值。
根据如上所述,由于当前采样点与前一采样点的横向坐标距离大于或者等于了纵向坐标距离,因此,在根据第一预设变换方式进行变换时,其首先对初始模型矩阵的行的元素进行变换,然后对相应的列的元素进行变换,且在后的变换均是在在前变换的基础上进行。
此外,在上述根据第二预设变换方式对初始模型矩阵进行变换时,是自上述初始模型矩阵的初始列、初始行开始依次对该初始模型矩阵的各个列的元素值、各个行的元素值进行变换,且在后变换均是在在前变换的基础上进行,假设初始列为第0列、初始行为第0行,具体可以的过程可以包括:
计算所述初始模型矩阵中第1列减去第0列的差值,将该差值与当前采样点的横向位置坐标的小数部分相乘,并将乘积结果与该第0列求和后所得的和值作为该第0列的变换值;
在上述步骤计算结果的基础上,计算第1行减去第0行的差值,将该差值与当前采样点的纵向位置坐标的小数部分相乘,并将乘积结果与第0行求和后所得的和值作为该第0行的变换值;
在上述各步骤计算结果的基础上,计算第2列减去第1列的差值,将该差值与当前采样点的横向位置坐标的小数部分相乘,并将该乘积结果与该第1列求和后所得的和值作为该第1列的变换值;
在上述各步骤计算结果的基础上,计算第2行减去第1行的差值,将该差值与当前采样点的纵向位置坐标的小数部分相乘,并将乘积结果与第1行求和后所得的和值作为该第1行的变换值;
以此类推,直至计算完该矩阵中倒数第二列、倒数第二行的变换值,随后进入对最后一列、最后一行的变换:
在上述各步骤计算结果的基础上,计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
在上述各步骤计算结果的基础上,计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值。
根据如上所述,由于当前采样点与前一采样点的横向坐标距离小于了纵向坐标距离,因此,在根据第二预设变换方式进行变换时,其首先对初始模型矩阵的列的元素进行变换,然后对相应的行的元素进行变换,且在后的变换是在在前变换的基础上进行。
以下针对本发明的一个具体实施例进行详细描述。
根据如上所述,在本发明的方案中,在根据第一预设变换方式或者第二预设变换方式对初始模型矩阵进行变换时,是根据当前采样点的位置坐标的小数部分对初始模型矩阵进行变换,采样点的位置坐标的小数部分对变换后所得到的最终变换矩阵产生影响,因此,在较为理想的情况下,当采样点的位置坐标的小数点部分为0时,对最终变换矩阵的影响应当是最小的,甚至于是没有影响,即在采样点的横向位置坐标的小数部分为0、且纵向位置坐标的小数部分也为0的情况下,经过第一预设变换方式变换或者第二预设变换方式变换后所得到的第一变换矩阵或者第二变换矩阵最好能够与初始模型矩阵相同,为了满足这种特性,在本发明的该具体实施例中,将初始模型矩阵的最后一行与最后一列的元素值设为0,且所建立的模型矩阵的大小为(笔宽+1)*(笔宽+1)
根据如上所述的特性,以预设笔宽为奇数值为例,可将初始模型矩阵设置为:
其中,k为大于或者等于1的整数。
出于对应用灵活性的考虑,在所选定的预设笔宽为偶数值的情况下,此时,可将该预设笔宽加1后所得值作为本发明方案中所使用的预设笔宽。
其中,用R(i)表示第i行,用C(i)表示第i列,ΔR(i)=R(i+1)-R(i),ΔC(i)=C(i+1)-C(i),且i=0,1,2....。
假设当前采样点的位置坐标为Pn(xn,yn),前一采样点的位置坐标为Pn-1(xn-1,yn-1),则:
Δx=|xn-xn-1|,Δy=|yn-yn-1|;
px=xn-[xn],py=yn-[yn];
其中,Δx表示当前采样点与前一采样点在横向坐标方向上的横向坐标距离,Δy表示当前采样点与前一采样点在纵向坐标方向上的纵向坐标距离,[xn]表示xn的整数部分,px表示当前采样点的横向位置坐标的小数部分,[yn]表示yn的整数部分,py表示当前采样点的纵向位置坐标的小数部分。
在建立了初始模型矩阵、并获得曲线路径上的当前采样点的位置坐标后,判断当前采样点与前一采样点的横向坐标方向上的距离是否大于或者等于在纵向坐标方向上的纵向坐标距离,即是否Δx≥Δy:
若Δx≥Δy,则依次对初始模型矩阵进行变换,在i从0开始的情况下,则依次为第0行、第0列、第1行、第1列...,在i从1开始的情况下,则从第1行、第1列、第2行、第2列...,以下以i从0开始进行说明:
针对第0行,R(0)的初始值为(a11 a12 a13 0),运用公式R(i)+=Py*ΔR(i),即将R(i)+Py*ΔR(i)所得的值作为R(i)的变换值,变换后的R(0)为(a11+py*(a21-a11)a12+py*(a22-a12)a13+py*(a23-a13)0);
针对第0列,经过上述变换后,C(0)的值变换为(a11+py*(a21-a11)a21a310)T,运用公式C(i)+=Px*ΔC(i)变换后,将C(0)+Px*ΔC(0)所得的值作为C(0)的变换值,变换后的C(0)为
在上述变换结果的基础上,再依次对R(1)、C(1)、R(2)、C(2)进行变换,且后面的变换过程均是在前面的变换结果的基础上进行;
当i=预设笔宽,即i=3时,到达矩阵的最后一行、最后一列,针对该R(3)、C(3),由于作为计算ΔR(3)、ΔC(3)基础的R(4)、C(4)并不存在,因此,用上述公式对R(3)、C(3)进行变换不再合适,在本具体实施例中,采用下述方式实现对R(3)、C(3)的变换:
针对第3行,将原第3行减去上述变换后的第2行的元素值所得差值的绝对值作为该第3行变换后的值,即R(3)=|R(3)-R(2)|;
针对第3列,将原第3列减去上述变换后的第2列的元素值所得差值的元素值作为该第3列变换后的值,即C(3)=|C(3)-C(2)|;
经过上述变换过程后,得到第一预设变换后的矩阵值,即第一变换矩阵,将第一变换矩阵作为最终变换矩阵,并用该最终变换矩阵填充当前采样点;
若Δx<Δy:
针对第0列,C(0)的初始值为(a11a21a310)T,运用公式C(i)+=Px*ΔC(i),即将C(i)+Px*ΔC(i)所得的值作为C(i)的变换值,变换后的C(0)为(a11+px*(a12-a11)a21+px*(a22-a21)a31+px*(a32-a31)0)T;
针对第0行,经过上述变换后,R(0)的值变换为(a11+px*(a12-a11)a12a130),运用公式R(i)+=Py*ΔR(i)变换后,将R(0)+Py*ΔR(0)所得的值作为R(0)的变换值,变换后的C(0)为
在上述已经变换的基础上,再依次对C(1)、R(1)、C(2)、R(2)进行变换,且后面的变换过程均是在前面的变换结果的基础上进行;
当i=预设笔宽,即i=3时,到达矩阵的最后一列、最后一行,针对该C(3)、R(3),由于作为计算ΔC(3)、ΔR(3)基础的C(4)、R(4)并不存在,因此,用上述公式对C(3)、R(3)进行变换不再合适,在本具体实施例中,采用下述方式实现对C(3)、R(3)的变换:
针对第3列,将原第3列减去上述变换后的第2列的元素值所得差值的元素值作为该第3列变换后的值,即C(3)=|C(3)-C(2)|;
针对第3行,将原第3行减去上述变换后的第2行的元素值所得差值的绝对值作为该第3行变换后的值,即R(3)=|R(3)-R(2)|;
经过上述变换过程后,得到第二预设变换后的矩阵值,即第二变换矩阵,将第二变换矩阵作为最终变换矩阵,并用该最终变换矩阵填充当前采样点;
其中,在用上述最终变换矩阵填充当前采样点时,根据如上所述,该矩阵为4*4的矩阵,从而可能导致该矩阵与当前采样点的对齐点无法确定,考虑到采样点的位置坐标的小数部分为0时,经变换后所得矩阵的最后一行、最后一列的元素值均为0,因此,可将去除掉最后一行、最后一列后所剩矩阵的中心值作为该最终变换矩阵的中心值,并将该中心值与采样点对齐后,将该模型进行覆盖,实现填充过程。
此外,在用最终变换矩阵填充当前采样点时,考虑到笔迹书写的美观性,应当使书写的画笔呈现从中心向两侧呈现渐变的书写效果,即使得所书写出来的笔迹的中心的颜色最深,而画笔两侧的颜色最浅,因此,作为一种最佳方式,在设置初始模型矩阵时:
如果初始模型矩阵中的元素值代表的是透明度值,由于透明度值越大,不透明的程度越高,因此可使矩阵的中心值最大,从中心值向外扩展,距离越大元素值越小,另外,为了呈现均匀的书写笔迹,应当使中心值两侧的元素值呈现相同的扩展方式,即与中心值距离相同的元素的值相同,即,针对初始模型矩阵而言,使a11=a13=a31=a33,a12=a21=a23=a32,且a22>a12>a11;
如果初始模型矩阵中的元素值代表的是灰度值,由于灰度值越小,所代表的颜色越深,因此可使矩阵的中心值最小,从中心值向外扩展,距离越大元素值越大,另外,为了呈现均匀的书写笔迹,应当使中心值两侧的元素值呈现相同的扩展方式,即与中心值距离相同的元素的值相同,即,针对初始模型矩阵而言,使a11=a13=a31=a33,a12=a21=a23=a32,且a22<a12<a11;
针对采用其他的预设笔宽的初始模型矩阵,或者初始模型矩阵中的元素代表的是其他参数值时,可据此类推,在此不予赘述。
此外,由于填充采样点的矩阵特性,在用矩阵对采样点进行填充时,如果采样点之间的距离过大,可能会使书写出来的笔迹会出现连续性不强的效果,为了使书写笔迹呈现更好的连续性,在获取采样点时,可以是针对每个像素点进行采样,即针对每个像素点均执行上述的模型变换及填充步骤,此时,上述描述中所涉及的采样点均为像素点,此时,上述描述中所涉及的曲线路径可以是已经形成连接曲线的曲线路径。
针对上述本发明的笔迹的书写方法,本发明还提供一种笔迹的书写装置,参见图2所示,是本发明的笔迹的书写装置的结果示意图,其包括:
初始模型矩阵设置模块201,用于根据预设笔宽建立初始模型矩阵;
采样点获取模块202,用于获取曲线路径上的采样点的位置坐标;
与采样点获取模块202相连接的判别模块203,用于判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离;
与初始模型矩阵设置模块201、采样点获取模块202、判别模块203相连接的第一变换模块204,用于当判别模块203的判断结果为是时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始行、初始列开始,依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵;
与初始模型矩阵设置模块201、采样点获取模块202、判别模块203相连接的第二变换模块205,用于当判别模块203的判断结果为否时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始列、初始行开始,依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵;
与判别模块203、第一变换模块204、第二变换模块205相连接的最终变换矩阵确定模块206,用于当判别模块203的判断结果为是时,将第一变换模块204所确定的第一变换矩阵作为最终变换矩阵,当判别模块203的判断结果为否时,将第二变换模块205所确定的第二变换矩阵作为最终变换矩阵;
与最终变换矩阵确定模块206相连接的填充模块207,用于绘制最终变换矩阵确定模块206所确定的最终变换矩阵,并用该最终变换矩阵填充当前采样点。
根据上述本发明的装置,其通过对当前采样点与前一采样点在横向坐标方向上的横向坐标距离与在纵向坐标方向上的纵向坐标距离的比较,并根据比较结果选用相应的预设方式对初始模型矩阵进行变换,在变换时,是根据当前采样点的横向位置坐标的小数部分、纵向位置坐标的小数部分等进行变换,并用变换后的最终变换矩阵填充采样点,由于是采用小数部分对初始模型矩阵进行变换,小数部分具有较高的精度,且是用变换后的最终变换矩阵填充当前采样点,实现简单,效率高,在各采样点相对比较密集的情况下,利用各采样点的最终变换矩阵进行填充后可以达到很好的平滑性效果。
在本发明的装置中,依次对初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵、依次对初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵的具体变换方式可如上述方法实施例中所述,在此不予赘述。
其中,在用最终变换矩阵填充当前采样点时,根据如上所述,由于最终变换矩阵为偶数矩阵,从而导致该矩阵与当前采样点的对齐点无法确定,考虑到采样点的位置坐标的小数部分为0时,经变换后所得矩阵的最后一行、最后一列的元素值均为0,因此,可将去除掉最后一行、最后一列后所剩矩阵的中心值作为该最终变换矩阵的中心值,并将该中心值与采样点对齐后,将该模型进行覆盖,实现填充过程。
此外,在用最终变换矩阵填充当前采样点时,考虑到笔迹书写的美观性,应当使书写的画笔呈现从中心向两侧呈现渐变的书写效果,即使得所书写出来的笔迹的中心的颜色最深,而画笔两侧的颜色最浅,因此,作为一种最佳的实施方式,初始模型矩阵设置模块301在设置初始模型矩阵时:
如果初始模型矩阵中的元素值代表的是透明度值,由于透明度值越大,不透明的程度越高,因此可使矩阵的中心值最大,从中心值向外扩展,距离越大元素值越小,另外,为了呈现均匀的书写笔迹,应当使中心值两侧的元素值呈现相同的扩展方式,即与中心值距离相同的元素的值相同,即,针对初始模型矩阵而言,使a11=a13=a31=a33,a12=a21=a23=a32,且a22>a12>a11;
如果初始模型矩阵中的元素值代表的是灰度值,由于灰度值越小,所代表的颜色越深,因此可使矩阵的中心值最小,从中心值向外扩展,距离越大元素值越大,另外,为了呈现均匀的书写笔迹,应当使中心值两侧的元素值呈现相同的扩展方式,即与中心值距离相同的元素的值相同,即,针对初始模型矩阵而言,使a11=a13=a31=a33,a12=a21=a23=a32,且a22<a12<a11;
针对采用其他的预设笔宽的初始模型矩阵,或者初始模型矩阵中的元素代表的是其他参数值时,可据此类推,在此不予赘述。
此外,由于填充采样点的矩阵特性,在用矩阵对采样点进行填充时,如果采样点之间的距离过大,可能会使书写出来的笔迹会出现连续性不强的效果,为了使书写笔迹呈现更好的连续性,在获取采样点时,可以是针对每个像素点进行采样,即针对每个像素点均执行上述的模型变换及填充步骤,此时,上述描述中所涉及的采样点均为像素点,此时,上述描述中所涉及的曲线路径可以是已经形成连接曲线的曲线路径。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (9)
1.一种笔迹的书写方法,其特征在于,包括步骤:
根据预先设定笔宽建立初始模型矩阵;
获取曲线路径上的采样点的位置坐标;
判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离:
若是,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始行、初始列开始,依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵,并将该第一变换矩阵作为最终变换矩阵;
若否,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始列、初始行开始,依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵,并将该第二变换矩阵作为最终变换矩阵;
绘制所述最终变换矩阵,并用该最终变换矩阵填充所述当前采样点;
所述依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵具体包括:
步骤1:令初始行为当前行、初始列为当前列;
步骤2:计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与该当前行求和后所得的和值作为该当前行的变换值,并令当前行的下一行为新的当前行;
计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,并令当前列的下一列为新的当前列;
步骤3:重复执行上述步骤2直至当前行为最后一行、当前列为最后一列;
步骤4:计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值;
计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
所述依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵具体包括:
步骤a:令初始列为当前列、初始行为当前行;
步骤b:计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,令当前列的下一列为新的当前列;
计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与当前行求和后所得的和值作为该当前行的变换值,令当前行的下一行为新的当前行;
步骤c:重复执行上述步骤b直至当前列为最后一列、当前行为最后一行;
步骤d:计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值。
2.根据权利要求1所述的笔迹的书写方法,其特征在于:在所述初始模型矩阵中,最后一行、最后一列的元素值为0。
3.根据权利要求1所述的笔迹的书写方法,其特征在于:在所述初始模型矩阵中,除去最后一行、最后一列后所剩的矩阵中,与矩阵中心的元素距离相同的元素的值相同。
4.根据权利要求3所述的笔迹的书写方法,其特征在于:
当所述初始模型矩阵中的元素代表透明度值时,在所述除去最后一行、最后一列后所剩的矩阵中,位于矩阵中心的元素值最大,距离矩阵中心最远的元素值最小;
当所述初始模型矩阵中的元素代表灰度值时,在所述除去最后一行、最后一列后所剩的矩阵中,位于矩阵中心的元素值最小,距离矩阵中心最远的元素值最大。
5.根据权利要求1所述的笔迹的书写方法,其特征在于:
所述预先设定笔宽为奇数值。
6.根据权利要求1所述的笔迹的书写方法,其特征在于:
当所述预先设定笔宽为偶数值时,将该预先设定笔宽加1后所得值作为所述预先设定笔宽。
7.根据权利要求1所述的笔迹的书写方法,其特征在于:所述采样点为像素点。
8.一种笔迹的书写装置,其特征在于,包括:
初始模型矩阵设置模块,用于根据预先设定笔宽建立初始模型矩阵;
采样点获取模块,用于获取曲线路径上的采样点的位置坐标;
与所述采样点获取模块相连接的判别模块,用于判断当前采样点与前一采样点在横向坐标方向上的横向坐标距离是否大于或者等于在纵向坐标方向上的纵向坐标距离;
与所述初始模型矩阵设置模块、所述采样点获取模块、所述判别模块相连接的第一变换模块,用于当所述判别模块的判断结果为是时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始行、初始列开始,依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵;
与所述初始模型矩阵设置模块、所述采样点获取模块、所述判别模块相连接的第二变换模块,用于当所述判别模块的判断结果为否时,根据所述当前采样点的横向位置坐标的小数部分、所述当前采样点的纵向位置坐标的小数部分,自初始列、初始行开始,依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵;
与所述判别模块、所述第一变换模块、所述第二变换模块相连接的最终变换矩阵确定模块,用于当所述判别模块的判断结果为是时,将所述第一变换矩阵作为最终变换矩阵,当所述判别模块的判断结果为否时,将所述第二变换矩阵作为最终变换矩阵;
与所述最终变换矩阵确定模块相连接的填充模块,用于绘制所述最终变换矩阵确定模块所确定的最终变换矩阵,并用该最终变换矩阵填充所述当前采样点;
所述第一变换模块依次对所述初始模型矩阵的行元素值、列元素值进行变换得到第一变换矩阵具体包括:
步骤1:令初始行为当前行、初始列为当前列;
步骤2:计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与该当前行求和后所得的和值作为该当前行的变换值,并令当前行的下一行为新的当前行;
计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,并令当前列的下一列为新的当前列;
步骤3:重复执行上述步骤2直至当前行为最后一行、当前列为最后一列;
步骤4:计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值;
计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
所述第二变换模块依次对所述初始模型矩阵的列元素值、行元素值进行变换得到第二变换矩阵具体包括:
步骤a:令初始列为当前列、初始行为当前行;
步骤b:计算下一列减去当前列的差值,将该差值与所述横向位置坐标的小数部分相乘,并将乘积结果与该当前列求和后所得的和值作为该当前列的变换值,令当前列的下一列为新的当前列;
计算下一行减去当前行的差值,将该差值与所述纵向位置坐标的小数部分相乘,并将乘积结果与当前行求和后所得的和值作为该当前行的变换值,令当前行的下一行为新的当前行;
步骤c:重复执行上述步骤b直至当前列为最后一列、当前行为最后一行;
步骤d:计算最后一列减去倒数第二列的差值的绝对值,并将该绝对值作为该最后一列的变换值;
计算最后一行减去倒数第二行的差值的绝对值,并将该绝对值作为该最后一行的变换值。
9.根据权利要求8所述的笔迹的书写装置,其特征在于:所述采样点为像素点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101991398A CN101383050B (zh) | 2008-10-14 | 2008-10-14 | 笔迹的书写方法及书写装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101991398A CN101383050B (zh) | 2008-10-14 | 2008-10-14 | 笔迹的书写方法及书写装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101383050A CN101383050A (zh) | 2009-03-11 |
CN101383050B true CN101383050B (zh) | 2010-06-09 |
Family
ID=40462873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101991398A Expired - Fee Related CN101383050B (zh) | 2008-10-14 | 2008-10-14 | 笔迹的书写方法及书写装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101383050B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521855A (zh) * | 2011-11-22 | 2012-06-27 | 广东威创视讯科技股份有限公司 | 基于触控平台的笔迹调整方法及装置 |
CN112649049B (zh) * | 2020-12-29 | 2022-07-22 | 青岛罗博数码科技有限公司 | 一种数码笔及握姿检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657396A (en) * | 1992-04-30 | 1997-08-12 | International Business Machines Corporation | Method and apparatus for pattern recognition and validation, especially for hand-written signatures |
CN101118650A (zh) * | 2007-09-14 | 2008-02-06 | 广东威创日新电子有限公司 | 一种笔锋即时实现方法 |
CN101216946A (zh) * | 2007-12-26 | 2008-07-09 | 广东威创视讯科技股份有限公司 | 图形的绘制方法和装置 |
-
2008
- 2008-10-14 CN CN2008101991398A patent/CN101383050B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657396A (en) * | 1992-04-30 | 1997-08-12 | International Business Machines Corporation | Method and apparatus for pattern recognition and validation, especially for hand-written signatures |
CN101118650A (zh) * | 2007-09-14 | 2008-02-06 | 广东威创日新电子有限公司 | 一种笔锋即时实现方法 |
CN101216946A (zh) * | 2007-12-26 | 2008-07-09 | 广东威创视讯科技股份有限公司 | 图形的绘制方法和装置 |
Non-Patent Citations (1)
Title |
---|
刘松,丁海燕,翟连春,姜磊,丁怀东.中国书画文物数字修复模拟笔型系统的研究.云南大学学报(自然科学版)29 S2.2007,29(S2),295-300. * |
Also Published As
Publication number | Publication date |
---|---|
CN101383050A (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102282572B (zh) | 表示图像块的方法和系统 | |
CN101216945A (zh) | 绘制图形的方法及装置 | |
CN101751200B (zh) | 移动终端的空间输入法及其实现装置 | |
CN103310474A (zh) | 一种手写原笔迹的实现方法及系统 | |
CN102800052B (zh) | 非标准地图的半自动数字化方法 | |
CN110796143A (zh) | 一种基于人机协同的场景文本识别方法 | |
CN103020939B (zh) | 利用多时相数据去除光学遥感影像大面积厚云的方法 | |
CN101763234B (zh) | 一种模拟各种屏幕分辨率的方法及其装置 | |
CN102938062B (zh) | 一种基于内容的文档图像倾斜角估计方法 | |
CN102564403B (zh) | 基于图像引导的交通事故现场快速测绘系统 | |
CN102254171A (zh) | 一种基于文本边界的中文文档图像畸变校正方法 | |
CN102999926B (zh) | 一种基于底层特征融合的图像视觉显著性计算方法 | |
CN102622225A (zh) | 一种支持用户自定义手势的多点触控应用程序开发方法 | |
CN102914276B (zh) | 三维光学测量中基于三灰阶空间脉冲宽度调制的正弦光栅构造方法 | |
CN103826032A (zh) | 深度图后期处理方法 | |
Chakravarty et al. | Construction of KP solitons from wave patterns | |
CN102326183A (zh) | 图像处理系统、图像处理方法和图像处理程序 | |
CN103247033A (zh) | 一种基于影像选取控制点的矢量数据纠正方法 | |
CN101383050B (zh) | 笔迹的书写方法及书写装置 | |
CN106155540A (zh) | 电子毛笔笔形处理方法和装置 | |
CN103093472B (zh) | 基于双字典交叉稀疏表示的光学遥感图像变化检测方法 | |
CN106127097B (zh) | 一种棱柱体表面的二维码的生成和采集方法 | |
CN103838429A (zh) | 触摸屏上毛笔效果的绘制方法及系统 | |
CN103854271A (zh) | 一种平面摄像机标定方法 | |
Lausman et al. | Uncertainty in the application of the parabolic bay shape equation: Part 1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 510670 Guangdong Province, Guangzhou high tech Industrial Development Zone Kezhu Road No. 233 Patentee after: Wei Chong group Limited by Share Ltd Address before: 510663 Guangzhou province high tech Industrial Development Zone, Guangdong, Cai road, No. 6, No. Patentee before: Guangdong Weichuangshixun Science and Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100609 Termination date: 20181014 |