相关源码、资源下载:http://code.google.com/p/tesseract-ocr/downloads/list

训练步骤:

1、  Generate Training Images:生成tif图像文件(简单的几个汉字);

如:ABC.Roman.exp0.tif([lang].[fontname].exp[num].tif)

2、  Make Box Files:由上tif图像文件生成box文件;由tesseract.exe生成box文件;打开生成的box文件,修改其中不正确的部分;

配置文件参数:"batch.nochop", "makebox"

运行文件:tesseractmain.cpp

如:ABC.Roman.exp0.box

3、  Run Tesseract for Training:

配置文件参数:"nobatch", "box.train"或"nobatch", "box.train.stderr"

运行文件:tesseractmain.cpp

生成的文件包括:ABC.Roman.exp0.tr 、ABC.Roman.exp0.txt

4、  Compute the Character Set:

运行文件:unicharset_extractor.cpp

生成的文件:unicharset

5、  font_properties:

需要自己创建一个txt文件,如font_properties.txt

运行文件:mftraining.cpp

生成的文件:inttemp、Microfeat、pffmtable、ABC.unicharset

6、  Clustering:

运行文件:mftraining.cpp(类似5)

运行文件:cntraining.cpp

生成的文件:normproto

7、  Dictionary Data:

需要自己创建5个txt文件,如:frequent_words_list.txt、words_list.txt、punc_list.txt、number_list.txt、user_words_list.txt

运行文件:wordlist2dawg.cpp

生成的文件:ABC.freq-dawg、ABC.word-dawg、(ABC.punc-dawg、ABC.number-dawg、ABC.user-words)

8、  The last file:

需要自己手动创建一个unicharambigs文件

9、  Putting it all together:

将normproto, Microfeat, inttemp, pffmtable四个文件重命名以ABC.为前缀,分别改为ABC.normproto, ABC.Microfeat, ABC.inttemp, ABC.pffmtable

运行文件:combine_tessdata.cpp

生成的文件:ABC.traineddata

以上的所有.cpp文件均可以根据自己的实际要求进行相应的修改。

使用:

将生成的ABC.traineddata文件拷贝到tessdata目录下,然后调用tesseractmain.cpp文件执行即可。

参考文献:

1、  http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3

2、  http://www.docin.com/p-216160535.html

3、  http://blog.wudilabs.org/entry/f25efc5f/

4、  http://blog.csdn.net/dyfleoo/article/details/6959591

5、  http://blog.csdn.net/fengbingchun/article/details/6920667

6、http://code.google.com/p/tesseract-ocr/wiki/ReadMe

 
2

tesseract3.01的训练和使用的更多相关文章

  1. 关于Tesseract3.01的使用方法

    Tesseract就不多介绍勒,能找到的人都知道是干嘛的 下面记录一下C# vs2010下的使用方法(借鉴http://blog.csdn.net/bobo1013767522/article/det ...

  2. 2018.11.01 NOIP训练 树的排列(树形dp)

    传送门 跟这道题差不多. 只不过是让权值小的儿子做权值大的儿子的父亲而已. 代码

  3. 2018.11.01 NOIP训练 梭哈(模拟)

    传送门 这题貌似不考智商啊. 直接按题意写就可以了. 事实上把牌从小到大排序之后写起来很舒服的. 然后就是有些地方可以人脑减代码量和判断次数. (提示:满堂红和某几种同类型的牌的大小判断) 然后注意A ...

  4. 2018.11.01 NOIP训练 图论(线段树+倍增+dfs序)

    传送门 一道挺妙的题. 对于询问点(u,v),如右图所示,我们可以发现存在一个点m在u->v的路径中,m子树的点到u是最近的,m子树外到v是最近的.其中dis(u,m)=(dis(u,v)-1) ...

  5. 2018.11.01 NOIP训练 木棒分组(搜索+剪枝)

    传送门 测试搜索的时候状态定义错了233. 我们把木棒从大到小排序. 然后保证每一组搜到的木棒出现的长度是从大到小递减的. 直接定义现在搜的木棒从什么位置开始,当前这一组的总长度,之前几组的总长度. ...

  6. 2018.11.01 NOIP训练 递增数列(迭代加深)

    传送门 直接迭代加深搜索. 发现每次最多增加一倍,最少增加一,于是果断上下界剪枝. 代码

  7. 2018.11.01 NOIP训练 某种密码(折半搜索)

    传送门 直接折半搜索,把所有和装到unorderedmapunordered_mapunorderedm​ap里面最后统计答案就行了. 然后考试的时候读优并没有处理有负数的情况于是爆零了 代码

  8. 2018.11.01 NOIP训练 cost数(搜索+容斥原理)

    传送门 唉考试的时候忘记剪倍数的枝了666666分滚粗. 其实就是一直取lcmlcmlcm搜索,然后容斥原理统计就行了. 代码

  9. tesseract-ocr如何训练Tesseract 4.0

    引自:https://blog.csdn.net/huobanjishijian/article/details/76212214 原文:https://github.com/tesseract-oc ...

随机推荐

  1. selenium处理极验滑动验证码

    要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题https://www.zhihu.com/question/28833985,我按照这思路去大概实现了 ...

  2. Tree:加载列表数据

    Tree控件,需要提供一个树形的JSON数据,才能正常显示. 通常,开发者在后台可以这样做: 1)从数据库查询出一个列表数据 2)在后台,将列表数据转换为树形数据 3)通过JSON方式返回 在前台页面 ...

  3. PHP Warning: PHP Startup: in Unknown on line 0

    Windows平台启动php后,出现PHP Warning:  PHP Startup:  in Unknown on line 0解决方案:这个问题是由于php.ini中没有开启(去掉注释符号)ph ...

  4. Mono 异步加载数据更新主线程

    主要是用 async和 await 调用 RunOnUiThread来更新. 调用函数: //异步加载数据开始 doInBackground (); //异步加载数据开始end protected a ...

  5. OpenGL ES(一.概念)

    OpenGL ES是以手持和嵌入式设备为目标的高级3D图形应用程序编程接口,主要的支持平台是iOS,Android,Linux和Windows 1.顶点着色器 他可以用于通过矩阵变换位置,计算照明公式 ...

  6. ssh那些事儿

    第一次使用ssh是上学期搭建hadoop集群的时候,当时照着各种配置文档费了九牛二虎之力终于把环境搭建成功,现在想想当时还真是不容易呢.好了废话不扯了,进入正题. 计算机发展早期能实现两台机器之间的通 ...

  7. Python-4 变量、字符串

    #1 变量 1)使用前 先赋值 2)命名 字母.数字.下划线 且 不由数字开头 3)大小写不等 4)名字=值 5)尽量选取专业的名字 #2 字符串(文本) 1)字符串两边加引号 2)转义字符 \(反斜 ...

  8. 可分组的选择框控件(MVVM下)(Toggle样式 仿造单选框RadioButton,复选框CheckBox功能)

    原地址: http://www.cnblogs.com/yk250/p/5660340.html 效果图如下:支持分组的单选框,复选框样式和MVVM下功能的实现.这是项目中一个快捷键功能的扩展. 1, ...

  9. KETTLE实现数据的删除和更新

    一.实现目标 源数据库的数据更新或者删除之后,目标数据库的数据跟着更新或删除,整体流程截图如下: 一.准备工作 源数据库ORACLE  目标数据库MongoDB,在源数据库添加删除.更新触发器 二.操 ...

  10. c代码读取目录信息

    #include <stdio.h> #include <sys/types.h> #include <dirent.h> int main(void) { DIR ...