专栏首页张善友的专栏开源OCR引擎Tesseract

开源OCR引擎Tesseract

知名的开源OCR引擎Tesseract 3.0版本日前发布,可以在项目网站下载:http://code.google.com/p/tesseract-ocr, 新版本支持中文,中文语言包定义http://code.google.com/p/tesseract-ocr/downloads/detail?name=chi_sim.traineddata.gz

Tesseract是Ray Smith于1985到1995年间在惠普布里斯托实验室开发的一个OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2006年,Google邀请Smith加盟,重启该项目。目前项目的许可证是Apache 2.0。该项目目前支持Windows、Linux和Mac OS等主流平台。但作为一个引擎,它只提供命令行工具。

执行识别图像的命令格式为: tesseract <imagename>   <outputbase> [-l lang] [configfile [[+|-]varfile]...] 其中tesseract是命令;<imagename>是待识别的图片,例如图片 eurotext.tif;<outputbasename>是输出文本文件的名称,默认生成的是你所给定的输出文件名称,加上.txt扩展名;[-l lang]可选的,指定识别图像中的语言。

Tesseract还有相应的.net版本,下载地址如下:http://www.pixel-technology.com/freeware/tessnet2/。另外发现这个用法非常简单,注意还需要下载语言包,另外为了提高验证率,还可以自己进行训练,tesseract-OCR还支持训练功能,以提高(对不同字体的)识别效率或者对新语种的支持。大致就是通过给定的包含已知字符的tiff文件生成相应的box文件,经过手工更正后,训练tesseract-OCR的识别能力。也可以用一些训练工具完成这个过程。

Tesseract是图盲,默认情况下只能看得懂未压缩的TIFF图像,如果直接用tesseract处理其它格式的图片,会报错如下: Tesseract Open Source OCR Engine name_to_image_type:Error:Unrecognized image type:code.jpg IMAGE::read_header:Error:Can’t read this image type:code.jpg tesseract:Error:Read of file failed:code.jpg

所以我们需要用ImageMagick来转换图片格式,ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。通常来说,它可以支持以下程序语言: Perl, C, C++, Python, PHP, Ruby, Java;现成的ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。这使得自动的动态的修改创建图片变为可能。ImageMagick支持至少90种图片格式: A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX, FRACTAL, G, G3, GIF, GIF87, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, OTB, P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV,具体参考http://www.imagemagick.com.cn/

ImageMagick .NET的相关项目:

Use MagickNet to convert, compose, and edit images from Windows .NET. ImageMagickApp is a .NET application written in C# that utilizes the ImageMagick command line to allow conversion of multiple image formats to different formats.

假设需要识别的图片验证码为code.jpg,我们需要做的只有两步:

d:\ImageMagick\convert.exe -compress none -depth 8 -alpha off ./code.gif ./code.tif D:\\tesseract\\tesseract.exe ./code.tif ./result

结果就在文本文件./result.txt里面了,tesseract会自动地在./result后面添加上后缀名.txt。然后再对两个命令做点解释。

convert.exe:ImageMagick套件的一部分,负责图片格式转换,各个参数的意义如下: -compress none:转换后的图片不要压缩,如果没有加这一项,后续tesseract处理的时候会报错:read_tif_image:Error:Illegal image format:Compression -depth 8:设置转换后图像的色深为8位,也就是bpp为8。如果没有此参数,后果如下: Tesseract Open Source OCR Engine check_legal_image_size:Error:Only 1,2,4,5,6,8 bpp are supported:16 Segmentation fault -alpha off:在转换后的图像中不要添加alpha图层。如果没有此参数,后果同上。 紧跟着就是待转换的图片的文件名,最后是转换后的图片的文件名。

OCR开源程序tesseract

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 现代“十二要素应用”与 Kubernetes

    “十二要素应用”为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合。这篇文章介绍了Docker特性怎样满...

    张善友
  • Restful Objects for .NET

    Restful Objects是关于领域对象模型的超媒体API的公共规范。该规范的1.0.0 版本刚刚发布并提供下载,并且目前已经出现了两个实现了该规范的开源框...

    张善友
  • Mono 3 的默认Gc是Sgen

    Mono 3现在是默认 GC是SGen 垃圾回收器,垃圾回收器几个性能和扩展性方面的改进,以更好地利用多核处理器硬件。SGen 已移植到 Windows 和 M...

    张善友
  • FlipaClip——人人都是灵魂画师

    FlipaClip是一款绘制动画的软件,通过一帧帧的图像最后合成动画。就像小时候的动画片一样,靠着无数张图画构成了动起来的动画。

    灵魂画师牧码
  • PDF怎么编辑内容,两大简单方法教你轻松搞定

    在工作中要说用到最多的文件格式那当然是PDF格式是最多的了,因其本身的安全性比较高,所以很多在办公中的人都很喜欢用,可是很多人也会比较头疼,尤其是当PDF文件中...

    高效办公
  • Windows美化软件WindowFX简介

    版权声明:本文为博主原创文章,转载请注明出处。 ...

    乐百川
  • [正则表达式]利用正则表达式获取两者之间的内容

    起因是同学找我问怎么用正则表达式获得——比如说12.3亿元中的“亿”,3千万元的“千万”。然后我试了很久,直接用在线测试工具测的,发现零宽断言里的(?<=exp...

    Tuzei
  • Unity-UGUI无限循环列表

    简介: UGUI使用ScrollView、GridLayoutGroup实现无限循环列表,支持数据刷新,支持跳转,支持动态插入/删除

    祝你万事顺利
  • python爬虫,从sohu上抓小说《人形软件》

    上次发的从sina上抓小说的代码,这次来一个sohu的,不过总结python爬虫的方法,其实无外乎urllib和正则表达式的使用。掌握了这俩,基本就是有了就抓。...

    the5fire
  • docker容器启动后马上退出的问题

    container启动后马上退出 原因: Docker容器后台运行,就必须有一个前台进程。主线程结束,容器会退出。 docker run -d --name m...

    py3study

扫码关注云+社区

领取腾讯云代金券