当前位置: 首页 > java >正文

Tesseract配置参数详解及适用场景(PyTesseract进行OCR)

在使用 PyTesseract 进行 OCR 时,合理配置参数是提高识别准确率的关键。以下是 Tesseract 常用参数的详细解释和适用场景。

一、关键参数

(1)页面分割模式(Page Segmentation Mode, --psm)

控制 Tesseract 如何分析图像中的文本布局,对单行文本、多列文本、表格等不同场景有不同优化。

参数值描述适用场景
0仅定向和脚本检测用于分析文本方向和语言脚本(如中文、英文)
1自动分页处理包含多页内容的图像(如扫描书籍)
2自动分页,但不进行 OCR仅分析页面布局,不识别文本
3全自动分页,无需 OCR默认模式,适用于常规文档
4假设为单列文本处理报纸、杂志等多列文本
5假设为垂直排列的文本处理竖排文字(如古籍、日语竖排)
6假设为单行文本处理单行较长的文本(如标题)
7视为单个文本行短文本、验证码、标语
8视为单个单词孤立单词、品牌名、验证码(无空格)
9视为单个单词在圆圈中圆形排列的文字(如标志)
10视为单个字符单个字母或数字(如车牌字符)
11稀疏文本分散在图像中的文本(如水印、标签)
12稀疏文本,先进行 OSD稀疏文本且需要自动检测方向
13原始行忽略布局,按行处理(适用于不规则文本)

验证码场景推荐:psm 7(单行文本)或 psm 8(单个单词)。

(2)OCR 引擎模式(OCR Engine Mode, --oem)

控制使用的 OCR 引擎类型。

参数值描述适用场景
0仅使用传统 Tesseract 引擎旧版本兼容性,对简单文本可能更快
1仅使用 LSTM 引擎推荐模式,识别准确率更高,支持更多语言
2同时使用两种引擎综合两种引擎结果,可能更准确但更慢
3默认,自动选择通常选择 LSTM 引擎(推荐)

推荐配置:–oem 3(自动选择 LSTM)。

(3)字符白名单(tessedit_char_whitelist)

限制 Tesseract 只识别指定字符,大幅提高特定场景的准确率。

# 仅识别数字
config = r'-c tessedit_char_whitelist=0123456789'# 识别数字和小写字母
config = r'-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz'

适用场景:

  • 验证码(已知字符集)
  • 车牌识别(如 ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)
  • 特定领域文本(如仅含数字的发票金额)

(4)语言参数(-l)

指定识别语言,需安装相应语言包。

# 英文
text = pytesseract.image_to_string(image, lang='eng')# 简体中文
text = pytesseract.image_to_string(image, lang='chi_sim')# 中英文混合
text = pytesseract.image_to_string(image, lang='eng+chi_sim')

安装语言包:

  • Windows:通过 Tesseract 安装程序勾选语言包
  • Linux:sudo apt-get install tesseract-ocr-(如 tesseract-ocr-chi-sim)

(5)其他常用参数

参数描述示例
tessedit_pageseg_mode--psm 等效,用于配置文件-c tessedit_pageseg_mode=8
preserve_interword_spaces保留单词间空格(默认为0)-c preserve_interword_spaces=1
textord_min_linesize最小文本行高(像素)-c textord_min_linesize=20
tessedit_char_blacklist黑名单字符(不识别的字符)-c tessedit_char_blacklist=!@#$%^&*()

二、组合参数示例

(1)验证码识别

# 配置:LSTM引擎,视为单个单词,仅识别数字和小写字母
config = r'--oem 3 --psm 8 -c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz'
text = pytesseract.image_to_string(image, config=config)

(2)单行文本(如车牌)

# 配置:单行文本,仅识别大写字母和数字
config = r'--oem 3 --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
text = pytesseract.image_to_string(image, config=config)

(3)多列文本(如报纸)

# 配置:自动检测多列布局
config = r'--oem 3 --psm 4'
text = pytesseract.image_to_string(image, config=config)

(4)竖排中文文本

# 配置:垂直排列文本,中文识别
config = r'--oem 3 --psm 5 -l chi_sim'
text = pytesseract.image_to_string(image, config=config)
http://www.xdnf.cn/news/12377.html

相关文章:

  • 【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI
  • 6.6 计算机网络面试题
  • scikit-learn机器学习
  • 固态继电器与驱动隔离器:电力系统的守护者
  • Nuxt.js 布局系统详解:构建可复用页面框架
  • 豆包和deepseek 元宝 百度ai区别是什么
  • 3B模型大概占多少存储
  • My图床项目
  • [蓝桥杯]采油
  • 使用VTK还是OpenGL集成到qt程序里哪个好?
  • P1345 [USACO5.4] 奶牛的电信Telecowmunication
  • Levenberg-Marquardt算法详解和C++代码示例
  • 安卓基础(ProGuard vs R8)
  • NodeJS Koa 后端用户会话管理,JWT, Session,长短Token,本文一次性讲明白
  • Redis——1、服务端高并发分布式结构演进之路
  • Excel 表格内批量添加前缀与后缀的实用方法
  • keysight是德科技N9923A网络分析仪
  • 排序算法总结(C++)
  • C文件操作2
  • python打卡训练营打卡记录day46
  • 在aarch64平台编译写入传统xls格式文件开源库xlslib的步骤
  • 《影像引导下骨盆创伤手术的术前骨折复位规划:基于学习的综合流程》|文献速递-深度学习医疗AI最新文献
  • [论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
  • 密码学基础——SM4算法
  • 飞云智能波段主图+多空短线决策副图指标,组合操盘技术图文解说
  • 网页端 js 读取发票里的二维码信息(图片和PDF格式)
  • 机器学习算法时间复杂度解析:为什么它如此重要?
  • 国内环境修改 flutter.bat 来设置 flutter 的网络环境
  • Java项目中常用的中间件及其高频问题避坑
  • 第7篇:中间件全链路监控与 SQL 性能分析实践