官方链接:
官方网站:https://github.com/tesseract-ocr/tesseract
官方文档:https://github.com/tesseract-ocr/tessdoc
语言包地址:https://github.com/tesseract-ocr/tessdata
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
一、介绍
Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。
二、安装过程
1、 下载地址在本文章顶部,注意尽量不要下载带dev,alpha,beta等版本,这些版本不稳定,也可能是测试版本。建议下载最新稳定版本:
tesseract-ocr-w64-setup-v5.0.0.20190623.exe。
2、 安装过程可以附带选择要安装的语言包,如下简体中文,之后自动会从服务器下载该语言包下来。(这里不建议勾选下载语言包,因为速度太慢了,教程后面会介绍怎么拓展语言包。如果有开梯子的话,请忽略括号内这段话)
3、 设置环境变量
4、检查查看是否安装成功
三、拓展语言包
在文章顶部找到语言包地址的链接,下载需要的的语言包,如下图,红框内为中文简体语言包,下载后将该包直接放在程序安装目录的tessdata
文件夹里面即可。
命令行使用 tesseract --list-langs
命令可查看当前软件支持的语言:
四、python实例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '孙思锴'
import pytesseract
from PIL import Image
file = r"E:\桌面\静夜思.png"
# 建议图像识别前,先对图像进行灰度化和 二值化,以提高文本识别率
# image = Image.open(file)
# Img = image.convert('L') # 灰度化
# #自定义灰度界限,这里可以大于这个值为黑色,小于这个值为白色。threshold可根据实际情况进行调整(最大可为255)。
# threshold = 180
# table = []
# for i in range(256):
# if i < threshold:
# table.append(0)
# else:
# table.append(1)
# photo = Img.point(table, '1') #图片二值化
# #保存处理好的图片
# photo.save(newfile)
image = Image.open(file)
# 解析图片,lang='chi_sim'表示识别简体中文,默认为English
# 如果是只识别数字,可再加上参数config='--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789'
content = pytesseract.image_to_string(image, lang='chi_sim')
print(content)
识别效果一般,但是有Tesseract优点,那就是语言包可以进行训练,建议先训练再使用会好一点。
五、问题总结:
如果运行后出现下面提示,找不到tesseract路径:
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.
解决方案有两种:
1、 将tesseract安装目录添加至电脑的环境变量。
2、 在代码中指定tesseract的路径
pytesseract.pytesseract.tesseract_cmd = r"D:\Program Files\Tesseract-OCR\tesseract.exe"