手写文本行字符切分方法、识别方法技术

技术编号:6690076 阅读:475 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种手写文本行字符切分方法、识别方法,准确地进行文本行的切分。针对自然书写的中文文本行中的三种常见情况:自然分隔的字符、重叠字符、以及粘连字符分别进行处理。对于自然分隔的字符,利用直方图投影法对其进行切分;对于重叠字符,利用在重叠区域内设置隔离点的方法对其进行切分;对于粘连字符,首先检测出其中的粘连点,然后将字符在粘连点处分裂开,最后可以将其作为重叠字符进行切分。本发明专利技术方法在实现文本行快速切分的同时,能够保证较高的切分准确性。

【技术实现步骤摘要】

本专利技术属于图像处理及手写文字识别
,涉及一种字符切分方法,尤其涉及一种手写文本行字符切分方法;同时,本专利技术还涉及一种手写文本行字符的识别方法。
技术介绍
人机自然交流是未来人机交互的重要发展方向,而文字是人类与计算机之间自然交流的手段之一。根据人类自然语言的描述形式,通过一定的方法和技术手段(例如利用触摸屏、扫描仪或摄像头)获取用户的手写文字,再利用一定的技术方法对手写文字图像进行分析及处理,实现计算机对文字的自动识别,也即我们所说的文字识别。目前单字符文字识别技术已经比较成熟,但无约束的全屏书写文本行文字识别仍然是一个亟待解决的难题。所谓单字符识别是每次用户仅输入一个字符图像给电子设备进行识别处理;所谓文本行识别是指用户可以在书写介质上按照自然的书写习惯书写一行文字,我们称之为文本行,该文本行再提交到电子设备进行识别。显而易见,文本行输入比单字符输入具有更好的字符输入效率。无约束文本行一般是指自然书写的,由于未对书写者做任何书写上的限制,人们可以按照日常的书写风格进行自由地书写,而不需考虑字迹工整、无连笔、文本行中的文字在一条水平直线上等等要求。因此,自然书写的文本行识别,为人们向计算机输入文字提供了一种更加自然的方式。但另一方面,由于在自然书写的情况下,字符书写潦草,字符之间的情况复杂重叠、粘连、过分等常常发生,并且所写的文字可能还不在一条直线上。对于计算机而言,无疑加大了其自动识别的难度,其中最大的难点在于将文本行中的单个字符用一定的技术手段进行自动分割出来,从而方便利用单字符识别技术进行字符识别处理。文本行的识别是以单字符为基础进行的,即首先需要确定文本行中各个字符的界限,分别对这些字符进行识别,然后以此为基础识别出整个文本行。然而在自然书写的情况下,准确地切分出文本行中的各个字符是一项非常困难的工作。现有的字符切分算法,或者切分准确性不够高,或者切分时间长,不能满足实时运算的要求。在无约束自然书写脱机中文文本行中,字符之间的界限不明显,重叠、粘连等情况经常发生(见附图说明图1),给字符的准确切分带来了很大的困难。以往中文文本行的预切分方法主要有基于细化的方法、基于笔划提取的方法等等。其中,前者的切分准确性较高,但需要耗费大量的时间;后者实现较简单,但切分效果不够理想。而且在以上方法中,都无法对字符之间的界限不明显,重叠、粘连等情况进行较好的切分。
技术实现思路
本专利技术所要解决的技术问题是提供一种手写文本行字符切分方法,可准确地进行文本行的切分。此外,本专利技术还提供一种手写文本行字符的识别方法,可准确地进行文本行的识别。为解决上述技术问题,本专利技术采用如下技术方案一种手写文本行字符切分方法,所述方法包括如下步骤输入文本行;对于输入文本中的自然分隔的字符,利用直方图投影法对其进行切分;对于输入文本中的重叠字符, 利用在重叠区域内设置隔离点的方法对其进行切分;对于输入文本中的粘连字符,首先检测出其中的粘连点,然后将字符在粘连点处分裂开,而后将其作为重叠字符进行切分。一种手写文本行字符切分方法,所述方法包括如下步骤步骤100 输入文本行;步骤200 对自然分隔的字符进行切分;步骤300 对经过步骤200得到的结果,估计每个字符宽度,判断该字符宽度是否大于预设阈值T ;若是,则转向步骤400 ;否则转向步骤700 ;步骤400 进行重叠字符切分;步骤500 对经过步骤400得到的结果,估计每个字符宽度,判断该字符宽度是否大于预设阈值T ;若是,则转向步骤600 ;否则转向步骤700 ;步骤600 进行粘连字符的切分;步骤700 输出切分结果;步骤800:结束。作为本专利技术的一种优选方案,所述步骤200中,采用如下方法进行自然分隔的字符切分计算所给定的文本行直方图投影曲线中寻找零值区域,确定自然分隔字符之间的间隔;居于间隔的中部、并且与左右两个字符的距离相等一条垂直线,作为自然分隔字符的切分路径。作为本专利技术的一种优选方案,所述步骤300中,采用如下方法进行字符宽度的估计步骤310 按下述公式估计出字符的平均宽度MearuWid 权利要求1. 一种手写文本行字符切分方法,其特征在于,所述方法包括如下步骤 -步骤100 输入文本行; -步骤200 对自然分隔的字符进行切分;其中,采用如下方法进行自然分隔的字符切分计算所给定的文本行直方图投影曲线中寻找零值区域,确定自然分隔字符之间的间隔;居于间隔的中部、并且与左右两个字符的距离相等一条垂直线,作为自然分隔字符的切分路径;-步骤300 对经过步骤200得到的结果,估计每个字符宽度,判断该字符宽度是否大于预设阈值τ ;若是,则转向步骤400 ;否则转向步骤700 ; 其中,采用如下方法进行字符宽度的估计 步骤310 按下述公式估计出字符的平均宽度MearuWid 1^medMeanJVid =-* J^w1 * boo^w, >0.8 * Wmed & &Wi《1.6* Wmed);N med i=\其中,Wi (i = 1,2,…)为切分结果中任何一个字符的宽度;Wnred为切分结果中所有字符宽度的中间值median value,当字符宽度按升序排列时,排序位置居中的那个值就是中间值;bool(·)表示布尔运算,当括号内的条件满足时函数值为1,否则函数值为0;Nmral为满足下列条件的字符数目k Iwi彡0. S^ffmedMwi彡1. 6*Wmed};步骤320 按下述公式计算阈值T :T = 1. 2*Mean_Wid ;其中,变量Mean_Wid由步骤310 确定;-步骤400 进行重叠字符切分;采用如下方法进行重叠字符的切分 步骤410 对重叠字符进行连通域分析;建立新连通域与字符之间的归属关系;该归属关系由像素的交集得到由于重叠字符互不相交,重叠区域内的各新连通域能且仅能与一个字符相交;若某个新连通域与一个字符的交集不为空,则该连通域就属于这个字符;步骤420 遍历重叠区域的每一列从上至下考察该列,若依次出现的两个连通域属于不同的字符,则在该列设置一个隔离点,使其于这两个连通域之间,并且该点到上下两个连通域的距离相等;步骤430:为了保证能在重叠区域内正确地设置隔离点,将对重叠区域内的连通域按步骤440-470进行调整;步骤440 在重叠区域内,标记那些在所有列上都有像素的连通域,将它们和小连通域区分开来;步骤450 对于已标记的连通域,从上至下依次进行考察;如果依次出现的两个已标记连通域属于同一个字符,则在它们之间插入一个虚拟的连通域每一列上都设置一个或多个第一类型像素,代表字符像素;该像素位于这两个连通域之间,并且与下方的连通域间隔一个或多个第二类型像素,以保证该虚拟像素与小连通域尽量不相交;若无法避免相交,则需在小连通域中将相交位置及该位置上方的一个像素去除,使小连通域与这个虚拟像素间隔一个或多个第二类型像素;标记该虚拟连通域,并认为它属于另一个字符;步骤460 在重叠区域内,对于第一行的每一列分别添加一个虚拟的第一类型像素,形成一个虚拟连通域;标记该虚拟连通域,并认为它与原来最上方的已标记连通域分别属于不同的字符;类似的,对于最后一行的每一列也分别添加一个虚拟的第一类型像素,形成一个虚拟连通域;标记该虚拟连通本文档来自技高网
...

