印刷体数字识别的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
具体步骤是: (1)将模板在图像中漫游,并将模板中心与 图像中某个像素的位置重合。 (2)读取模板下各对应像素的灰度值。 (3)将这些灰度值从小到大排成一列。 (4)找出这些值里排在中间的一个。 (5)将这个中间值赋给对应模板中心位置的 像素。
中值滤波器的主要功能就是让与周围像素灰度值 的差比较大的像素改取与周围的像素值接近的值, 从而可以消除孤立的噪声点。它在衰减噪声的同 时不会使图像的边界模糊。 中值滤波器去噪声的效果依赖于两个要素:邻域 的空间范围,中值计算中所涉及的像素数。一般 来说,小于中值滤波器面积一半的亮或暗的物体 基本上会被滤掉,而较大的物体则几乎会原样地 保存下来,因此中值滤波器的空间尺寸必须根据 具体的问题来进行调整。N*N模板n一般是奇数。
直接提取上述两种特征,对于少量数字图 片的识别结果不大理想,因为这些图片中 个别位置有“突起”,而“突起”对于这 两种特征有较大影响,从而会直接影响到 识别结果。
对于突起可以对数字进行最小值滤波,所 谓最小值滤波就是用像素领域内的最小值 代替该像素。
根据每个数字的特征,构造编码器(数字1 由于高度与宽度的比值较其它数字的比值 大,故可以单独识别)
数字与其它要素的自动分离技术又是实现数字 的自动识别的重要前提和基础 噪声恶化了图像质量,使图像模糊,甚至 淹没特征,给分析带来困难,消除图像噪 声的工作称之为图像平滑或滤波。 中值滤波器是最常用的非线性平滑滤波器。 它是一种邻域运算,类似于卷积,但计算 的不是加权求和,而是把邻域中的像素按 灰度级进行排序,然后选择该组的中间值 作为输出像素值。
这时可返回一个与输入图像相同大小的数据矩阵 L,L是double型的,而num中存储着对象个数 的数据。有了这个输出数据矩阵,可以利用它包 含的不同整数值来区分输入图像中的不同对象, 每个分离的对象对应一个整数值,而经过了模板 识别的数字图片中,数字必然是主体,干扰项只 有少许,由于可以统计出各个整数值的数量,数 量最多的整数值对应的对象必定是数字本身,将 为此整数值的位置全改为0,然后把其它整数值 都改为1,把这样得到的二值图像存下来,便是 消除了干扰项的数字图片。
模板匹配中标示出来的数字,经过裁剪, 变成一幅幅小数字图片。这些图片中除了 有数字以外,还有少量的干扰项(如黑点 等),这时需要将这些与待识别数字无关 的干扰项去掉,由于大部分干扰项与待识 别数字是分离的,因此可以先对二值图像 中各个分离的对象进行标识,而特定的边 沿约定类型可取的值有4和8,分别对应着 4-连接边沿约定和8-连接边沿约定,这里 取默认值8即可。
印刷体数字识别的应用
印刷体数字识别是字符识别的一个 分支,有多种方法,如模板匹配法、 特征值提取法等。模板匹配法简单, 但计算量很大,且费时;特征值提 取法是基于特征的识别,关键是选 取稳定且有效的特征,其计算量相 对较小,识别速度快。
数字的类别只有十种,笔划又简单,其识 别问题似乎不是很困难。但事实上,一些 测试结果表明,数字的正确识别率并不如 印刷体汉字识别正确率高,甚至也不如联 机手写体汉字识别率高,而只仅仅优于脱 机手写体汉字识别。这其中主要原因是: 某些数字字形相差不大(譬如:手写体5 和3),使得准确区分某些数字相当困难
一般来说,用于数字识别的分类特征应满足 以下要求: (1)具有较强的分类能力,即该特征对不同的数 字应表现出较大的差异,而对相同的数字则应表 现出尽可能小的差异。 (2)具有较高的稳定性和抗干扰性,对数字的平 移、旋转和尺度变换不敏感,受数字笔划断裂或 粘连的影响尽可能小。 (3)特征向量应便于提取,算法要尽量简便,在 保证识别系统的性能的条件下,特征向量的维数 不能过高,以减少机器开销,提高运算速度。
下面简述一下数字识别过程:读取图像文件,得到图像文 件的高度x和宽度y,定义并初始化数组num和sum,它们 分别用来保存水平扫描线穿越黑像素区域互不相邻的交点 数和垂直扫描线穿越黑像素区域互不相邻的交点数,再定 义并初始化数组n和m,它们分别用来保存从上到下8个部 分中每个部分的最大交点数和从左到右8个部分中每个部 分的最大交点数。然后从上到下逐行逐行地扫描,把每一 行得到的交点数依次地保存在数组num中,这样便可以得 到从上到下8个部分中每个部分的最大交点数;再从左到 右逐列逐列地扫描,把每一列得到的交点数依次地保存在 数字sum中,这样又可以得到从左到右8个部分中每个部 分的最大交点数。把数组n和m中的值与编码器中的对应 值逐个进行比较,若与某个数字的特征值完全匹配,则待 识别数字就是这个数字。
特征提取法的关键是选取稳定且有效的结 构特征,其计算量相对较小,识别速度快。 提取不同的特征,识别率也不同。
提取数字的两种特征:水平方向过线数和垂直方 向过线数。把数字从上到下平均分成8部分,在 每个部分中分别以水平方向的扫描线从左到右穿 过数字,计算每条扫描线穿越黑像素区域互不相 邻的交点数,在每个部分都可得到一个最多交点 数,在上i/8(i=1,2,3,4)部分的最多交点数定义为 该数字的上i/8高度处的过线数,在下 i/8(i=1,2,3,4)部分的最多交点数定义为该数字的 下i/8高度处的过线数;同理可得到该数字的左 i/8(i=1,2,3,4)宽度处的过线数和右i/8(i=1,2,3,4) 宽度处的过线数。
模板就是一幅已知的小图像。模板匹配就 是在一幅大图像中搜寻目标,已知该图中 有要找的目标,且该目标同模板有相同的 尺寸、方向和图像,通过一定的算法可以 在图中找到目标,确定其坐标位置。
设T为M ×N的模板,将其叠放在被搜索 图S(W ×H个像素)上并平移,模板覆盖被 搜索图的那块区域叫子图Sij。i、j为子图 左上角在被搜索图S上的坐标。搜索范围 是:1 ≤i ≤H -N,1 ≤j ≤W -M。 通过比较T和Sij的相似性,完成模板匹配 过程。
源自文库
传统的模板匹配过程,是取模板的逐行逐 列数据,即整个模板的数据,在被搜索图 上进行逐行逐列扫描匹配,由于参与比较 的数据量大,所以匹配速度很难提高。 如果只取模板的隔行隔列数据,在被搜索 图上进行隔行隔列扫描匹配,匹配速度明 显提高,不过匹配精度会有少许下降。
同一数字在不同的位置或多或少存在一些差别, 改进的模板匹配算法编程时,必须取一个误差阈 值E0。匹配过程中,若模板中的某一点的灰度与 子图Sij中的某一点灰度不同,就把E (i, j)的值增 加1,每匹配完一列(或者一行)时,就把E (i, j) 与E0进行比较,当E (i, j )≥ E0时就停止该点的计 算,继续下一点计算,这样可以提高算法的效率; 当E (i, j )< E0时,就记录下该点的位置,并把匹 配数目增加1。当整个匹配过程结束时,根据记 录的匹配位置和匹配数目,便能将匹配数字标示 出来
二值化对景物分析、模式识别等具有重要 的意义。基于阈值的二值化算法,通过最 大类间方差法即OTSU方法,统计图像的 灰度直方图选取全局阈值,然后进行二值 化处理。
Otsu算法步骤如下: 设图象包含L个灰度级(0,1…,L-1),灰度值为i的的象素 点数为Ni ,图象总的象素点数为N=N0+N1+...+N(L-1)。 灰度值为i的点的概率为: P(i) = N(i)/N. 门限t将整幅图象分为暗区c1和亮区c2两类,则类间方差 σ是t的函数: σ=a1*a2(u1-u2)^2 式中,aj 为类cj的面积与图象总面积之比,a1 = sum(P(i)) i->t, a2 = 1-a1; uj为类cj的均值,u1 = sum(i*P(i))/a1 0->t, u2 = sum(i*P(i))/a2, t+1->L-1 该法选择最佳门限t^ 使类间方差最大,即: 令Δu=u1-u2,σb = max{a1(t)*a2(t)Δu^2}