字符训练网上一搜一大堆,但作为一个初学者而言,字符合并网上却写的很笼统

首先,需要 生成的字符集.tif文件,位置文件 .box ,只要有这两个文件在,就可以合并字典(这个说的很有道理的样子)

好了,我现在有三个需要合并的字典

(1).(why3.楷体.exp0.tif,why3.楷体.exp0.box)

(2).(why4.microsoftyaheiuilight.exp0.tif,why4.microsoftyaheiuilight.exp0.box)

(3).  (why5.隶书b.exp0.tif,why5.隶书b.exp0.box)

1、先生成相对应的 .tr 文件
//自己的命令根据自己的情况进行修改

tesseract why3.楷体.exp0.tif why3.楷体.exp0 nobatch box.train
tesseract why4.microsoftyaheiuilight.exp0.tif why4.microsoftyaheiuilight.exp0 nobatch box.train
tesseract why5.隶书b.exp0.tif why5.隶书b.exp0 nobatch box.train

2、从所有文件中提取字符

//自己的命令根据自己的情况进行修改

unicharset_extractor why3.楷体.exp0.box why4.microsoftyaheiuilight.exp0.box why5.隶书b.exp0.box

3、生成字体特征文件

新建的font.txt文件,在文件中把所有box文件对应的字体特征都加进去(如果不知道,可以去原来考出来的字库文件找.font_properties文件查看)

楷体 0 0 0 0 0
microsoftyaheiuilight 0 0 0 0 0
隶书b 0 1 0 0 0

写完之后,执行如下命令:

mftraining -F font.txt -U unicharset why3.楷体.exp0.tr why4.microsoftyaheiuilight.exp0.tr why5.隶书b.exp0.tr

4 、聚集所有.tr 文件

cntraining why3.楷体.exp0.tr why4.microsoftyaheiuilight.exp0.tr why5.隶书b.exp0.tr

5 、重命名文件,我把unicharset, inttemp, normproto, pfftable,shapetable 这几个文件加了前缀why.  (自己定,随意)    //我加的是together.

6、合并所有文件 生成一个大的字库文件

combine_tessdata together.

目录下生成的结果如下:

把合并字库拷进如下目录:

测试图片如下:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU4AAABKCAIAAABb1yqcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACBElEQVR4nO3d0W7jIBRF0Xg0///LzIOlqNJIjaCALz1rvbciNtvg1kmu1toL+O3+PD0AYAepQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSpQwSps891Xdd1PT2KUFKHCH+fHsBhJi5KvkJrrg37hbFTtmhgvYOxqkMEq3qfHy7FEy/wK9aKozcaA4O/j+GeV/34sZX6Pu84Hz/rBJL6JtM7d72gi3v1HaznPM6qvpbIKcKqvpDOqUPqq+icUqS+hM6pxr36ZCKnJqnPlNb52GM8vT8VcjDXuQ943dT3vAVq4jRK65wjvKdl3dTPktl574vd+SAqt/fRrpv6KRPi6+7jlDETqG7qR8hczDmRf7aN0zkHkfognXMWqY+Y27lPXGMDqXeb3vnPfwl8JPU+i/bt7gJYTeojlMlxpN7BZptedeaM1LtZ0ulVYc5IHSJ4Wu5JA8+El/1iA/5XZ/f+kvqAKe/ZKDUJWKrIpVPqHVpr70Rntdo7D4rMGz6qdjWXep+7tClnUbTPWppiweempT6izvnjo++TXnEqC3b+8hd4ki1KsbVWKvLbVXBMwHRWdYggdYggdYggdYggdYggdYggdYggdYggdYggdYggdYggdYggdYggdYggdYjwD3h9paReH8qcAAAAAElFTkSuQmCCAA==" alt="" />

执行如下代码:

# coding=utf-8
__author__ = 'syq' #https://github.com/tesseract-ocr
import sys
import importlib
#reload(sys)
importlib.reload(sys);
#sys.setdefaultencoding('utf-8') import os;
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
try:
from pyocr import pyocr
from PIL import Image
except ImportError:
print('模块导入错误,请使用pip安装,pytesseract依赖以下库:')
print('http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil')
print('http://code.google.com/p/tesseract-ocr/')
raise SystemExit
tools = pyocr.get_available_tools()[:]
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
print("Using '%s'" % (tools[0].get_name()))
print(tools[0].image_to_string(Image.open('pic\\123.png'),lang='together'))

结果如下:

效果还可以,厉害了

参考:http://blog.csdn.net/dragoo1/article/details/8439272

http://www.lxway.com/815805156.htm

