如何通过tesseract ocr官网开源OCR引擎创建Android OCR应用

如何通过Tesseract开源OCR引擎创建Android OCR应用_百度知道
如何通过Tesseract开源OCR引擎创建Android OCR应用
提问者采纳
WMZ.  假设需要识别的图片验证码为code, PJPEG、编辑, JNG, RGB, XWD;result:Read of file failed, GIF87.&#47, PS3, STEGANO。它可以读取:  Tesseract Open Source OCR Engine  check_legal_image_size, FPX, EPT,6, FAX, PCL, PNG, PIX, PPM, VID,最后是转换后的图片的文件名, PLASMA, MONO.jpg, RLA.jpg  IMAGE。ImageMagick是免费软件,4, TIM, DOT:Only 1, YCbCr, XV:code, YUV,后果如下, compose, CMYK, PS2.gif :code, JBIG Tesseract是图盲, PythonMagick, RGBO,2, EMF, WMFWIN32, CLIPBOARD:Error:全部源码开放, PGM, MAP;result  结果就在文本文件.exe, SGI: Perl, PDB.&#47, CLIP:&#92, PFA, SCR,可以自由使用,发布, YCbCrA、组合, C, EPSF, K, TILE, C。  紧跟着就是待转换的图片的文件名, EPI: A.&#47, CACHE, SFW、颜色替换, XCF, WPG, Ruby, AVI。如果没有此参数, SUN, EPS2。它遵守GPL许可协议, DCM.&#47、写入多种格式的图片.jpg  所以我们需要用ImageMagick来转换图片格式:Error,5, CAPTION,如果没有加这一项, BMP2, EPT3, HDF, PCT:read_header、各种效果的应用:&#92, PATTERN, EPT2, MIFF,曲线, PICON:Compression  -depth 8, PSD, TIF, JPEG、合成图片的软件。然后再对两个命令做点解释, PHP,直线,也就是bpp为8.jpg  tesseract, SVGZ:在转换后的图像中不要添加alpha图层, JPX, RubyMagick, RAS,如果直接用tesseract处理其它格式的图片, VIFF,后果同上, CMYKA, and edit images from Windows ,负责图片格式转换,文本, PREVIEW.&#47, and JMagick)是可利用的:code:  d.txt里面了, X, Y, LABEL, Java, MPC:  Use MagickNet to convert, RLE, PCD,8 bpp are supported, PCDS, WBMP。通常来说, FRACTAL.tif , MATTE, RGBA,多边形, MTV, NULL;code, B, ICB。它可以运行于大多数的操作系统, BMP, MSL, WMF;&#92, XBM, EPS, MVG, CUT, SHTML, TGA, ICO:转换后的图片不要压缩, MAT,椭圆,复制, XPM, DPX。图片切割, PICT,修改, DCX, PCX, PALM;code, G, SVG, TIFF, DNG, OTB, GRAY。如果没有此参数, SCT, PNG24;现成的ImageMagick接口(PerlMagick,后续tesseract处理的时候会报错, O, MPEG, VST,ImageMagick (TM) 是一个免费的创建, UYVY, R, AVS:ImageMagick套件的一部分, EPSI,它可以支持以下程序语言, G3:  -compress none, DPS;code, ART, JP2, PAL.exe , Magick++, HTM, TEXT, P7;\result后面添加上后缀名, CIP:设置转换后图像的色深为8位, MNG, TTF,tesseract会自动地在, C++:Illegal image format, JBG, BIE。  convert, VICAR, PNM, PBM, EPDF;tesseract&#92, Python, M2V,附加到图片伸展旋转。这使得自动的动态的修改创建图片变为可能,会报错如下.NET的相关项目, CIN, PNG32, XC, BMP3, GRADIENT:Error, JPC, HISTOGRAM, MPG, TXT, UIL, PS, JPG:read_tif_image, FITS,图片的旋转,  ImageMagick , PNG8.ImageMagick&#92,各个参数的意义如下, M, GIF,默认情况下只能看得懂未压缩的TIFF图像:Error, MagickWand for PHP:16  Segmentation fault  -alpha off、转换, TTC:Error, PGX:Unrecognized image type, ICON.NET;tesseract.exe -compress none -depth 8 -alpha off 。ImageMagick的大多数功能的使用都来源于命令行工具, PDF.&#47:, PTIF, HTML:Can’t read this image type。ImageMagick支持至少90种图片格式, EPS3,我们需要做的只有两步;convert, CUR.NET application written in C# that utilizes the ImageMagick command line to allow conversion of multiple image formats to different formats, PFB, VDA, PWP.  ImageMagickApp is a .tif  D:  Tesseract Open Source OCR Engine  name_to_image_type
资深电脑人
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何通过Tesseract开源OCR引擎创建Android OCR应用_百度知道
如何通过Tesseract开源OCR引擎创建Android OCR应用
我有更好的答案
过程不算复杂:如何通过Tesseract开源OCR引擎创建Android OCR应用。tessdata用来放置语言你可以阅读这篇博客
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Tesseract-OCR引擎&使用方法入门
OCR(Optical Character
Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。
Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布。当前版本为3.02
项目下载地址为:。
Windows cmd命令行使用Tesseract-OCR引擎识别验证码:
1、下载安装Tesseract-OCR引擎(3.0版本+才支持中文识别)
下载完后进行安装,默认情况下安装程序会给你配置系统环境变量,以指向安装目录(之后可以通过DOS界面在任意目录运行tesseract)。安装完成后目录如下:
tessdata 目录存放的是语言字库文件,和在命令行界面中可能用到的参数所对应的文件.
这个安装程序默认包含了英文字库。
如果想能识别中文,可以到下载对应的语言的字库文件.
简体中文字库文件下载地址为:
下载完成后解压,然后将该文件剪切到tessdata目录下去就可以了。
2、使用Tessract-OCR引擎识别验证码
打开DOS界面,输入tesseract:
如果出现如上输出,表示安装正常。
我准备了一张验证码code.jpg放在D盘根目录下<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//0_c8r8.gif" NAME="image_operate_77297"
TITLE="Tesseract-OCR引擎&使用方法入门" />,上图
Usage:tesseract imagename outputbase [-l lang] [-psm
pagesegmode] [configfile...]
pagesegmode values are:
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
-l lang and/or -psm pagesegmode must occur before
anyconfigfile.
tesseract imagename outputbase [-l lang] [-psm pagesegmode]
[configfile...]
tesseract 图片名 输出文件名 -l 字库文件 -psm pagesegmode 配置文件
tesseract code.jpg result -l chi_sim -psm 7
-l chi_sim
表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为 .raineddata
简体中文字库文件名为: chi_sim.traineddata)
-psm 7 表示告诉tesseract code.jpg图片是一行文本
这个参数可以减少识别错误率. 默认为 3
configfile 参数值为tessdata\configs 和 tessdata\tessconfigs
目录下的文件名.
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&&&&&&&&&&&&&&&&&&
posts - 55,comments - 75,trackbacks - 0
原文来自:/c?m=9f65cb4a8c8507ed4feceb4ccd32a2e57da3c50f11e41bcad61aa9ec88240dcb548e45f49a15&p=882aef50becc9&newp=cc43e908e3d2d61539&user=baidu&fm=sc&query=Leptonica&qid=&p1=2
最近一直跟OCR打交道,学习了下google的OCR引擎TESSERACT,是个很好的识别工具。tesseract-3.0已支持版面分析,功能很强大。安装tesseract前可选择性地安装leptonica和libtiff。不过建议先安装这两个库。不安装tiff的话只能处理bmp文件。
& & &这里只是说明怎么识别中文。依次安装好libtiff,leptonica和tesseract后,下载简体中文和繁体中文的训练数据,在tesseract的下载页可以找到。放到某个目录的tessdata文件夹下。然后设置环境变量TESSDATA_PREFIX=tessdata的目录。然后,新建一个ocr.cpp文件,编写如下代码:
#include &mfcpch.h&
#include &ctype.h&
#include &sys/time.h&
#include "applybox.h"
#include "control.h"
#include "tessvars.h"
#include "tessedit.h"
#include "baseapi.h"
#include "thresholder.h"
#include "pageres.h"
#include "imgs.h"
#include "varabled.h"
#include "tprintf.h"
#include "stderr.h"
#include "notdll.h"
#include "mainblk.h"
#include "output.h"
#include "globals.h"
#include "helpers.h"
#include "blread.h"
#include "tfacep.h"
#include "callnet.h"
#include "allheaders.h"
int main(int argc,char **argv){
if(argc!=3){
printf("usage:%s &bmp file& &txt file&/n",argv[0]);
return -1;
char *image_file=argv[1];
char *txt_file=argv[2];
STRING text_
struct timeval beg,
tesseract::TessBaseAPI &
api.Init(argv[0], "chi_sim", NULL, 0, false);//初始化api对象
api.SetPageSegMode(tesseract::PSM_AUTO);//设置自动进行版面分析
api.SetAccuracyVSpeed(tesseract::AVS_FASTEST);//要求速度最快
if (image.read_header(image_file) & 0) {//读取bmp文件的元信息
printf("Read of file %s failed./n", image_file);
if (image.read(image.get_ysize ()) & 0){//读取bmp文件
printf("Read of image %s error/n", image_file);
invert_image(&image);//反转图像的每个像素,即使1变0,0变1
int bytes_per_line = check_legal_image_size(image.get_xsize(),
& & & & & & & & & & & & & & & & & & & & & & & & image.get_ysize(),
& & & & & & & & & & & & & & & & & & & & & & & & image.get_bpp());//计算每一行像素所占字节数
& & api.SetImage(image.get_buffer(), image.get_xsize(), image.get_ysize(),
& & & & & & & & & image.get_bpp() / 8, bytes_per_line);//设置图像
gettimeofday(&beg,NULL);
char* text = api.GetUTF8Text();//识别图像中的文字
gettimeofday(&end,NULL);
printf("%s:reconize sec=%f/n",argv[0],end.tv_sec-beg.tv_sec+(double)(end.tv_usec-beg.tv_usec)/);//打印识别的时间
text_out +=
FILE* fout = fopen(txt_file, "w");
fwrite(text_out.string(), 1, text_out.length(), fout);//将识别结果写入输出文件
fclose(fout);
再编写一个makefile文件如下:
CFLAGS=-Wall -g
LDFLAGS= -lz &-lm &-ltesseract_textord /
-ltesseract_wordrec -ltesseract_classify -ltesseract_dict -ltesseract_ccstruct/
-ltesseract_ccstruct -ltesseract_cutil -ltesseract_viewer -ltesseract_ccutil/
-ltesseract_api -ltesseract_image -ltesseract_main -llept
LD_LIBRARY_PATH&=
INCLUDES= -I/usr/local/include/tesseract/ -I/usr/local/include/leptonica/
g++ -c $(CFLAGS) $(INCLUDES) &$(SOURCE) -o $@ $&
g++ -o $@ $^ -g $(LD_LIBRARY_PATH) $(LDFLAGS)
& & 在该目录下运行make编译成可执行文件ocr,运行./ocr 1.bmp 1.txt就可以将图像1.bmp识别结果写到1.txt了,程序会打印识别的时间。值得注意的是,tesseract中文识别速度很慢,运行几分钟很正常。不知有哪位大虾知道怎么调优?
& &更郁闷的是tesseract不支持多线程,不能在同一进程中运行多个实例。。
阅读(...) 评论()

我要回帖

更多关于 tesseract ocr 的文章

 

随机推荐