Tesseract-OCR使用教程

一、Tesseract-OCR安装

1,Mac下安装

brew install automake autoconf libtool autoconf-archive pkgconfig leptonica icu4c gcc pango leptonica 
brew info tesseract 
brew install tesseract

2,Linux下安装

安装并编译Tesseract

1.下载安装编译要用到的文件。(此网盘tesseract为3.0版本)

在安装tesseract时,需要下载很多文件,网上有的博客中给了下载链接,但是好多都需要翻墙才能下载,在这里我把所需要的文件下载到了网盘里供大家下载,https://pan.baidu.com/s/1mj6YTIw   提取码是:95p5

注:一定要先把这些文件下载到本地再进行后面的安装,因为后面会用到这些文件。

2.安装相应lib。

打开linux下的命令行,分别输入以下命令:

sudo apt-get install libpng12-dev libjpeg62-dev libtiff5-dev libtool gcc g++ automake

3.下载安装leptonica。

在linux命令行中输入:

wget http://www.leptonica.org/source/leptonica-1.71.tar.gz

执行完毕后就得到了leptonica-1.71.tar.gz压缩文件,解压:

tar -zxvf leptonica-1.71.tar.gz 
./configure & make &make install

4.下载安装tesseract。

安装编译tesseract所需的tesseract-3.04.00文件。

进入到该文件目录下:

cd tesseract-3.04.00

分别执行以下指令:

sudo ./autogen.sh & ./configure & make & make install &ldconfig

5.安装中英文语言包。

将语言包chi_sim.traineddata、eng.traineddata、eng.traineddata.part三个文件,并把它们放到tessdata文件夹中。

cp chi_sim.traineddata /usr/local/share/tessdata 
cp eng.traineddata /usr/local/share/tessdata 
cp eng.traineddata.part /usr/local/share/tessdata

6.简单验证测试

testing目录下

tesseract phototest.tif result -l eng

3,windows下安装

1.下载并安装Tesseract

Index of /tesseract

其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本

2、配置环境变量

将安装路径添加到环境变量path中


二、安装遇到的坑

1.在使用tesseract命令行进行测试时,报以下的错误

Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.

Failed loading language 'eng'

Tesseract couldn't load any languages!

Could not initialize tesseract.

报错是意思是缺少环境变量TESSDATA_PREFIX,导致无法加载任何语言,就不能初始化tesseract。

解决的方法也很简单,在环境变量中添加TESSDATA_PREFIX=/dir/dir/tessdata

2.使用pytesseract时,出现以下错误

Traceback (most recent call last):

  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 170, in run_tesseract

    proc = subprocess.Popen(cmd_args, **subprocess_args())

  File "D:\Python36\lib\subprocess.py", line 709, in __init__

    restore_signals, start_new_session)

  File "D:\Python36\lib\subprocess.py", line 997, in _execute_child

    startupinfo)

FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "D:/python/20180911.py", line 4, in

    text = pytesseract.image_to_string(Image.open(r'D:\chromeDownload\image.png'))

  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 294, in image_to_string

    return run_and_get_output(*args)

  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 202, in run_and_get_output

    run_tesseract(**kwargs)

  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 172, in run_tesseract

    raise TesseractNotFoundError()

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

解决方案如下:

pytesseract安装后,在python的Lib目录下site-packges下会生成一个pytesseract文件夹,文件夹中找到pytesseract.py,路径为:D:\Python36\Lib\site-packages\pytesseract,使用notepad之类软件打开pytesseract.py,找到如下两行:

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY

tesseract_cmd = 'tesseract'

将tesseract_cmd = 'tesseract'修改为:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

3.在安装完Tesseratc以后,进行测试,然后出现以下错误:

在网上看了一下,有的人说是leptonica的问题,可以输入命令:

tesseratc -v查看,只会显示如下信息:

tesseract 3.02.02

leptonica-1.71

zlib 1.2.3

就是缺少相关可以识别图片的依赖包,解决方法

1、yum install libjpeg-devel

2、yum install libpng-devel

3、进入leptonica的安装文件夹重新编译

4、./configure

5、make

6、make install

三、jTessBoxEditor安装

1.安装 jTessBoxEditor

2.安装jdk1.8,必须是1.8及以上

四、jTessBoxEditor使用、训练

  • 训练的大致步骤:
  • 获取样本文件 -> Merge样本文件 –> 生成BOX文件 -> 定义字符配置文件 -> 字符矫正 -> 合成traineddata -> 将生成的traineddata放入tessdata中

1、将图片转换成tif格式,并生成box文件。

可以通过画图,然后另存为tif即可。更改图片名字,这个是有要求的

【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

【语法】:lang为语言名称,fontname为字体名称,num为序号;在tesseract中,一定要注意格式

比如我们要训练自定义字库 mjorcen字体名normal

那么我们把图片文件重命名 mjorcen.normal.exp0.jpg在转tif。

生成box文件。

tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox

box文件和对应的tif一定要在相同的目录下,不然后面打不开。

2、定义字符配置文件

新建一个font_properties文件

里面内容写入 normal 0 0 0 0 0 表示默认普通字体

【语法】:fontname为字体名称,italic为斜体,bold为黑体字,

fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用 

3、打开jTessBoxEditor矫正错误并训练

打开train.bat

找到tif图,打开,并校正。

4、训练。并合成traineddata 文件

只要在命令行输入命令即可。

a. 使用修改后的box文件来训练

tesseract mjorcen.normal.exp0.png mjorcen.normal.exp0 nobatch box.train

b. 提取字符

unicharset_extractor mjorcen.normal.exp0.box

c. 生成特征1

shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr

d. 生成特征2

mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr

e. 生成特征3

cntraining mjorcen.normal.exp0.tr

f. 此时会发现生成了几个新文件,将五个文件改名字,加上前缀 "normal."

rename

j.合并五个文件,生成traineddata文件

combine_tessdata normal.

5、测试训练后的traineddata 文件

1、把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中

2、识别命令:

tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l normal

3、效果

对比:

五、Python结合Tesseract

  • 普通纯字母数字
  • 图像二值化
  • 去除图像噪点
  • tesseract识别

Python验证码识别图像二值化去除噪点(tesseract识别数字字母)

灰度、二值化、tesserocr验证码识别

python 对验证码图片进行降噪处理

python的Image图像处理对P I i 模式的理解

Python图像处理PIL各模块详细介绍

图像的模式,常见的mode 有 “L” (luminance) 表示灰度图像,“RGB”表示真彩色图像,和 “CMYK” 表示出版图像,表明图像所使用像素格式。如下表为常见的nodes描述:

modes

描述

1

1位像素,黑和白,存成8位的像素

L

8位像素,黑白

P

8位像素,使用调色板映射到任何其他模式

RGB

3× 8位像素,真彩

RGBA

4×8位像素,真彩+透明通道

CMYK

4×8位像素,颜色隔离

YCbCr

3×8位像素,彩色视频格式

I

32位整型像素

F

32位浮点型像素

如何识别图片中的表格数据

Python+OpenCV教程12:腐蚀与膨胀

python-opencv函数threshold、adaptiveThreshold、Otsu 二值化

GitHub - ex2tron/OpenCV-Python-Tutorial

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值