Python中使用tesserocr库进行图文识别


一、tesserocr简介

tesserocr是一个简单、Pillow友好、基于tesseract-ocr API封装的用于光学字符识别(OCR,Optical Character Recognition)的Python库。在使用tesserocr之前需要先安装tesseract。


二、下载安装

提示:以下以在Wondiws中安装为例,其他环境中的安装参考【参考文献1】

  1. 使用tesserocr需要先安装tesseract,进入下载页面,根据自己的需求选择对应安装包
    在这里插入图片描述

  2. 运行.exe文件进行安装,其中可根据自己需求勾选Additional language data(download)选项或其展开后的选项来安装OCR支持的其他语言包(需要联网,内网环境的话见后续章节【四、问题记录】)
    在这里插入图片描述

  3. 配置环境变量
    1>将tesseract的安装目录(tesseract.exe所在目录)添加到系统变量path
    在这里插入图片描述
    2>新建系统变量TESSDATA_PREFIX,将tesseract安装目录下的tessdata目录添加到该变量
    在这里插入图片描述
    3>在命令提示符窗口中输入tesseract --version检查确保已正常安装tesseract并完成环境变量的配置


三、简单使用

提示:以下以在Wondiws中Python3.8环境下使用为例

  1. 安装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
    
  2. 简单使用

    # 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

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值