Python pytesseract【OCR引擎库】 简介

想全面了解DeepSeek的看过来 【包邮】DeepSeek全攻略 人人需要的AI通识课 零基础掌握DeepSeek的实用操作手册指南【限量作者亲笔签名版售完即止】

玩转DeepSeek这本就够了 【自营包邮】DeepSeek实战指南 deepseek从入门到精通实用操作指南现代科技科普读物AI普及知识读物人工智能使用教程中小学读物京东超级618

Python初学者的入门教程 动手学深度学习 PyTorch版 李沐和阿斯顿·张等强强联合之作!机器学习、深度学习、AI领域重磅教程! deepseek机器学习(异步图书出品)

程序员要最先成为AI的主人 AI高手速成 DeepSeek让你工作变轻松 deepseek从入门到精通实战指南人工智能 异步图书出品


pytesseract 是一个 Python 封装库,用于调用 Google 的 Tesseract-OCR 引擎,实现光学字符识别(OCR)功能。它允许开发者直接从 Python 中提取图像中的文字内容,支持多种语言(包括中文)。


核心特点

  1. 跨平台支持
    Windows/macOS/Linux 均可使用。
  2. 多语言识别
    支持 100+ 种语言(需安装对应语言包)。
  3. 简单易用
    只需几行代码即可完成 OCR 识别。
  4. 与 PIL/Pillow/OpenCV 兼容
    可直接处理常见的图像对象。

安装步骤

1. 安装 Tesseract OCR 引擎
  • Windows
    下载安装程序:UB-Mannheim/tesseract

  • macOS

    bash 复制代码
    brew install tesseract
  • Linux (Debian/Ubuntu)

    bash 复制代码
    sudo apt install tesseract-ocr
2. 安装语言包(以中文为例)
bash 复制代码
# Linux
sudo apt install tesseract-ocr-chi-sim  # 简体中文
sudo apt install tesseract-ocr-chi-tra  # 繁体中文

# macOS/Windows 需在安装时勾选或手动下载语言包
3. 安装 Python 库
bash 复制代码
pip install pytesseract pillow

基础用法示例

示例 1:识别图像中的文字
python 复制代码
from PIL import Image
import pytesseract

# 设置 Tesseract 路径(Windows 可能需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 打开图像并识别
image = Image.open("text_image.png")
text = pytesseract.image_to_string(image, lang='chi_sim')  # 使用简体中文

print("识别结果:")
print(text)
示例 2:识别 OpenCV 处理的图像
python 复制代码
import cv2
import pytesseract

# 读取图像 + 灰度化
img = cv2.imread("text_image.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# OCR 识别
text = pytesseract.image_to_string(gray, lang='eng+chi_sim')  # 中英文混合
print(text)

高级功能

1. 获取文字位置与置信度
python 复制代码
from PIL import Image
import pytesseract

image = Image.open("text_image.png")
data = pytesseract.image_to_data(image, lang='eng', output_type=pytesseract.Output.DICT)

# 打印每个检测到的单词信息
for i in range(len(data['text'])):
    if data['text'][i].strip():
        print(f"文本: {data['text'][i]}")
        print(f"位置: (x={data['left'][i]}, y={data['top'][i]})")
        print(f"置信度: {data['conf'][i]}\n")
2. 识别多语言混合文本
python 复制代码
text = pytesseract.image_to_string(image, lang='eng+chi_sim+jpn')  # 中英日混合
3. 调整 OCR 参数
python 复制代码
# 配置参数示例
config = r'--oem 3 --psm 6 -c preserve_interword_spaces=1'
text = pytesseract.image_to_string(image, config=config)
  • oem: OCR 引擎模式(0~3,推荐 3)
  • psm : 页面分割模式(常用值):
    • 3 = 自动分页(默认)
    • 6 = 假设为统一文本块
    • 7 = 单行文本

图像预处理技巧

提高识别准确率的常用预处理方法:

python 复制代码
import cv2

img = cv2.imread("text_image.png")

# 1. 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 2. 二值化
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)

# 3. 降噪
denoised = cv2.fastNlMeansDenoising(thresh, h=10)

# 4. 识别处理后的图像
text = pytesseract.image_to_string(denoised, lang='chi_sim')

常见问题解决

  1. 路径错误 (Windows):

    取消注释并设置 tesseract_cmd 路径:

    python 复制代码
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
  2. 语言包缺失

    下载语言包(.traineddata 文件)放入 tessdata 目录(通常在 Tesseract 安装路径下)。

  3. 识别率低

    • 对图像进行预处理(灰度化/二值化/降噪)
    • 调整 psmoem 参数
    • 使用更高分辨率的清晰图像

应用场景

  • 文档扫描件文字提取
  • 验证码识别(简单类型)
  • 车牌识别
  • 图像中的多语言翻译
  • 自动化数据录入

通过结合 OpenCV 进行图像预处理,pytesseract 能显著提升复杂场景下的 OCR 准确率。

相关推荐
南境十里·墨染春水3 小时前
C++ 工厂模式:从入门到进阶,彻底掌握对象创建的艺术
开发语言·c++·算法
某人辛木4 小时前
Web自动化测试
前端·python·pycharm·pytest
C+++Python4 小时前
详细介绍一下Java泛型的通配符
java·windows·python
JosieBook5 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
加号35 小时前
【C#】 文件与目录管理:创建、删除操作的技术解析
开发语言·c#
小帅热爱难回头5 小时前
编写Skill生成AI落地项目系统架构
python
diving deep5 小时前
脚本速览-python
开发语言·python
一生了无挂6 小时前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
swordbob6 小时前
Spring 单例 Bean 是线程安全的吗?
java·开发语言
2601_951643777 小时前
Python第一,Java跌出前三,C语言杀回来了
java·c语言·python·编程语言排行·技术趋势