news 2026/5/1 4:45:25

[Python] 使用 Tesseract 实现 OCR 文字识别全流程指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Python] 使用 Tesseract 实现 OCR 文字识别全流程指南

在图像处理、文档数字化、发票识别等场景中,OCR(Optical Character Recognition,光学字符识别)技术应用广泛。而在 Python 中,借助开源工具Tesseract,我们可以快速构建强大的文字识别系统。

本文将手把手带你了解如何使用 Python 与 Tesseract 配合进行 OCR 文字识别,从环境搭建、基本使用、识别优化,到多语言支持与图像预处理策略,全面覆盖开发所需知识点。


一、什么是 Tesseract?

Tesseract 是由 Google 维护的开源 OCR 引擎,具备如下特点:

  • 支持 100 多种语言

  • 支持垂直文本、右到左文字(如阿拉伯文、日文)

  • 可训练自定义字体模型

  • 在多种平台上表现优秀(Windows/Linux/Mac)

它本身是一个命令行工具,但通过 Python 的pytesseract包,我们可以非常方便地调用它。


二、环境准备

1. 安装 Tesseract

Windows
  1. 前往 https://github.com/UB-Mannheim/tesseract/wiki 下载对应版本

  2. 安装后记下安装路径(如:C:\Program Files\Tesseract-OCR\tesseract.exe

macOS
brew install tesseract
Linux (Debian/Ubuntu)
sudo apt update sudo apt install tesseract-ocr

2. 安装 Python 依赖

pip install pytesseract pillow opencv-python

三、基本识别示例

以下是一个最基础的图像文字识别示例:

from PIL import Image import pytesseract # Windows 特别注意路径 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' img = Image.open('example.png') text = pytesseract.image_to_string(img, lang='eng') print(text)

如果是 Linux/macOS 系统,可以省略tesseract_cmd设置。


四、支持中文 OCR

默认的 Tesseract 安装中可能未包含中文支持。你需要额外安装语言包:

# Ubuntu 系统 sudo apt install tesseract-ocr-chi-sim # Windows 可通过官网下载 chi_sim.traineddata 文件放入 tessdata 目录

识别中文示例:

text = pytesseract.image_to_string(img, lang='chi_sim')

五、图像预处理优化识别效果

OCR 的识别效果很大程度依赖于图像质量,下面是常见预处理方法:

import cv2 # 加载图像 img = cv2.imread('example.png') # 转为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化处理 _, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY) # 去噪(可选) blur = cv2.medianBlur(thresh, 3) # OCR 识别 text = pytesseract.image_to_string(blur, lang='chi_sim') print(text)

六、识别区域与数据提取

有时候我们不需要整张图的文字,而是某个区域或字段(如身份证号码、发票编号)。

使用裁剪识别

box = (100, 200, 400, 250) # x1, y1, x2, y2 cropped = img.crop(box) text = pytesseract.image_to_string(cropped, lang='eng')

获取位置信息

data = pytesseract.image_to_data(img, lang='eng', output_type=pytesseract.Output.DICT) for i in range(len(data['text'])): if int(data['conf'][i]) > 60: # 置信度过滤 print(f"Word: {data['text'][i]}, Pos: ({data['left'][i]}, {data['top'][i]})")

七、常见问题与优化建议

问题原因解决方案
识别结果乱码字体不清晰 / 语言包缺失安装正确语言包,增强对比度
中文识别效果差图像质量不高灰度+二值化预处理
边框或水印干扰识别噪声过多尝试裁剪目标区域

八、进阶:批量识别、PDF、表格结构识别

批量识别文件夹图片

import os for file in os.listdir('images'): img_path = os.path.join('images', file) text = pytesseract.image_to_string(Image.open(img_path), lang='eng') print(f'{file}:\n{text}\n')

PDF OCR(需安装pdf2image

pip install pdf2image sudo apt install poppler-utils # Linux
from pdf2image import convert_from_path pages = convert_from_path('document.pdf') for i, page in enumerate(pages): text = pytesseract.image_to_string(page, lang='chi_sim') print(f'Page {i+1}:\n{text}\n')

总结

通过 Python + Tesseract,我们可以构建出灵活、可扩展的 OCR 系统。掌握图像预处理、语言包配置、区域提取等技巧,将显著提升识别精度与实用性。

如果你在 Tesseract 使用中遇到实际问题,欢迎评论区交流或私信讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:53:03

Langchain-Chatchat构建电力行业规程查询系统案例

基于 Langchain-Chatchat 构建电力行业智能规程查询系统 在电力系统运行维护中,技术人员每天都要面对大量技术标准、安全规程和操作手册。比如《电力安全工作规程》这类文件动辄上百页,查找“高压设备停电检修的安全措施”可能需要翻阅多个章节&#xff…

作者头像 李华
网站建设 2026/5/1 7:32:33

Cisco 300-515 認證考試介紹(CCNP Service Provider 專項

背景概述思科(Cisco)旗下的 300-535 Automating and Programming Cisco Service Provider Solutions(SPAUTO)認證考試,是獲取 CCNP Service Provider 與 Certified DevNet Professional 等高級專業認證的核心組成部分。…

作者头像 李华
网站建设 2026/5/1 7:10:54

70、Windows 7系统维护与问题解决全攻略

Windows 7系统维护与问题解决全攻略 1. 系统清理 1.1 程序清理与系统还原清理 系统中存在许多不再使用的程序和多余的系统还原点、影子副本,占用了大量磁盘空间。程序清理可以移除不用的程序,系统还原和影子副本清理则能删除除最新还原点和影子副本之外的所有内容。 在进…

作者头像 李华
网站建设 2026/4/18 17:51:21

71、Windows 7 系统问题检测、解决与备份指南

Windows 7 系统问题检测、解决与备份指南 1. 系统诊断框架介绍 Windows 7 内置了强大的诊断框架,旨在监控操作系统和计算机硬件组件。该框架包含多个组件,具体如下: | 组件名称 | 功能描述 | | — | — | | 应用兼容性警报 | 警告可能不兼容的程序 | | 磁盘故障监控 |…

作者头像 李华
网站建设 2026/5/1 6:54:15

72、Windows 7 数据备份与恢复指南

Windows 7 数据备份与恢复指南 在使用 Windows 7 操作系统时,数据备份和恢复是保障系统稳定和数据安全的重要环节。本文将详细介绍如何创建手动还原点、配置自动备份、管理备份设置以及在遇到问题时如何进行数据恢复。 1. 创建手动还原点 为开启系统保护的所有驱动器创建手…

作者头像 李华
网站建设 2026/5/1 6:25:45

84、网络安全技术全解析:从访问控制到加密工具

网络安全技术全解析:从访问控制到加密工具 1. 文件完整性检查配置 在进行文件完整性(更改)检查时,你可能需要配置要忽略的文件列表。例如,若有一个自定义应用程序将其日志文件写入 /var/log/customapp.log ,你可以在相关配置文件的 <syscheck> 部分添加以下行…

作者头像 李华