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。