【技术保护点】
1.一种手写文本行字符切分方法,其特征在于,所述方法包括如下步骤:--步骤100:输入文本行;--步骤200:对自然分隔的字符进行切分;其中,采用如下方法进行自然分隔的字符切分:计算所给定的文本行直方图投影曲线中寻找零值区域,确定自然分隔字符之间的间隔;居于间隔的中部、并且与左右两个字符的距离相等一条垂直线,作为自然分隔字符的切分路径;--步骤300:对经过步骤200得到的结果,估计每个字符宽度,判断该字符宽度是否大于预设阈值T;若是,则转向步骤400;否则转向步骤700;其中,采用如下方法进行字符宽度的估计:步骤310:按下述公式估计出字符的平均宽度Mean_Wid:其中,wi(i=1,2,…)为切分结果中任何一个字符的宽度;Wmed为切分结果中所有字符宽度的中间值median value,当字符宽度按升序排列时,排序位置居中的那个值就是中间值;bool(·)表示布尔运算,当括号内的条件满足时函数值为1,否则函数值为0;Nmed为满足下列条件的字符数目:{wi|wi≥0.8*Wmed&&wi≤1.6*Wmed};步骤320:按下述公式计算阈值T:T=1.2*Mean_Wid;其中,变量Mean_Wid由步骤310确定;--步骤400:进行重叠字符切分;采用如下方法进行重叠字符的切分:步骤410:对重叠字符进行连通域分析;建立新连通域与字符之间的归属关系;该归属关系由像素的交集得到:由于重叠字符互不相交,重叠区域内的各新连通域能且仅能与一个字符相交;若某个新连通域与一个字符的交集不为空,则该连通域就属于这个字符;步骤420:遍历重叠区域的每一列:从上至下考察该列,若依次出现的两个连通域属于不同的字符,则在该列设置一个隔离点,使其于这两个连通域之间,并且该点到上下两个连通域的距离相等;步骤430:为了保证能在重叠区域内正确地设置隔离点,将对重叠区域内的连通域按步骤440-470进行调整;步骤440:在重叠区域内,标记那些在所有列上都有像素的连通域,将它们和小连通域区分开来;步骤450:对于已标记的连通域,从上至下依次进行考察;如果依次出现的两个已标记连通域属于同一个字符,则在它们之间插入一个虚拟的连通域:每一列上都设置一个或多个第一类型像素,代表字符像素;该像素位于这两个连通域之间,并且与下方的连通域间隔一个或多个第二类型像素,以保证该虚拟像素与小连通域尽量不相交;若无法避免相交,则需在小连通域中将相交位置及该位置上方的一个像素去除,使小连通域与这个虚拟像素间隔一个或多个第二类型像素;标记该虚拟连通域,并认为它属于另一个字符;步骤460:在重叠区域内,对于第一行的每一列分别添加一个虚拟的第一类型像素,形成一个虚拟连通域;标记该虚拟连通域,并认为它与原来最上方的已标记连通域分别属于不同的字符;类似的,对于最后一行的每一列也分别添加一个虚拟的第一类型像素,形成一个虚拟连通域;标记该虚拟连通域,并认为它与原来最下方的已标记连通域分别属于不同的字符;步骤470:考察依次出现的两个已标记连通域,若它们之间有小连通域,且这些小连通域分别属于不同的字符,则应当保证这些小连通域垂直投影无交集,即:若它们有像素分布于相同的列,则在该列上将这些小连通域的像素消除;步骤480:将经过上述步骤处理后得到的每一列的隔离点依次连接起来,就构成了重叠区域内的那部分切分路径;步骤490:将重叠区域的垂直边界作为剩余部分的切分路径,并将所有部分的切分路径相连,就构成了一条完整的曲线切分路径;--步骤500:对经过步骤400得到的结果,估计每个字符宽度,判断该字符宽度是否大于预设阈值T;若是,则转向步骤600;否则转向步骤700;--步骤600:进行粘连字符的切分;所述步骤600之中,采用如下方法进行粘连字符切分:步骤610:在粘连字符中,根据其直方图投影对各字符的边界位置进行估计;步骤620:对于粘连字符公共边界的粗略位置,分别从其左右两侧找出一个直方图峰值点,该点的值大于直方图的平均峰值,并且最靠近粘连字符的公共边界;认为该峰值点对应于字符的中心位置附近;在上述两个峰值点之间,找出一个直方图谷值点,该点的值小于直方图的平均谷值,并且最靠近字符的公共边界;认为该谷值点对应于粘连字符公共边界的确切位置;步骤630:对粘连字符进行字符细化处理;在细化图像上,找出上述谷值点位置处的笔划,它们可能包含了粘连点;将这些笔划上的叉点和角点都记录为粘连点;步骤640:将粘连字符在粘连点处分裂,将它们变为重叠字符;其中,粘连字符的分裂按照如下方法进行:在以粘连点为中心的m*m像素区域内,图像像素均被置为第二类型像素,表示背景像素;其中,m为设定数值;步骤650:按照对重叠字符的方法对字符进行切分;步骤660:根据步骤650产生的切分路径叠加在原粘连字符的图像上,对图像进行切分;...

【技术特征摘要】

【专利技术属性】
技术研发人员:镇立新
申请(专利权)人:上海合合信息科技发展有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1