前言
大家在学习爬虫验证码识别时,有时候会用到OCR识别,而tesseracr库即为对tesseract做的python封装。因此,我们需要安装tesseract。
在安装过程中,我遇到了一些问题,在这里分享给大家。本篇文章主要是讲win10环境下,tesserocr的安装。
安装步骤
1、安装tesseract
在win10下,安装tesseract可以进入该网址进行下载 https://digi.bib.uni-mannheim.de/tesseract/
其中,文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本。例如可以选择下载tesseract-ocr-setup-3.05.02-20180621.exe。
下载完成后,打开下载文件,其中可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,以便OCR识别多国语言。
2、配置环境
打开安装目录并拷贝
【此电脑】——【属性】——【环境变量】
用户变量和系统变量的两个【Path】均需添加刚才拷贝的Tesseract 的安装路径。
在【系统变量】新建一个变量名称为:TESSDATA_PREFIX,值为:刚才路径加上 \tessdata
3、安装tesseracr包
- 尝试pip安装:
pip install tesserocr pillow
- 如果不成功,则尝试通过.whl文件安装。
下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases
找到与tesseract对于版本的tesserocr
将该文件移动到python的包文件夹里,比如D:\Anaconda3\Scripts,如果需要装在虚拟环境,应将其放在虚拟环境python的包文件夹里,然后输入以下命令:
pip install tesserocr-2.3.1-cp37-cp37m-win_amd64.whl
测试代码:
可以在该网址下载图片https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png
# 图形验证码的识别
import tesserocr
from PIL import Image
image = Image.open('code.png')
# 转为灰度图像
image = image.convert('L')
# 二值化
threshold = 110
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
image = image.point(table, '1')
image.show()
result = tesserocr.image_to_text(image)
print(result)
输出:
如果报错,则将tesseract文件夹里的tessdata复制到刚才的Scripts文件夹中。
小结
tesserocr也只是识别手段的一种,如果需要高精度的识别,可以尝试TensorFlow实现深度学习模型,通过训练模型来识别图形验证码。