Step1.安装Tesseract-OCR

  1. https://digi.bib.uni-mannheim.de/tesseract/ 选择一个版本下载,我这里用的是 4.00.00dev
  2. 配置环境变量(网上教程很多,大家随便选篇就好)
  3. 在cmd输入 tesseract --version 测试是否配置成功

成功则会输出如下类似信息

Tesseract-OCR测试环境变量

如果打算将程序打包成exe,可以不配置环境变量并参考Step3

Step2.调用Tesseract-OCR

  1. 在cmd用 pip3 install pytesseract 命令安装 pytesseract 模块
  2. 新建个文件调用

import pytesseract
from PIL import Image


image = Image.open("test.jpg")
text = pytesseract.image_to_string(image, lang='chi_sim')
print(text)

  • Image.open()括号内填你要识别的图片文件名
  • lang参数用来指定识别语言,比如英语就改成'eng'

Python调用Tesseract-OCR示例

Step3.打包成exe后依然可以调用

Tesseract-OCR配合 pytesseract 可以很方便的调用实现图片识别。

但是当把写好的程序打包成exe之后换到一台没有配置过环境变量的电脑上便出现了问题,原因出在 pytesseract 模块

这是便要修改 pytesseract 模块的代码。

路径一般是:

C:\Users\你的用户名\AppData\Local\Programs\Python\Python37\Lib\site-packages\pytesseract

编辑文件:pytesseract.py,找到

tesseract_cmd = 'tesseract'

将其修改为

tesseract_cmd = os.path.abspath(os.path.realpath(os.path.dirname(__file__))) + '\\Tesseract-OCR\\tesseract.exe'

Python打包后修改pytesseract模块实现调用

修改之后的意思就是,不要用 tesseract 命令直接调用Tesseract-OCR(因为我们配置过环境变量可以直接调用,但是别的电脑没有配置过,所以无法调用),而是调用软件所在的目录下的Tesseract-OCR文件夹中tesseract.exe(可以根据你的实际目录名字进行修改)

修改完后,将Tesseract-OCR整个软件复制到源代码目录下,或打包好后复制到程序目录下便可。

程序打包不能使用-F打包成一个单独exe,而是使用参数-D

因为打包成一个单独exe后,在程序运行时,会把模块解压到临时文件Temp目录,而我们修改的路径是取文件自身所在路径+'Tesseract-OCR\tesseract.exe'。

这样一来便调用不到Tesseract-OCR了。