tesseract 安装及使用

1.简介
OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。在读取和处理图像、图像相关的机器学习以及创建图像等任务中,tesseract的表现一直非常出色。

2.下载
tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/,打开网站,根据自己的操作系统下载不同的版本。
在这里插入图片描述

我的选择windows 64位,V4.0下载.
3.安装
双击安装软件,安装过程按照下面的图片指示进行。
注意:选择安装语言包,包含英文(默认安装)、中文、数学公式等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成后打开软件安装的目录。
在这里插入图片描述

4.环境配置
安装完成之后,只能在软件所在的目录中才能够使用该软件,为了能将该软件在cmd下任意目录中调用,需要把 C:\Tesseract-OCR\tessdata 配置到系统环境变量中。

我的计算机->右键属性打开界面->点击高级系统设置->在打开的系统属性界面,点击"环境变量"->在环境变量界面选择"系统变量"中选中path,然后点下面的编辑,打开编辑环境变量界面,把 C:\Tesseract-OCR 添加到变量中,点"确定"。
在这里插入图片描述
配置完成,打开命令终端,输入:tesseract -v,可以看到版本信息。

在这里插入图片描述
如果出现报错,估计是环境变量没有配置好。

5.使用
在一个文件夹下,准备一张带有字符的图片。
在这里插入图片描述
在该文件夹下打开cmd命令,命令行输入:
格式: tesseract 图片名称 生成的结果文件的名称
例子:tesseract image.png str.txt
在这里插入图片描述
运行命令之后,会生成str.txt文件,打开该文件,可以查看识别的字符。
在这里插入图片描述

6.安装pytesseract
如果需要在Python上识别图片,需要安装Python版本的pytesseract库,安装pytesseract库之前,需要先 Pillow 库,使用命令:pip install Pillow。
在这里插入图片描述
接着再安装 pip install pytesseract,安装成功。
在这里插入图片描述

7.处理规范文字案例
新建一个test.png图片,保存在当前程序目录下。
在这里插入图片描述
例子:

import pytesseract

from PIL import Image

#如果不修改pytesseract.py文件,可以在程序中指定tesseract_cmd的运行文件

#tesseract_cmd = 'C:/Tesseract-OCR/tesseract.exe'

image = Image.open('test.png')

text = pytesseract.image_to_string(image)

print(text)

报错:
在这里插入图片描述
解决方案:需要修改 C:\Python35\Lib\site-packages\pytesseract下的 pytesseract.py 文件。
在这里插入图片描述

修改pytesseract.py文件里的tesseract_cmd 值。
在这里插入图片描述
tesseract_cmd = ‘C:\Tesseract-OCR\tesseract.exe’
在这里插入图片描述

修改完之后,运行程序,如下:
在这里插入图片描述
8.识别简易的登录验证码
大多数网站生成的验证码图片都具有以下属性:

1.它们是服务器端的程序动态生成的图片。验证码图片的 src 属性可能和普通图片不太一 样,比如 <img src="WebForm.aspx?id=8AP85CQKE9TJ">
,但是可以和其他图片一样进行下载和处理。

2.图片的答案存储在服务器端的数据库里。

3.很多验证码都有时间限制,如果你太长时间没解决就会失效。

4.常用的处理方法就是,首先把验证码图片下载到硬盘里,清理干净,然后用 Tesseract 处理图片,最后返回符合网站要求的识别结果。

例子:登录验证码图片
在这里插入图片描述

程序:

import pytesseract

from PIL import Image

#如果不修改pytesseract.py文件,可以在程序中指定tesseract_cmd的运行文件

#tesseract_cmd = 'C:/Tesseract-OCR/tesseract.exe'

image = Image.open('yzm1.png')

text = pytesseract.image_to_string(image)

print(text)

运行结果:
在这里插入图片描述
通过例子,可以看出,识别是有误差的,这就需要机器的自我学习,需要我们训练Tesseract。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值