开 始 初 始 化 计算字符图像 的高度和宽度 根据规定的标准高宽计算缩放因子 计算新图像的像素点 映射到原图像的坐标 利用临近插值法计算新图像像素点的灰度值 结 束 图3-5-1 归一化算法的流程图
图3-5-2 经过归一化处理后的图片
3.6 字符紧缩
经过标准归一化处理后的各个字符在图像中的位置不定,要它进行特征提取时处理起来比较麻烦,所以要把归一化后的字符进行紧缩重排,以形成新的位图句柄,方便下一步的特征提取操作。
将归一化以后的各个矩形排列在同一高度上,并且各字符矩形之间有一定相同的间隔。 由于系统程序支持多行的字符分割,因此在排序是对每一行的字符都要有相同的高度,而且由于程序的局限性,要求每行字符个数相同。
开 始 初 始 化 确定上下左右的位置 将图像移到相应位置 行变量自加 判断是否到最后一行 Y 返 回 N 图 3-6-1 图像紧缩排序算法的流程图
图3-6-2 经过字符紧缩处理后的图片
3.7 图像细化处理
在自动文字识别系统中,采用细化方法计算图像的骨架是一个十分重要的预处理步骤。因为骨架包含了文字图像特征的最有效数字化信息,能对文字图像进行有效地描述。因此对于细化,一方面要求去除多余的象素,一方面又要保留模式的基本结构和特征。
在此我们使用Hilditch算法,主要由于此算法的实现效果比较好。在进行Hilditch算法之前,我们要对像素进行处理使黑色像素为1(实际算法中为0.9),白色像素为0(实际算法中为0.1)。
开 始 初 始 化 是否有可细化 的像素点 Y 判断当前像素点是否为数字的点 Y 将此像素相邻的八 个像素值存入缓存 计算此点周围存在几个数字的点或已细化的数字点 判断周围的像素是否存在背景点 Y 判断周围像素是否存在两个数字的点 Y N 判断n3 ,n5 像素是 否为已细化的像素 Y 判断n3 ,n5 像素是 否存在数字的点 Y 细化此中心像素点 图像是否循环完 Y 删除需要细化的点 N N N N N 返 回 N 图3-7-1 Hilditch细化算法的流程图
图3-7-2 细化处理后的图片
四. 字符特征提取
4.1 特征提取方案分析
对于二值图像,字符可以用点阵、骨架和边缘来表示。字符的多种特征可以从字符的这三种表示形式中提取。对于点阵形式表示的字符。我们可以把整个字符点阵结构作为特征利用模板匹配或者神经网络分类器进行分类。这些方法对于相对歪曲较小的字符是非常有效的。如果待识别的字符图像发生几何畸变,比如缩放、偏斜或者旋转。对于骨架形式表示的字符,使用细化字符并利用可变形的模板匹配算法进行字符识别可以取得较好的效果。 4.2 十三特征提取方案分析及实现
十三特征提取方法,即从每个字符中提取十三个特征点。
首先把字符平均分成八份统计每一份内黑色象素点的个数作为八个特征,如图4-2-1所示。(这里我们以字符“3”举例。)分别统计这八个区域中的黑象素的数目,可以得到八个特征。
图4-2-1 十三特征提取
然后统计水平方向中间两列和竖直方向中间两列的黑色象素点的个数作为四个特征,也就是说,画四道线,统计线穿过的黑象素的数目。可以得到四个特征示意图如图4-2-2所示。
图4-2-2 十三特征提取
最后,将字符图像的全部黑色象素的数目的总和作为一个特征。总共得到十三个特征。
图4-2-3 特征提取的流程图
图4-2-4 提取算法的流程图