Tesseract_ocr 字符识别基础及训练字库、合并字库的更多相关文章

  1. Tesseract5.0训练字库,提高OCR特殊场景识别率,合并字库(二)

    一.准备工作 需要的文件 tif文件和box文件. 如果你打标打好了,但是是分批次打标的,那么可以合并字库,我们最初只需要 tif 和 box 文件,如下: 二.生成对应的 .tr 训练文件 根据不同 ...

  2. 【CUDA 基础】5.4 合并的全局内存访问

    title: [CUDA 基础]5.4 合并的全局内存访问 categories: - CUDA - Freshman tags: - 合并 - 转置 toc: true date: 2018-06- ...

  3. Java实现 蓝桥杯 算法训练 字符串合并

    试题 算法训练 字符串合并 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个字符串,将其合并为一个字符串后输出. 输入格式 输入两个字符串 输出格式 输出合并后的字符串 样例 ...

  4. [C/C++标准库]_[0基础]_[使用fstream合并文本文件]

    场景: 1. 就是合并文本文件,而且从第2个文件起不要合并第一行. 2. 多加了一个功能,就是支持2个以上的文件合并. 3. 问题: http://ask.csdn.net/questions/192 ...

  5. Git 基础教程 之 解决合并冲突

    ①  解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ②  提交,合并完成 场景: ①  新分支feature1,修改后,add, commit: ②  切回master后,修改后,add, ...

  6. Linux基础命令训练题型(上)

    1.创建目录/data/dongdaxia,并且在该目录下创建文件dongdaxia.txt,然后在文件dongdaxia.txt里写入内容“inet 192.168.221.132  netmask ...

  7. 从入门到自闭之Python 基础习题训练

    """ name = input(">>>")通过代码来验证name变量是什么数据类型? """ na ...

  8. 【蓝桥杯】非VIP基础题型训练17题 (Python 题解)

    NO.I 基础题型 基础练习汇总 时间 题目 解析 21.12.24 早上 1. A+B问题 练习系统的适应 21.12.24 早上 2. 数组排序 输入输出排序 21.12.24 早上 3. 十六进 ...

  9. mysql数据库基础语句训练题

    ; -- ---------------------------- -- Table structure for course -- ---------------------------- DROP ...

随机推荐

  1. Study 4 —— 数据类型(1)

    基本类型数字字符串布尔 数字 整数 int    在32位机器上,整数的位数为32位,取值范围为-2**31~2**30    在64位机器上,整数的位数为64位,取值范围为-2**63~2**62 ...

  2. u-boot移植(二)---修改前工作:代码流程分析1

    一.代码执行总体流程图 1.1 代码路径 U-boot.lds (arch\arm\cpu) vectors.S (arch\arm\lib) start.S (arch\arm\cpu\arm920 ...

  3. C++ 中 #ifndef, #define, #endif 宏定义

    目的:为了保证包含的内容只被程序(include) 和编译了一次.判断预处理器常量是否已被定义. 预编译将所有头文件(#include"XXX.h")用头文件中的内容来替换,头文件 ...

  4. c#中如何在一个panel中放入窗体

    Form2 f2 = new Form2(); //实例化窗体FORM2 f2.TopLevel = false; //设置为非顶级窗体 f2.FormBorderStyle = FormBorder ...

  5. TCP网络协议通信原理(客户端和服务器端)

    下面直接用代码来说明TCP协议的基础知识: 服务器端代码块: from socket import * from time import ctime ''' 指定主机地址.工作端口号.接收缓存的长度 ...

  6. 变量,id()

    >>> a = 1 >>> print id(a) 2870961640 >>> b = a >>> print id(b) 2 ...

  7. MGR架构~MGR+proxysql(1)

    一 简介:今天咱们来探讨下方案2的实现方式,同时也推荐方案2 二 环境部署 1 proxysql 环境 2 mgr        环境 三  进行配置 1 创建用户 1 添加监控用户并授权       ...

  8. CSS3动画常用demo

    1.border动画 2.闪动动画(一闪一闪亮晶晶,满天都是小星星) .blink { animation: mymove 0.8s infinite; -webkit-animation: mymo ...

  9. 【vim】保存文件没有权限 :w !sudo tee %

    每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 ":w" 命令来保存. 你不需要重新以 root 方式打开文件再进行修改,只需要运行: ...

  10. 【vim】保存文件并退出 :w=:wq

    这两个命令实际上并不完全等价,当文件被修改时两个命令时相同的.但如果未被修改,使用 :x 不会更改文件的修改时间,而使用 :wq 会改变文件的修改时间.