Python OCR文本识别详细步骤及代码示例

光学字符识别(OCR)是将图像中的文字转换为可编辑文本的技术。在Python中,我们可以利用多种库实现OCR功能。本文将详细介绍使用Tesseract和EasyOCR进行文本识别的步骤,并提供完整的代码示例。

一、OCR简介

OCR(Optical Character Recognition)技术广泛应用于文档数字化、车牌识别、验证码识别等领域。Python中常用的OCR库有:

  1. Tesseract:Google开源的OCR引擎,支持多种语言
  2. EasyOCR:基于Tesseract的封装库,使用更简单
  3. PaddleOCR:百度飞桨框架下的OCR系统,支持中英文识别

二、环境准备

1. 安装必要库

python 复制代码
	# 安装Tesseract(需要先安装系统级依赖)

	# Ubuntu: sudo apt install tesseract-ocr

	# macOS: brew install tesseract

	# Windows: 通过安装包安装

	


	# 安装Python库

	pip install pillow # 图像处理库

	pip install pytesseract # Tesseract的Python封装

	pip install easyocr # EasyOCR库

2. 准备测试图像

准备一张包含清晰文字的测试图片(如test.png),建议:

  • 文字方向为正
  • 背景与文字对比明显
  • 图片分辨率适中(建议300dpi以上)

三、使用Tesseract进行OCR

1. 基础识别

python 复制代码
	from PIL import Image

	import pytesseract

	


	# 打开图像文件

	image = Image.open('test.png')

	


	# 执行OCR识别

	text = pytesseract.image_to_string(image, lang='eng+chi_sim') # 中英文识别

	


	# 打印结果

	print("识别结果:\n", text)

这里插播一条粉丝福利,如果你正在学习Python或者有计划学习Python,想要突破自我,对未来十分迷茫的,可以点击这里获取最新的Python学习资料和学习路线规划(免费分享,记得关注)

2. 图像预处理(提高识别率)

python 复制代码
	import easyocr

	


	# 初始化阅读器(首次使用会自动下载模型)

	reader = easyocr.Reader(['ch_sim','en']) # 中英文模型

	


	# 执行识别

	results = reader.readtext('test.png', detail=0)

	


	# 打印结果

	print("识别结果:\n", results)

四、使用EasyOCR进行OCR

1. 基础识别

复制代码
python 复制代码
	import easyocr

	


	# 初始化阅读器(首次使用会自动下载模型)

	reader = easyocr.Reader(['ch_sim','en']) # 中英文模型

	


	# 执行识别

	results = reader.readtext('test.png', detail=0)

	


	# 打印结果

	print("识别结果:\n", results)

2. 获取详细识别信息

复制代码
python 复制代码
	results = reader.readtext('test.png', detail=1)

	


	for (bbox, text, prob) in results:

	print(f'文本: {text}, 置信度: {prob:.2f}, 位置: {bbox}')

五、结果后处理

复制代码
python 复制代码
	def post_process(text):

	# 去除特殊字符

	text = ''.join(filter(str.isalnum, text))

	


	# 替换常见错误

	replacements = {

	'0': 'O',

	'1': 'I',

	'5': 'S',

	'€': 'E'

	}

	


	for old, new in replacements.items():

	text = text.replace(old, new)

	


	return text

	


	# 应用后处理

	final_text = post_process(text)

	print("后处理结果:\n", final_text)

六、提高识别准确率的技巧

  1. 图像预处理
    • 调整对比度
    • 去除噪声
    • 矫正倾斜文本
    • 统一文字方向
  2. 参数调整
    • 尝试不同语言模型组合
    • 调整识别参数(如psm参数控制页面分割模式)
  3. 使用更强大的模型
    • 对于复杂场景,可以尝试PaddleOCR等专业OCR系统
    • 使用深度学习模型进行端到端训练
  4. 多帧识别
    • 对视频或连续帧进行识别时,可以结合上下文信息进行校正

七、注意事项

  1. 对于复杂版式(如表格、多列文本),需要先进行版面分析
  2. 手写体识别需要专门的模型(如Tesseract的手写体训练数据)
  3. 识别准确率受图像质量影响较大,建议:
    • 保证文字清晰可见
    • 避免反光和阴影
    • 保持文字方向一致
  4. 对于重要数据,建议人工校验识别结果

通过本文的介绍,您可以快速掌握Python OCR的基本使用方法。根据具体需求,可以选择合适的OCR库并进行参数调优,以达到最佳的识别效果。对于更复杂的场景,可以考虑结合深度学习技术进行模型优化。

需要完整源代码以及Python全套学习资料的宝子可以:扫描下方CSDN官方二维码获娶↓↓↓↓↓

相关推荐
飞机火车巴雷特18 小时前
【论文阅读】LightThinker: Thinking Step-by-Step Compression (EMNLP 2025)
论文阅读·人工智能·大模型·cot
张较瘦_18 小时前
[论文阅读] 人工智能 + 软件工程 | ReCode:解决LLM代码修复“贵又慢”!细粒度检索+真实基准让修复准确率飙升
论文阅读·人工智能·软件工程
极客小张18 小时前
【项目思路】基于STM32+ZigBee的智能家居--浴室场景设计
c语言·python·stm32·智能家居·课程设计·项目设计·企业项目
万岳科技程序员小金20 小时前
餐饮、跑腿、零售多场景下的同城外卖系统源码扩展方案
人工智能·小程序·软件开发·app开发·同城外卖系统源码·外卖小程序·外卖app开发
桐果云20 小时前
解锁桐果云零代码数据平台能力矩阵——赋能零售行业数字化转型新动能
大数据·人工智能·矩阵·数据挖掘·数据分析·零售
二向箔reverse21 小时前
深度学习中的学习率优化策略详解
人工智能·深度学习·学习
幂简集成21 小时前
基于 GPT-OSS 的在线编程课 AI 助教追问式对话 API 开发全记录
人工智能·gpt·gpt-oss
AI浩21 小时前
【面试题】介绍一下BERT和GPT的训练方式区别?
人工智能·gpt·bert
Ronin-Lotus1 天前
深度学习篇---SENet网络结构
人工智能·深度学习
n12352351 天前
AI IDE+AI 辅助编程,真能让程序员 “告别 996” 吗?
ide·人工智能