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 准确率。

相关推荐
龙潜月七6 分钟前
Selenium 自动化测试中跳过机器人验证的完整指南:能用
python·selenium·机器人
ComputerInBook6 分钟前
C++ 标准模板库算法之 transform 用法
开发语言·c++·算法·transform算法
杰哥技术分享14 分钟前
PHP Yii2 安装SQL Server扩展-MAC M4 Pro芯片
开发语言·php
快下雨了L41 分钟前
Lua现学现卖
开发语言·lua
香饽饽~、2 小时前
【第十一篇】SpringBoot缓存技术
java·开发语言·spring boot·后端·缓存·intellij-idea
蓝婷儿2 小时前
Python 机器学习核心入门与实战进阶 Day 1 - 分类 vs 回归
python·机器学习·分类
Devil枫3 小时前
Kotlin扩展函数与属性
开发语言·python·kotlin
菠萝加点糖3 小时前
Kotlin Data包含ByteArray类型
android·开发语言·kotlin
.30-06Springfield3 小时前
利用人名语言分类案例演示RNN、LSTM和GRU的区别(基于PyTorch)
人工智能·pytorch·python·rnn·分类·gru·lstm
程序员阿超的博客4 小时前
Python 数据分析与机器学习入门 (八):用 Scikit-Learn 跑通第一个机器学习模型
python·机器学习·数据分析·scikit-learn·入门教程·python教程