开源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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tesseract OCR引擎是一个开源的光学字符识别引擎,由Google开发和维护。它可以将图像中的文本转换为可编辑的文本格式,支持多种语言,并且在准确性和性能方面表现出色。 Tesseract OCR引擎的主要特点包括: 1. 多语言支持:Tesseract支持超过100种语言的文本识别,包括中文、英文、法文、德文等。 2. 高准确性:Tesseract使用了一系列的图像处理和机器学习算法来提高识别准确性,尤其在印刷体文本上表现出色。 3. 灵活性:Tesseract可以处理各种类型的图像,包括扫描文档、照片、屏幕截图等。 4. 可扩展性:Tesseract提供了丰富的API和接口,可以与其他应用程序和开发框架集成,如Python、Java、C++等。 使用Tesseract OCR引擎进行文本识别的基本步骤如下: 1. 安装Tesseract:首先需要安装Tesseract OCR引擎。具体安装方法可以参考Tesseract官方文档或者相关教程。 2. 准备图像:将需要识别的图像准备好,可以是扫描文档、照片或者其他类型的图像。 3. 图像预处理:对图像进行预处理,以提高识别准确性。预处理包括图像二值化、去噪、旋转校正等。 4. 文本识别:使用Tesseract API调用引擎进行文本识别。根据具体的编程语言,可以使用相应的库或者接口来实现。 以下是一个使用Python调用Tesseract OCR引擎进行文本识别的示例代码: ```python import pytesseract from PIL import Image # 打开图像 image = Image.open('image.jpg') # 图像预处理 # ... # 文本识别 text = pytesseract.image_to_string(image, lang='eng') # 输出识别结果 print(text) ``` 需要注意的是,使用Tesseract OCR引擎进行文本识别可能会受到图像质量、字体、布局等因素的影响,因此在实际应用中可能需要进行一些调优和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值