想全面了解DeepSeek的看过来 【包邮】DeepSeek全攻略 人人需要的AI通识课 零基础掌握DeepSeek的实用操作手册指南【限量作者亲笔签名版售完即止】
玩转DeepSeek这本就够了 【自营包邮】DeepSeek实战指南 deepseek从入门到精通实用操作指南现代科技科普读物AI普及知识读物人工智能使用教程中小学读物京东超级618
Python初学者的入门教程 动手学深度学习 PyTorch版 李沐和阿斯顿·张等强强联合之作!机器学习、深度学习、AI领域重磅教程! deepseek机器学习(异步图书出品)
程序员要最先成为AI的主人 AI高手速成 DeepSeek让你工作变轻松 deepseek从入门到精通实战指南人工智能 异步图书出品
pytesseract
是一个 Python 封装库,用于调用 Google 的 Tesseract-OCR 引擎,实现光学字符识别(OCR)功能。它允许开发者直接从 Python 中提取图像中的文字内容,支持多种语言(包括中文)。
核心特点
- 跨平台支持
Windows/macOS/Linux 均可使用。 - 多语言识别
支持 100+ 种语言(需安装对应语言包)。 - 简单易用
只需几行代码即可完成 OCR 识别。 - 与 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')
常见问题解决
路径错误(Windows):
取消注释并设置tesseract_cmd
路径:pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
语言包缺失:
下载语言包(.traineddata
文件)放入tessdata
目录(通常在 Tesseract 安装路径下)。识别率低:
- 对图像进行预处理(灰度化/二值化/降噪)
- 调整
psm
和oem
参数 - 使用更高分辨率的清晰图像
应用场景
- 文档扫描件文字提取
- 验证码识别(简单类型)
- 车牌识别
- 图像中的多语言翻译
- 自动化数据录入
通过结合 OpenCV 进行图像预处理,pytesseract
能显著提升复杂场景下的 OCR 准确率。