Tesseract_ocr 字符识别基础及训练字库、合并字库
字符训练网上一搜一大堆,但作为一个初学者而言,字符合并网上却写的很笼统
首先,需要 生成的字符集.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 字符识别基础及训练字库、合并字库的更多相关文章
- Tesseract5.0训练字库,提高OCR特殊场景识别率,合并字库(二)
一.准备工作 需要的文件 tif文件和box文件. 如果你打标打好了,但是是分批次打标的,那么可以合并字库,我们最初只需要 tif 和 box 文件,如下: 二.生成对应的 .tr 训练文件 根据不同 ...
- 【CUDA 基础】5.4 合并的全局内存访问
title: [CUDA 基础]5.4 合并的全局内存访问 categories: - CUDA - Freshman tags: - 合并 - 转置 toc: true date: 2018-06- ...
- Java实现 蓝桥杯 算法训练 字符串合并
试题 算法训练 字符串合并 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个字符串,将其合并为一个字符串后输出. 输入格式 输入两个字符串 输出格式 输出合并后的字符串 样例 ...
- [C/C++标准库]_[0基础]_[使用fstream合并文本文件]
场景: 1. 就是合并文本文件,而且从第2个文件起不要合并第一行. 2. 多加了一个功能,就是支持2个以上的文件合并. 3. 问题: http://ask.csdn.net/questions/192 ...
- Git 基础教程 之 解决合并冲突
① 解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ② 提交,合并完成 场景: ① 新分支feature1,修改后,add, commit: ② 切回master后,修改后,add, ...
- Linux基础命令训练题型(上)
1.创建目录/data/dongdaxia,并且在该目录下创建文件dongdaxia.txt,然后在文件dongdaxia.txt里写入内容“inet 192.168.221.132 netmask ...
- 从入门到自闭之Python 基础习题训练
""" name = input(">>>")通过代码来验证name变量是什么数据类型? """ na ...
- 【蓝桥杯】非VIP基础题型训练17题 (Python 题解)
NO.I 基础题型 基础练习汇总 时间 题目 解析 21.12.24 早上 1. A+B问题 练习系统的适应 21.12.24 早上 2. 数组排序 输入输出排序 21.12.24 早上 3. 十六进 ...
- mysql数据库基础语句训练题
; -- ---------------------------- -- Table structure for course -- ---------------------------- DROP ...
随机推荐
- BootStrap的表格加载json数据,并且可以搜索,选择
2018.4.11日更新,8号的时候我推荐去官网下载,但是那个版本不知道为什么我无法使用 $table.bootstrapTable('getSelections'); 无论如何...然后我尝试着更换 ...
- Study 4 —— 数据类型(1)
基本类型数字字符串布尔 数字 整数 int 在32位机器上,整数的位数为32位,取值范围为-2**31~2**30 在64位机器上,整数的位数为64位,取值范围为-2**63~2**62 ...
- Shell + crontab 实现日志压缩归档
Shell + crontab 实现日志压缩归档 crontab # archive the ats log days. */ * * * * root /bin/>& shell #! ...
- 《Two Dozen Short Lessons in Haskell》所有习题的索引
<Two Dozen Short Lessons in Haskell>(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学 ...
- Storm WordCount Topology学习
1,分布式单词计数的流程 首先要有数据源,在SentenceSpout中定义了一个字符串数组sentences来模拟数据源.字符串数组中的每句话作为一个tuple发射.其实,SplitBolt接收Se ...
- JavaScript常用函数总结
1.test()方法 var str = "wzltestreg"; var reg = new RegExp("wzl", ""); al ...
- modbus-vcr介绍
相关链接:modbus-vcr modbus-vcr是一个Ettercap的插件,被使用在缺少数据完整性的工业控制系统协议方面. 这个Ettercap插件执行一个MITM攻击在使用Modbus协议的系 ...
- js委托事件和代理事件
转载出处:https://www.cnblogs.com/liugang-vip/p/5616484.html js中的事件委托或是事件代理详解 起因: 1.这是前端面试的经典题型,要去找工作的小伙伴 ...
- JSON的理解
官方解释: JSON的全称是”JavaScript Object Notation”,单单从字面上的理解就是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式. 理解: ...
- python模块分析之logging日志(四)
前言 python的logging模块是用来设置日志的,是python的标准模块. 系列文章 python模块分析之random(一) python模块分析之hashlib加密(二) python模块 ...