在Ubuntu中配置Python文字识别环境(基于Tesseract OCR)
发表于:2025-10-19 | 分类: IT
字数统计: 1.1k | 阅读时长: 4分钟 | 阅读量:

文字识别(OCR)是处理图像或PDF中文字内容的重要技术,Tesseract OCR是一款开源高效的OCR引擎,结合Python库可快速实现文字提取功能。本文将详细介绍在Ubuntu系统中配置支持中文的Python文字识别环境的步骤,适用于处理图片、PDF等文件中的文字内容。

一、安装Tesseract OCR引擎

Tesseract是核心OCR引擎,需先安装其基础程序。

  1. 打开终端,更新系统包列表:

    1
    sudo apt update
  2. 安装Tesseract OCR引擎:

    1
    sudo apt install tesseract-ocr

这一步将安装Tesseract的核心程序,支持基础的文字识别功能(默认包含英文语言包)。

二、安装并配置中文语言包

默认安装的Tesseract不包含中文语言包,需单独安装并修正文件名(避免因命名格式导致识别失败)。

  1. 安装中文简体语言包:

    1
    sudo apt install tesseract-ocr-chi-sim

    (可选)若需识别繁体中文,可额外安装:

    1
    sudo apt install tesseract-ocr-chi-tra
  2. 修正语言包文件名(关键步骤):

Tesseract对语言包的文件名格式有严格规范,但实际使用中,其对文件名的识别存在一定兼容性差异:安装后中文语言包默认文件名为下划线格式(chi_sim.traineddata 对应简体,chi_tra.traineddata 对应繁体),但部分场景下程序可能要求使用连字符格式(chi-sim.traineddatachi-tra.traineddata)。为避免因文件名格式导致识别失败,建议复制一份以连字符命名的文件,从而兼容不同场景下的调用需求。:

1
2
3
4
5
# 修正简体中文包文件名
sudo cp /usr/share/tesseract-ocr/4.00/tessdata/chi_sim.traineddata /usr/share/tesseract-ocr/4.00/tessdata/chi-sim.traineddata

# (可选)修正繁体中文包文件名
sudo cp /usr/share/tesseract-ocr/4.00/tessdata/chi_tra.traineddata /usr/share/tesseract-ocr/4.00/tessdata/chi-tra.traineddata

三、验证Tesseract安装与语言包配置

安装完成后,需确认引擎和语言包是否正常生效。

  1. 检查Tesseract版本(验证引擎安装):

    1
    tesseract --version

    若输出类似tesseract 4.0.0的版本信息,说明引擎安装成功。

  2. 检查已安装的语言包(验证中文支持):

    1
    tesseract --list-langs

    若输出包含chi-sim(简体中文)和chi-tra(繁体中文),说明中文语言包配置成功。

四、配置TESSDATA_PREFIX环境变量

Tesseract需要通过TESSDATA_PREFIX环境变量定位语言包目录,需手动配置以确保引擎能正确找到语言包。

  1. 编辑环境变量配置文件(以bash为例):

    1
    echo 'export TESSDATA_PREFIX=/usr/share/tesseract-ocr/4.00/' >> ~/.bashrc

    说明:TESSDATA_PREFIX需指向tessdata目录。

  2. 使环境变量生效:

    1
    source ~/.bashrc

(若使用zsh,需将命令中的~/.bashrc替换为~/.zshrc

五、安装Python相关依赖库

通过Python调用Tesseract需安装对应的接口库,同时为处理PDF文件需补充相关工具库。

  1. 安装核心Python库:

    1
    2
    pip install pytesseract PyPDF2 pdf2image pdfplumber opencv-python pillow

    各库作用说明:

    • pytesseract:Python调用Tesseract OCR的接口库;

    • PyPDF2/pdfplumber:用于读取PDF文件(支持文本型PDF直接提取);

    • pdf2image:将图片型PDF转换为图片格式(以便Tesseract识别);

    • opencv-python:主要用于计算机视觉任务,可实现图像处理、视频分析、目标检测、边缘识别等复杂功能,是机器视觉领域的常用库;

    • pillow:是轻量易用的 Python 图像库,核心用于基础图像操作,包括图像的读写、裁剪、尺寸调整、色彩调整及简单滤镜效果实现。

  2. (可选)若pdf2image运行时提示缺少依赖,需安装图片处理工具:

    1
    sudo apt install poppler-utils

六、注意事项

  1. 环境变量生效范围:上述配置仅对当前用户生效,若需全局生效,可将环境变量写入/etc/profile(需管理员权限)。

  2. 虚拟环境问题:若在Python虚拟环境中使用,需在虚拟环境激活后重新执行source ~/.bashrc(或手动设置TESSDATA_PREFIX)。

  3. 权限问题:确保运行程序的用户对/usr/share/tesseract-ocr/4.00/tessdata/目录及语言包文件有读取权限(默认权限已满足,无需额外配置)。

总结

通过以上步骤,即可在Ubuntu系统中完成支持中文的Python文字识别环境配置。基于Tesseract OCR和Python库,可实现图片、PDF等文件的文字提取功能,为后续的文本分析、内容处理等场景奠定基础。

加关注

关注公众号“生信之巅”。

生信之巅微信公众号 生信之巅小程序码
下一篇:
CentOS 7 升级 GCC 教程(以 GCC 9 为例)