如何用tesseract ocr 训练做日文OCR

J2EE &&&&最新内容
J2EE &&&&随机内容tesseract-ocr-3.02-win32-portable 方便的文字识别,可以 汉字,下载不用语言 不同 Graph Recognize 图形/
238万源代码下载-
&文件名称: tesseract-ocr-3.02-win32-portable
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 16140 KB
&&上传时间:
&&下载次数: 18
&&提 供 者:
&详细说明:方便的文字识别,可以识别汉字,下载不用语言 可以识别不同语言-Convenient character recognition, characters can be identified
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&Tesseract-OCR&&.............\ambiguous_words.exe&&.............\classifier_tester.exe&&.............\cntraining.exe&&.............\combine_tessdata.exe&&.............\dawg2wordlist.exe&&.............\doc&&.............\...\AUTHORS&&.............\...\COPYING&&.............\...\eurotext.tif&&.............\...\phototest.tif&&.............\...\README&&.............\...\ReleaseNotes&&.............\java&&.............\....\ScrollView.jar&&.............\mftraining.exe&&.............\shapeclustering.exe&&.............\tessdata&&.............\........\configs&&.............\........\.......\ambigs.train&&.............\........\.......\api_config&&.............\........\.......\bigram&&.............\........\.......\box.train&&.............\........\.......\box.train.stderr&&.............\........\.......\digits&&.............\........\.......\hocr&&.............\........\.......\inter&&.............\........\.......\kannada&&.............\........\.......\linebox&&.............\........\.......\logfile&&.............\........\.......\makebox&&.............\........\.......\quiet&&.............\........\.......\rebox&&.............\........\.......\strokewidth&&.............\........\.......\unlv&&.............\........\eng.cube.bigrams&&.............\........\eng.cube.fold&&.............\........\eng.cube.lm&&.............\........\eng.cube.lm_&&.............\........\eng.cube.nn&&.............\........\eng.cube.params&&.............\........\eng.cube.size&&.............\........\eng.cube.word-freq&&.............\........\eng.tesseract_cube.nn&&.............\........\eng.traineddata&&.............\........\tessconfigs&&.............\........\...........\batch&&.............\........\...........\batch.nochop&&.............\........\...........\matdemo&&.............\........\...........\msdemo&&.............\........\...........\nobatch&&.............\........\...........\segdemo&&.............\tesseract.exe&&.............\unicharset_extractor.exe&&.............\wordlist2dawg.exe
&近期下载过的用户:
&&&&&&&&[]
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 基于VB6+AO的,具有打开打开栅格数据、矢量数据、打开属性表、放大缩小等等功能.
&[] - 基于otsu的自适应阀值canny边缘检测
&[] - 验证码识别,很好用,能识别中文!速度非常快!非常好用!
&[] - Java OCR 图像智能字符识别技术,可识别中文
&[] - 验证码识别
需要装tesseract-OCR
&[] - tesseract 是一款开源的OCR软件,由HP在1985年原创,2005年交给Google开源。支持英文及中文的OCR处理
&[] - tesseract OCR TEXT VERSION 3.02
&[] - java实现tesseract―OCR,是实现抓取图片中的文字,识别率基本上达到85 ,由于tesseract的汉化包有50m左右,故要用的请自行到tesseract官网上下字啊对应的汉化包
&[] - OCR文字识别程序例程,用于把图片或者网页上的文字转换到TXT文件中
&[] - 图片文字识别!可以将图片是的文字转化出来!&&&&&&&&&&&&&&&&&&
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-OCR3.01语言库训练步骤 - zthua - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
Tesseract-OCR3.01语言库训练步骤
& 10:30:39
这些天由于需要,需要对验证码进行识别,当然验证码识别是老问题了,这里介绍了开源项目Tesseract-OCR3.01对于验证码的识别。对于这款开源项目,要想彻底搞清楚这款开源OCR软件的来龙去脉,还得看Google开源项目的说明:/p/tesseract-ocr/wiki/TrainingTesseract3,这里就不罗嗦了。我使用的是最新的3.01版本的。训练所需准备:1.下载并安装3.01版本的tesseract。事实上并不需要安装这步骤,我下载的是,解压即可,这里我解压到E:\Tesseract-ocr目录。2.下载并安装工具,这是一个Box file editors,用来编辑训练文件的,直接下载地址在。这个软件是用写的,运行需要安装jre,好在这个东西比.net好装多了,怎么运行可以见它的readme文件。3.当然也可以用cowboxer1.01.exe这个工具,他也是Box file编辑工具,在实际应用中,最好将这两个工具结合。4.接下来要训练一个新的语言(自定义语言或者某种自然语言都可以)对应的traineddata文件,需要产生下列过程文件:• cnlp.config• cnlp.unicharset• cnlp.unicharambigs• cnlp.inttemp• cnlp.pffmtable• cnlp.normproto• cnlp.punc-dawg• cnlp.word-dawg• cnlp.number-dawg• cnlp.freq-dawg&&&&&在这八个文件中,红色标示的是必须的,其他的文件可选。当这些文件都准备好之后,再使用combine_tessdata进行最后的合并工作,生成cnlp.traineddata,这个文件就是最终训练出来语言库。下面再来说一下如何产生上述的文件:1、获取一个训练图片(*.tif)&&&&&&&这里采用铁道部购票系统中的验证码,将这个验证码下载后,用上文提到的jTessBoxEditor工具将其转换为tif文件,或者直接重命名也可以。名称为cnlp.lpft.exp0.tif,命名规则可以参照官网说明:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox。2、产生相应的Box文件(*.box)命令:tesseract.exe&cnlp.lpft.exp0.tif&cnlp.lpft.exp0&&batch.nochop makebox&这一步产生对应的cnlp.lpft.exp0.box文件。该文件记录了tesseract识别出来的每一个字和其位置坐标。使用jTessBoxEditor编辑该Box文件,校正识别出来的字符,如果单个字符识别成了两个或者多个字符,则要将这些行进行合并。前两项坐标取最小值,后两项坐标取最大值。&&备注:这时候要注意的是编辑box要和tif文件同在一个目录下,然后逐个校正文字,后保存。如果使用cowboxer1.01,他会自动找到与之相对于的box文件。3、产生字符特征文件(*.tr)命令:tesseract cnlp.lpft.exp0.tif&cnlp.lpft.exp0&nobatch box.train这一步产生两个文件:(1)cnlp.lpft.exp0.txt;(2)cnlp.lpft.exp0.tr为特征文件。可能会产生tesseract.log主要是记录该步骤执行结果的没啥用;&&4、计算字符集(unicharset)命令:unicharset_extractor cnlp.lpft.exp0.box这一步产生字符集文件unicharset。5、聚集字符特征(inttemp、pffmtable、normproto)命令:mftraining -F font_properties -U unicharset cnlp.lpft.exp0.tr这一步中的font_properties这个文件需要自己手动创建,文件内容。where&fontname&is a string naming the font (no spaces allowed!), and&italic&, &bold&, &fixed&, &serif& and &fraktur&are all simple 0 or 1 flags indicating whether the font has the named property.官网有详细说明,大致意思就是你设置的字体。这是我的font_properties内容:lpft 0 0 1 0 0。&根据上一步产生的字符集文件unicharset,来生成当前新语言的字符集文件mfunicharset。同时还会产生图形原型文件inttemp和每个字符所对应的字符特征数文件pffmtable。附带还会产生Microfeat文件,但是这个文件没啥用。&接下来使用命令cntraining.exe cnlp.lpft.exp0.tr,这一步产生字符形状正常化特征文件normproto。到这里基本上所需的文件都形成了,下面就开始生成字典文件。6、合并训练文件(*.traineddata)此时,在目录下应该生成若干个文件了,把unicharset, inttemp, normproto, pffmtable这四个文件加上前缀“cnlp.“。然后使用命令:combine_tessdata cnlp.将其合并成一个字典文件。这时会生成如下结果:&&必须确定的是第2、4、5、6行的数据不是-1,那么一个新的字典就算生成了。此时目录下“cnlp.traineddata”的文件拷贝到tesseract程序目录下的“tessdata”目录。以后就可以使用该该字典来识别了。7、

我要回帖

更多关于 tesseract ocr python 的文章

 

随机推荐