天天看点

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

<a href="http://files.cnblogs.com/brooks-dotnet/2010.10.05_Mr.Brooks_OCR_TesseractGUI.rar">测试代码下载</a>

1、Tesseract概述

Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。

数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。

1.1、首先到Tesseract项目主页下载命令行工具、源代码、中文语言包:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

1.2、命令行工具解压缩后如下(不含1.jpg、1.txt):

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

1.3、为了进行中文OCR,将简体中文语言包复制到【tessdata】目录下:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

1.4、在DOS下切换到Tesseract的命令行目录,查看一下tesseract.exe的命令格式:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

Imagename为待OCR的图片,outputbase为OCR后的输出文件,默认是文本文件(.txt),lang为使用的语言包,configfile为配置文件。

1.5、下面来测试一下,准备一张jpg格式的图片,这里我是放到了和Tesseract同一个目录中:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

输入:tesseract.exe 1.jpg 1 -l chi_sim,然后回车,几秒钟就OCR完成了:

这里注意命令的格式:imagename要加上扩展名.jpg,输出文件和语言包不需要加扩展名。

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

OCR结果:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

可以看到结果不是很理想,中文识别还说的过去,但是英文、数字大都乱码。不过作为老牌的OCR引擎,能做到这种程度已经相当不错了,期待Google的后续升级吧,支持一下。

2、使用WPF封装Tesseract命令行

2.1、鉴于命令行书写容易出错,且对最终用户很不友好,我做了一个简单的WPF小程序,将Tesseract的命令行封装了一下:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

左边选择图片、预览,右边选择输出目录,显示OCR结果,支持本地及网络图片的预览。

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

图片缩放、移动工具类

2.3、除了使用鼠标。还可以使用滚动条调节图片预览效果:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

数据绑定

2.4、由于Tesseract命令行不支持直接OCR网络图片,故先下载:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

图片下载

2.5、使用Process来调用Tesseract命令行:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

调用Tesseract命令行

2.6、测试本地图片:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

2.7、测试网络图片:

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

小结:

继续阅读