本发明涉及一种汉字字体矢量表示的方法,特别涉及一种汉字图像转换为汉字字体矢量化表示的方法。
背景技术:
在数字媒体发展的新时代中,字库的发展尤为迅速,近年来专门从事字体设计与制作的厂商、公司层出不穷,如方正字库,造字工房,汉仪字库等。随着中国字体行业逐渐的兴起,现存的字库已经无法满足媒体、网络、手机等数字化媒介中。汉仪字库作为字体行业知名字体创作公司,其字体设计风格独特品质优良,打造了很多品牌字库的产品,满足了市场上出版印刷的需求。
汉字作为图像化表达的一种方式,其本身的结构是通过子层与系统的关系并利用多种字体部件以及笔画为单元通过嵌套与合并等方式逐层结合起来的,通过点,线,面和块组成的笔画部件,其作为汉字的基本元素,本身的特点对汉字的描述取决定性的因素,而且无论笔画分布如何都要使整个汉字面积在字框中显示的工整匀称,并通过逐层的设计和笔画组合切分,最终完成一种新字体的设计。
在汉字字体设计时,首先要分析设计需求,找到潜藏的情感诉求,如粗狂、柔美、空灵、时尚等找到相应的图形特征,做基础笔画。至少准备横、竖、勾、横折、点等基本笔画,体现字的特征,然后在稿纸上设计字体基本框架,设计字体的整体风格,然后将设计好整体风格的字体定型为草稿,再将设计好的草稿进行填色处理,最后将填色处理后的字体进行拍照,传入计算机设备,在计算机上对字体图像进行矢量化处理。矢量字体的优势在于可以替代点阵字出现放大模糊以及边缘锯齿等问题,但随着使用范围的扩大问题逐渐暴露出来,由于汉字字体中笔画所包括的信息量较大,矢量字体的设计并没有点阵字描述的简洁,尤其是复杂笔画放大后轮廓锯齿现象依旧出现。随着信息技术的发展利用,通过贝塞尔曲线来绘制矢量字体,能够使得相邻结点构成一条光滑的曲线,同时矢量字体所包含的数据量也能够大大减少,而通过后续对贝赛尔曲线方法的优化更好的解决了模糊以及马赛克锯齿等问题。
针对现在汉字字体矢量化,一般是采用手动方式进行描边处理,这种方式需要耗费大量的人力物力,因此有必要设计一种新的汉字字体矢量表示的方法。
技术实现要素:
本发明的主要目的在于提出一种汉字字体矢量表示的方法,解决现有字体图像矢量化效果差,自动化程度低的问题。
为实现上述目的,本申请的技术方案为:一种汉字字体图像矢量表示方法,包括如下步骤:
步骤1,输入汉字图像;
步骤2,对输入的汉字图像去噪处理;
步骤3,对去噪后的图像进行二值化;
步骤4,将二值化后的图像分解为路径;
步骤5,将分解后的路径矢量化表示。
进一步的,对输入的汉字图像:在汉字字体设计时,首先需要设计字体基本框架,设计字体的整体风格,然后将设计好整体风格的字体定型为草稿,再将设计好的草稿进行填色处理,最后将填色处理后的字体进行拍照,传入计算机设备。
进一步的,汉字图像去噪处理:当用照像机拍摄一副黑纸白字的纸张时,照相机获得的图像并不是真正的黑白图像。不管从什么角度拍摄,这幅图像实际上是灰度或者彩色的。除非仔细的设置灯光,否则照相机所拍摄的放在桌子上的纸张图像并不能代表原始效果。不像在扫描仪或打印机内部,想控制好桌子表面的光源是非常困难的。这个开放的空间可能会受到台灯、吊灯、窗户、移动的影子等影响。人类的视觉系统能自动补偿这些,但是机器没有考虑到这些因素因此拍出的效果会很差。这个问题在处理那种高对比度的艺术线条或文字时尤为突出,因为这些东西都是真正的黑色或白色。而摄像头会产生一副具有不同等级的灰度图像。在对填色处理后的图像进行拍照时,受到环境、光线等因素的影响,图像在生成和传输过程中常常因受到各种噪声的干扰和影响降低图像的质量。图像噪声使得图像模糊,甚至淹没图像特征,给分析带来困难。因此,为了抑制噪声,改善图像质量,便于更高层次的处理,必须对图像进行去噪预处理。在图像去噪处理时采用模板卷积,模板可以是一小幅图像,将图像去噪处理包括以下步骤:
步骤1:模板在输入图像上移动,让模板中心依次与输入图像的每个像素重合;
步骤2:模板系数与跟模板重合的输入图像的对应像素相乘,再将乘积相加;
步骤3:把结果赋予输出图像,其像素位置与模板中心在输入图像上的位置一致。
进一步的,对汉字图像进行二值化:在将图像转为路径时必须清楚的知道图像的那一部分是纯黑或纯白,以便将文字图像转为路径。由于无法使用灰度图像,因此必须将他们转换为黑白图像。在某些情况下,如果这些图像最终是给人看的,这些图像会使用一些抖动技术,以便使其看起来更像灰度图像。但是对于机器处理的过程,比如文字识别,选择复制操作,或多个图像合成,系统就不可以使用抖动的图像。系统仅仅需要简单的线条、文字或相对大块的黑色和白色。从灰度图像获得这种黑白图像的过程通常称作为二值化。对于图像二值化采用全局阈值法,将图像中低于某个阈值的像素设置为黑色,而其他的设置为白色。选择所有可能取值的中间值,因此对于8位深的图像(范围从0到255),128将会被选中,其步骤如下:
步骤1:计算图像直方图;
步骤2:按照一定的半径对直方图数据进行平滑处理,并计算平滑处理后数据的最大值;平滑的目的减少噪音对最大值的影响。
步骤3:根据上述峰值和最小值的距离按照一定的比例选取阈值;
步骤4;将像素值大于选取阈值的定为1,将像素值小于选取阈值的定为0,从而完成图像的二值化。
进一步的,将二值化后的图像分解为路径:二值图可以被以矢量的形式进行呈现。二值图是将图像当做一个个不是黑就是白的像素格子。矢量图则将一张图像通过代数描述其轮廓来呈现,比如贝塞尔曲线。将一张图像以矢量方式进行呈现的好处是他可以被缩放至任意大小而没有品质上的降低。图像轮廓对于任何特殊的输出设备都是独立的。所述将图像分解为路径包括以下步骤:
步骤1:二值图构成了黑白区域之间的边界,将二值图分解为路径;
步骤2:每条路径都被近似为一个最优多边形;
步骤3:每个多边形都转化为光滑的轮廓;
步骤4:结果曲线通过链接连续的贝塞尔曲线片段来进行优化。
进一步的,将分解后的路径矢量化表示:二值化的图像将被分解为路径,分解后的路径只包含该路径中每个点的坐标信息。其中包含过多的冗余信息,需要转换为特定的格式,将路径中的直线、贝塞尔曲线转换为指定的表示形式,进而完成汉字字体的矢量表示。
进一步的,在拍照处理时,需要调整拍照时镜头与字体的距离及光线需要尽量保持一致。
本发明由于采用以上技术方案,能够取得如下的技术效果:本申请的汉字字体图像矢量表示方法,其突出效果是设计合理,易于实施。该方法首先对图像进行去噪处理,消除图像在拍摄传输时所产生的噪声,对处理后的图像进行二值化处理,二值化处理后的图像可以消除图像中的大部分无用信息,保留主要信息。将二值化处理后的图像分解为路径,最后将路径进行矢量化表示。该方法通过提取字体的轮廓笔画轨迹信息,并定义其矢量化数字信息格式,为中国传统书法提供了一种新的数字化保护方式,同时相比于图像方式,矢量化有助于书法再现。本发明充分结合现代信息技术的优势,可运用机器手段对字体进行还原再现,使得汉字文化在现代社会文化的冲击中迸发出新的生命力,有利于传统文化的继承和发扬,有利于提升国家文化软实力。
附图说明
图1是一种汉字字体图像矢量表示方法的流程图;
图2是汉字图像去噪处理的流程图;
图3是卷积模板与图像对应像素计算示意图;
图4是图像二值化流程图;
图5是二值图像路径分解流程图;
图6是路径分解示意图;
图7是贝塞尔曲线示意图;
图8是曲线转角检测示意图;
图9是曲线优化示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施中的技术方案进行清楚、完整的描述,可以理解的是,所描述的实例仅仅是本发明的一部分实例,而不是全部的实施例。基于本发明的实施例,本领域的技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
参照图1,图1是一种汉字字体矢量表示方法的流程图
在汉字字体设计时,首先需要将设计好整体风格的字体定型为草稿,再将设计好的草稿进行填色处理,最后将填色处理后的字体进行拍照,传入计算机设备。在对填色处理后的图像进行拍照时,受到环境、光线等因素的影响,图像在生成和传输过程中常常因受到各种噪声的干扰和影响降低图像的质量,为了抑制噪声,改善图像质量,便于更高层次的处理,必须对图像进行去噪预处理。在将图像转为路径时必须清楚的知道图像的那一部分是纯黑或纯白,以便将文字字图像转为路径。由于无法使用灰度图像,因此必须将他们转换为黑白图像。二值化的图像将被分解为路径,分解后的路径只包含该路径中每个点的坐标信息。其中包含过多的冗余信息,需要转换为特定的格式,将路径中的直线、贝塞尔曲线转换为指定的表示形式,进而完成汉字字体的矢量表示。
参照图2,图2是汉字图像去噪处理的流程图
在对填色处理后的图像进行拍照时,受到环境、光线等因素的影响,图像在生成和传输过程中常常因受到各种噪声的干扰和影响降低图像的质量。图像噪声使得图像模糊,甚至淹没图像特征,给分析带来困难。因此,为了抑制噪声,改善图像质量,便于更高层次的处理,必须对图像进行去噪预处理。具体实现步骤如下:
s101,开始进行图像处理流程;
s102,输入在填色处理后的图像;
s103,生成卷积模板,模板卷积可以实现图像平滑、图像锐化、边缘检测等功能。模板可以是一小幅图像,也可以是一个滤波器;
s104,将生成的卷积模板放置图像的起始位置,即图像的(0,0)位置;
s105,将模板与图像对应像素进行计算,计算方式如图3所示,假设图像前3*3个像素值为(a,b,c,d,e,f,g,h,i),卷积模板的像素值为(a,b,c,d,e,f,g,h,i),设输出值为k,则计算方式为k=a*a+b*b+c*c+d*d+e*e+f*f+g*g+h*h+i*i;
s106,将计算结果k,输出至新的图像;
s107,使卷积模板在图像上向右移动一个像素;
s108,判断图像是否到达最右边界,如果卷积模板没有到达最右边界,则重复进行s105步骤,如果卷积模板到达最右边界则进行步骤s109;
s109,判断是否到达图像的最后一行,如果到达图像的最后一行,则结束;如果图像未到达最后一行,则进行步骤s110;
s110,将卷积模板移动至图像最左侧,并向下移动一行,继续进行s105步骤。
参照图4,图像二值化处理的流程图,二值图可以被以矢量的形式进行呈现。二值图是将图像当做一个个不是黑就是白的像素格子。矢量图则将一张图像通过代数描述其轮廓来呈现,对于图像二值化采用全局阈值法,将图像中低于某个阈值的像素设置为黑色,而其他的设置为白色。选择所有可能取值的中间值,因此对于8位深的图像(范围从0到255),128将会被选中,其步骤如下:
s201,开始进行图像二值化处理;
s202,输入去噪处理后的图像;
s203,计算输入图像的直方图;
s204,按照一定的半径对直方图数据进行平滑,并计算平滑后数据的最大值。平滑的目的减少噪音对最大值的影响;
s205,根据上述峰值和最小值的距离按照一定的比例选取阈值;
s206,判断像素值是否大于选取阈值;
s207,如果当前像素值小于选取的阈值定为0;
s208,如果当前将像素值打于选取阈值的像素定为1;
s209,而完成图像的二值化。
参展图5,二值图可以被以矢量的形式进行呈现。二值图是将图像当做一个个不是黑就是白的像素格子。矢量图则将一张图像通过代数描述其轮廓来呈现,比如贝塞尔曲线。将一张图像以矢量方式进行呈现的好处是他可以被缩放至任意大小而没有品质上的降低。图像轮廓对于任何特殊的输出设备都是独立的。将图像分解为路径的具体步骤如下所示:
s301,开始进行图像转为路径处理;
s302,输入二值化后的图像;
s303,进行路径分解,假定位图放置于一个坐标系每个像素的转角都有整型坐标。假定背景为白色,前景为黑色。超出位图边界的区域被假定为白色填充。现在构造一个有向图如图6所示。如果4个像素都不是同一种颜色这个点被称作顶点。如果v和w是顶点,如果v和w的欧几里得距离为1说这里有一条从v到w的边,并且如果这条直线片段将v和w分为一个黑像素和一个白像素,当从v移向w使黑像素在它的左边白像素在它的右边。让将这个结果有向图称。一个路径是一系列顶点{v0,…,vn},对所有i=0,…,n-1都有一条边从vi到vi+1,这些边都非常清晰。一条路径被称为封闭如果vn=v0。路径的长度为边的个数即路径分解的目标是将图g分解为封闭路径。即找到一个封闭路径的集合使g的每条边都只出现一次。每次找到一个封闭图,通过反转它所有像素的颜色来从图中移除。这定义了一个新的位图,在这张图继续递归应用这个算法直到没有黑色像素余留。从一对有不同颜色的相邻像素开始。可以这样完成,比如通过选择某一行最左边的黑像素。两个被选择的像素在一条边上相遇,改变这条边的朝向来使黑色像素在边的左边白色像素在右边。边被定义为长度为1的路径。继续扩张这条路径使新的边都有一个黑色像素在它的左边一个白色像素在右边,相对于路径的方向。换句话,在像素间沿着边移动,每次遇到一个转角的时候,要直走或转左转右,根据像素周围的颜色来决定如图3所示。继续下去直到返回到开始的那个点,即那个定义了一个封闭图的点。
s304,去除图像中的孤立点,去孤立点可以通过去除所有路径内部像素少于t个像素的路径。t为设置的一个阈值。
s305,现在考虑一个封闭路径p={v0,…,vn},假设vn=v0,所以路径的长度为n;任一对索引i,j∈{0,…,n-1}定义了一个子路径pi,j,其中路径为vi,…,vj,如果i≤j则为vi,…,vn-1,如果j
现在想从封闭路径p中构建一个多变形。说这里存在一个可能的从i到j的片段如果
并且子路径pi-1,j+1是如前面的定义那样是直的。换句话说,一个子路径对应于一个可能的片段如果它可以在两边的方向上都扩张1像素并且保持直的。
s306,这样,找到一个最优多边形被降为在一个有向图中找到一个最优环形。使用一个标准的图论算法的变量来寻找有向图中的最优环形来高效解决这个问题。一旦图被计算了,一个最优环形可以在时间o(nm)内找到,其中n是输入路径的大小,m是最长的可能的片段长度。注意到是这个优化让的算法非局部,因为一次必须考虑整个路径;优化多边形的每部分可能取决于其他部分。在前面计算一个位图路径的阶段,和接下来把多边形转为矢量轮廓的阶段,都是局部的,即他们每次只查看很少的相邻的点。
s307,算法前一阶段的输出时一个多边形{i0,…,im-1}关联一个封闭路径{v0,…,vm}。指的是索引i0,…,im-1,以及他们关联的作为多边形顶点的点vi0,…,vim-1。因为的多边形为环形,所以按照惯例把索引取模。为了计算惩罚,将多边形的顶点i精确地放置于对应路径的点vi,即在坐标系有整型坐标的点。即坐落于源位图4个像素的交叉点。这样放置顶点允许高效地计算惩罚,这在优化范围内并不是必要的。现在关联每个顶点ik一个点ak在坐标系,不需要一定是整型,这样ak离vik很近,而且对于多边形任意两个连续顶点ik,和ik+1,,结果线片段akak+1是合理接近于源子路径vik,…,vik+1。
使用下述算法来放置点ak:对每个连续的顶点ik和ik+1,计算最佳近似点vik,…,vik+1的直线lk,lk+1,就这而言它最小化了它们离直线的欧几里得距离。如果lk-1,lk,和lk+1是连续的顶点,那么最想把ak放置在lk-1,lk,和lk+1的交叉处。然而,并不想让ak太过远离原顶点vik。因此,让ak成为单位平方形里的最大距离
的点,这样从ak到lk-1,lk,和lk+1的欧几里得距离的平方和为最小。尤其如果lk-1,lk,和lk+1的交点在这个单位平方形里;否则,将它放置在离vik很近的点即离交叉点”很近”。
s308,算法的最后阶段的输入是s306调整后的多边形。假定这个多边形的顶点为a0,…,ak-1。令b0,…,bk-1为多边形边的中点,即b0=(ai+ai+1)/2。对于每个i,现在考虑转角bi-1,ai,bi,且通过一个光滑曲线来决定是否近似它,如图8所示。首先,在点ai上画一个单位方形。然后,找到平行于bi-1bi的线li,并在ai的周围接触到方形,且它尽可能地接近直线bi-1bi。令c为l和bi-1bi的交点,并令g为bi-1c的长度和bi-1ai的商。并用贝塞尔曲线链接bi-1和bi用。这条曲线切线于bi-1ai,li,aibi这3条线。
s309,需要找到一条单个贝塞尔曲线来近似给定的一组更短的贝塞尔曲线。假定这里有这样的一条曲线c。明显,c将切线于b0a1和anbn。可以找到b0a1和anbn的交点o。如图9所示。
s310,由s309运算后已产生了一组曲线,每个都由贝塞尔曲线和直线片段构成。这些片段的结束点和控制点是坐标平面内的任意点。依据所需要的参数,执行一个线性的变化,缩放图像至需要的尺寸,并可以旋转.
s311,在矢量化描述时,通常需要6个参数去描述每个贝塞尔曲线片段,其中包括1个结束点2个控制点。然而,通过消除多余的参数,可以将每个片段仅编码为3至4个真正的数字。
s312,图像转为路径处理完成。
本发明的最后一步是将分解后的路径矢量化表示,在矢量化表示时采用svg路径表示。svg路径只需要设定很少的点,就可以创建平滑流畅的线条,svg路径元素的形状是通过d属性定义的,d属性的值是一个“命令+参数”的序列。svg路径元素有5个画直线的命令,如名字所示,直线命令就是在两个点之间画直线。首先是命令,m,它有两个参数,分别是需要移动到的点的x轴和y轴的坐标。当解析器读到这个命令时,它就知道你是打算移动到某个点。跟在命令字母后面的,是你需要移动到的那个点的x和y轴坐标。比如移动到(10,10)这个点的命令,应该写成“m1010”。这一段字符结束后,解析器就会去读下一段命令。绘制平滑曲线的命令来绘制贝塞尔曲线,用c命令创建三次贝塞尔曲线,需要设置三组坐标参数:cx1y1,x2y2,xy这里的最后一个坐标(x,y)表示的是曲线的终点,另外两个坐标是控制点,(x1,y1)是起点的控制点,(x2,y2)是终点的控制点。通过上述方式将路径转为svg表示,通过这种表示方式可以将字体图像转为svg路径,通过svg路径可将直接将字体图像转为svg,通过软件可将svg文件导入字库。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所做的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
导航: X技术> 最新专利>计算;推算;计数设备的制造及其应用技术>一种汉字字体图像矢量表示方法与流程
技术特征:
技术总结
本发明公开了一种汉字字体图像矢量表示方法,首先对图像进行去噪处理,消除图像在拍摄传输时所产生的噪声,对处理后的图像进行二值化处理,二值化处理后的图像可以消除图像中的大部分无用信息,保留主要信息。将二值化处理后的图像分解为路径,最后将路径进行矢量化表示。该方法通过提取字体的轮廓笔画轨迹信息,并定义其矢量化数字信息格式,为中国传统书法提供了一种新的数字化保护方式,同时相比于图像方式,矢量化有助于书法再现。
技术研发人员:王存睿;刘宇;张煜
受保护的技术使用者:大连民族大学
技术研发日:2019.06.13
技术公布日:2019.09.13
完整全部详细技术资料下载