[转]浅谈OCR之Tesseract

转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/05/1844203.html 

浅谈OCR之Tesseract

 

 

光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,而后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术很是专业,通常可能是印刷、打印行业的从业人员使用,能够快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等,即便没有推出单独的OCR产品,可是他们的研发团队早已掌握核心技术,将OCR功能植入了自身的软件系统。对于咱们程序员来讲,通常用不到那么高级的,主要在开发中可以集成基本的OCR功能就能够了。这两天我查找了不少免费OCR软件、类库,特意整理一下,今天首先来谈谈Tesseract,下一次将讨论下Onenote 2010中的OCR API实现。能够在这里查看OCR技术的发展简史。html

测试代码下载程序员

转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/05/1844203.html 小程序

 

一、Tesseract概述api

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

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

Tesseract目前已做为开源项目发布在Google Project,其项目主页在这里查看,其最新版本3.0已经支持中文OCR,并提供了一个命令行工具。本次咱们来测试一下Tesseract 3.0,因为命令行对最终用户不太友好,我用WPF简单封装了一下,就能够方便的进行中文OCR了。post

 

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

 

1.二、命令行工具解压缩后以下(不含1.jpg、1.txt):优化

 

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

 

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

 

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

 

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

 

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

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

 

OCR结果:

 

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

 

二、使用WPF封装Tesseract命令行

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

 

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

 

2.二、为了使得图片预览支持缩放、移动,本来打算使用微软的Zoom It API,惋惜不支持WPF,因而使用了一个第三方的类:

图片缩放、移动工具类

 

 

 

2.三、除了使用鼠标。还能够使用滚动条调节图片预览效果:

数据绑定

 

 

  

2.四、因为Tesseract命令行不支持直接OCR网络图片,故先下载:

图片下载

 

 

  

2.五、使用Process来调用Tesseract命令行:

调用Tesseract命令行

 

 

  

2.六、测试本地图片:

 

2.七、测试网络图片:

 

小结:

本次咱们简单讨论了下Tesseract的用法,做为一款开源、免费的OCR引擎,可以支持中文十分可贵。虽然其识别效果不是很理想,可是对于要求不高的中小型项目来讲,已经足够用了。这里有一份免费OCR工具列表,感兴趣的朋友能够研究一下。下一次将测试一下Onenote 2010中OCR功能,以及如何调用其API,为项目所用。

相关文章
相关标签/搜索