Tesseract OCR V5.0安装教程(Windows)

官方链接:

官方网站: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"

六、补充链接:

提高识别率方式--官方链接

你可能感兴趣的:(Tesseract OCR V5.0安装教程(Windows))