文章目录
一、tesserocr简介
tesserocr是一个简单、Pillow友好、基于tesseract-ocr API封装的用于光学字符识别(OCR,Optical Character Recognition)的Python库。在使用tesserocr之前需要先安装tesseract。
二、下载安装
提示:以下以在Wondiws中安装为例,其他环境中的安装参考【参考文献1】
-
使用tesserocr需要先安装tesseract,进入下载页面,根据自己的需求选择对应安装包
-
运行.exe文件进行安装,其中可根据自己需求勾选Additional language data(download)选项或其展开后的选项来安装OCR支持的其他语言包
(需要联网,内网环境的话见后续章节【四、问题记录】)
-
配置环境变量
1>将tesseract的安装目录(tesseract.exe所在目录)添加到系统变量path
2>新建系统变量TESSDATA_PREFIX,将tesseract安装目录下的tessdata目录添加到该变量
3>在命令提示符窗口中输入tesseract --version
检查确保已正常安装tesseract并完成环境变量的配置
三、简单使用
提示:以下以在Wondiws中Python3.8环境下使用为例
-
安装tesserocr、pillow库
pip install tesserocr pillow
直接pip install tesserocr可能会失败,可以下载对应.whl文件进行安装(注意选择和自己的python版本以及系统匹配的文件,下面.whl文件的路径需替换为自己的实际路径)
pip install E:\pypi\tesserocr\tesserocr-2.6.0-cp38-cp38-win_amd64.whl
-
简单使用
# encoding=utf-8 """ 文字识别工具类 """ import tesserocr from PIL import Image class TesserOCRUtil: @staticmethod def get_languages(): """ 获取当前环境中支持的语言 :return: 包含两个元素的元组,分别为tessdata父级目录路径、当前环境中支持的语言集合 """ return tesserocr.get_languages() @staticmethod def image_to_text(img: Image, lang: str = 'chi_sim'): """ 从图片中识别文字 :param img: 图片 :param lang: 图片中的语言 :return: 识别出的文字内容 """ return tesserocr.image_to_text(img, lang) @staticmethod def file_to_text(img_path: str, lang: str = 'chi_sim'): """ 从文件中识别文字 :param img_path: 文件路径(包含中文会报错) :param lang: 文件中的语言 :return: 识别出的文字内容 """ return tesserocr.file_to_text(img_path, lang) if __name__ == '__main__': # print(TesserOCRUtil.get_languages()) # image = Image.open('2024-03-08_111808.png') # image = Image.open('chinese.png') # print(TesserOCRUtil.image_to_text(image, 'chi_sim')) print(TesserOCRUtil.file_to_text('chinese.png', 'chi_sim'))
四、问题记录
1.内网环境安装语言包
方法一:点击此处下载需要的语言包放到安装目录下的tessdata目录下
方法二:如果想要安装所有支持的语言包嫌一个个下载麻烦,也可直接在外网环境安装所有语言包把外网环境的拷贝过来
2.从文件中识别文字报错RuntimeError: Failed to read picture
遇到该问题可能是因为文件路径或文件名中存在中文,换成全英文或许可解决该问题。
五、参考文献
【1】sirfz/tesserocr: A Python wrapper for the tesseract-ocr API
【2】语言包下载地址
【3】tesserocr · PyPI