(4)行字切分
汉字切分的目的是利用字与字之间、行与行之间的空隙,将单个汉字从整个图像中分离出来。汉字的切分分为行切分和字切分。
行切分是利用行与行之间的直线型空隙来分辨行,将各行的行上界和行下界记录下来[6]。典型的算法是,从上到下,对二值汉字点阵的每行像素值进行累加,若从某行开始的若干累加和均大于一个试验常数,则可认为该行是一汉字文本行的开始,即行上界。同理,当出现连续大约一个汉字高度的大累加和情况后突然出现一系列小累加和甚至零值时,判定为行下界。
字切分是利用字与字之间的直线型空隙来分辨字,将各字的左边界和右边界记录下来。典型的算法是,在确定这一行的行上界和行下界之后,从左到右搜索一行文字的左右边界,切分出单字或标点符号。从左边开始垂直方向的行距内像素单列累加和均大于一个试验常数,则可认为是该汉字的左边界。同理,当出现连续一个汉字宽度的大累加和情况后突然出现一系列小累加和甚至零值时,判定为该汉字的右边界。对文本汉字行来说,由于存在左右分离字,宽窄字,字间交连等,加上行间混有英文、数字、符号、和字间污点干扰,使得字切分比行切分困难得多。
(5)归一化
归一化也称规格化,它是把文字尺寸变换成统一大小,纠正文字位置(平移),文字笔画粗细变换等文字图像的规格化处理,并只对文字图像进行投影。汉字图像的归一化往往会带来两个问题:一是字符图像的缩放可能会引入一些干扰;二是图像缩放本身的运算量较大。所以,必须采用恰当的归一化方法来尽可能的消除尺度变化对特征值提取的影响。
(6)平滑
对数字图像进行平滑,目的是去处孤立的噪声干扰,以平滑笔画边缘。平滑在图像处理中实质是一幅文字图像通过一个低通滤波器,去除高频分量,保留低频分量,在实际应用中,采用WXW(一般采用3x3)的辅助矩阵对二值文字图像进行扫描。根据辅助矩阵中各像素0、1的分布,使处于矩阵中心的被平滑的像素X从“0”变成“1”或者从“1”变成“O”。常用的平滑滤波方法有中值滤波和均值滤波[7]。
(7)细化
细化处理是在图像处理中相当重要和关键的一环,它是将二值化文字点阵逐层剥去轮廓边缘上的点,变成笔画宽度只有一个比特的文字骨架图形。细化处理的目的是搜索图像的骨架,去除图像上多余的像素,从而在不改变图像主要特征的前提下,减少图像的信息量。细化处理结果的好坏,直接影响到识别的效果和质量。在细化处理过程中,一方面,去除的像素太少,则不能充分有效地减少图像的信息量;另一方面,去除的像素太多,特别是某些关键像素若被去除,则改变了原始图像的主要特征。因此,高质量的细化算法程序对图像识别有很大的实用价值。
针对文字图像的细化算法已有很多,它的优劣对系统的识别效果影响很大。对细化的一般要求是保持原有笔画的连续性,不能由于细化造成笔画断开;细化成为单层像素线;保持文字原有特征,既不要增加,也不要丢失,保持笔画特征,最好细化掉笔锋:细化结果是原曲线的中心线,保留曲线的端点,交叉部分中心线不畸变。针对各种不同的应用,国内外已发表了许多细化算法,如Hilditch经典细化算法、Deutsch算法等。然而,细化过程本身固有的弱点总是造成笔画骨架线的畸变,增加对识别的干扰,主要的畸变包括:交叉笔画畸变、转折处出现分叉笔画、失去短笔画和笔画合并等。可以说,这些问题依赖细化算法本身是无法克服的,需要在后续的处理中尽量消除这些畸变的干扰。 Matlab印刷体汉字识别技术的研究(5):http://www.youerw.com/zidonghua/lunwen_7959.html