OCR基于移动终端的文字识别系统的设计与实现(5)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

OCR基于移动终端的文字识别系统的设计与实现(5)

阈值的选择对于二值化处理至关重要,若阈值选择不当将严重破坏图像中的 有效信息。常见阈值选取方法有固定阈值法、平均阈值法、直方图法和一维 Means 法。固定阈值法即将阈值设为一个常数;平均阈值法需要计算出图像中所有像素 的平均值 K,将阈值设为 K;直方图法是发现灰度分部图中的两个最高峰,将阈 值选取为两个峰之间的峰谷;一维 Means 法用近似一维 Means 方法寻找二值化 阈值。而常见的二值处理方法有直方图法、一维 Means 法和迭代法。

1。  直方图法

双峰直方图阈值生成过程如下:

(1)根据实际需要自己设置或随机生成初始阈值 T;

(2)将图像分割为像素值大于 T 的 I1 和小于 T 的 I2 两部分;

(3)求出 I1 和 I2 中的像素平均值 T1 和 T2;

(4)计算新阈值:T= (T1+T2) /2;

(5)重复步骤(2)~(4),直到 T 的差值小于预先设定的值。

2。 一维 Means 法 该方法大致步骤如下:

(1)根据实际需要自己设置或随机生成初始阈值 T;

(2)根据阈值 T 将图像中每个像素数据 G(m,n)分为对象像素数据 I1 和背景像素 数据 I2 两部分,其中 m 为行,n 为列;

(3)求出 I1 和 I2 中的像素平均值 T1 和 T2;

(4)计算新阈值:T= (T1+T2) /2;

(5)回到步骤(2),用新阈值继续将图像分为对象像素数据和背景像素数据, 重复步骤(2)~(4),直到某次在步骤(4)计算出来的新阈值等于上次阈值。 3。  迭代法

图像中前景和背景之间的灰度分布为相互不重叠的情况下,可以用迭代法实现阈值分割。该方法大致步骤如下:

(1)求出图像平均灰度值 T 作为初始阈值;文献综述

(2)将图像分割为像素值大于 T 的 I1 和小于 T 的 I2 两部分;

(3)求出 I1 和 I2 中的像素平均值 T1 和 T2;

(4)计算新阈值:T= (T1+T2) /2;

(5)重复步骤(2)~(4),直到某次在步骤(4)计算出来的新阈值等于上次 得出的阈值。

2。3Tesseract 引擎

2。3。1Tesseract 发展历史

Tesseract 是 Ray Smith 于 1985 年至 1995 年在 HP 布里斯托实验室开发出的 OCR 引擎,曾在 1995 UNLV 精确度测试中排名靠前。但不久后 HP 便放弃了 OCR 业务。2005 年,Tesseract 由美国内华达州信息技术研究所获得并求助于 Google 对其进行改进和优化。2006 年,Google 邀请 Smith 加盟,重启该项目。目前项 目的许可证是 Apache 2。0,支持 Windows、Linux 和 Mac OS 等主流平台。作为 一个引擎,它只提供命令行工具,但是用户也可以下载其 SDK 开发自己的程序。

Tesseract 最新版本为 3。04,本身由 C/C++语言混合编写。输入图像进行字符 识别后,输出格式可为文本、PDF 或使用不同 API 用户接口的其它形式。Tesseract 支持 100 多种语言,只需在 Google 下载对应语言的训练数据集文件即可,并可 通过 config 文件来调整行为:比如只识别数字、只识别指定的单词或指定的 pattern。而以上这些都是对于标准字的识别。Tesseract 虽然强大,但仍存在以下 两点局限性: 1。对于验证码或手写体识别率非常低,但是我们可以通过训练自己所需的语言库 来解决这个问题。

2。Tesseract 需要一些图像预处理操作来优化图片,从而改善 OCR 结果。同时对 图片大小有一定范围的限制,且图片的整体比例(aspect ratio)必须保持不变。

2。3。2Tesseract 算法介绍

Tesseract 的识别步骤大致如下: (责任编辑:qin)