Python pytesseract【OCR引擎库】 简介

发布于:2025-06-23 ⋅ 阅读:(12) ⋅ 点赞:(0)

想全面了解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
    brew install tesseract
    
  • Linux (Debian/Ubuntu)
    sudo apt install tesseract-ocr
    
2. 安装语言包(以中文为例)
# Linux
sudo apt install tesseract-ocr-chi-sim  # 简体中文
sudo apt install tesseract-ocr-chi-tra  # 繁体中文

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

基础用法示例

示例 1:识别图像中的文字
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 处理的图像
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. 获取文字位置与置信度
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. 识别多语言混合文本
text = pytesseract.image_to_string(image, lang='eng+chi_sim+jpn')  # 中英日混合
3. 调整 OCR 参数
# 配置参数示例
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 = 单行文本

图像预处理技巧

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

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 路径:

    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    
  2. 语言包缺失
    下载语言包(.traineddata 文件)放入 tessdata 目录(通常在 Tesseract 安装路径下)。

  3. 识别率低

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

应用场景

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

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


网站公告

今日签到

点亮在社区的每一天
去签到