You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pytesseract提取图片数字失败,无文本返回求助

解决pytesseract提取图片数字返回空的问题

问题原因分析

你提供的图片是黑底白字样式,而Tesseract OCR默认对白底黑字的识别效果更好;同时当前的PSM参数(--psm 11)适配稀疏文本场景,对这类集中的数字块适配性不佳,另外配置中的引号转义也存在潜在问题。

解决方案步骤

1. 图片预处理:反转颜色增强对比度

将黑底白字转为白底黑字,可大幅提升识别准确率,通过PIL的ImageOps模块即可实现。

2. 调整PSM参数

针对单块数字,推荐使用--psm 6(假设输入为单一文本块)或--psm 8(识别单个词),比--psm 11更适配当前场景。

3. 修正白名单配置

直接用单引号包裹白名单字符,避免转义双引号带来的格式问题。

修改后的完整代码

from PIL import Image, ImageOps
import pytesseract

# 打开图片并预处理:反转颜色(黑底变白底,白字变黑字)
im = Image.open('time.png')
inverted_im = ImageOps.invert(im.convert('RGB'))

# 调整后的配置:使用psm 6,白名单用单引号
custom_oem_psm_config = r'--oem 3 --psm 6 -c tessedit_char_whitelist=\'0123456789\''
text = pytesseract.image_to_string(inverted_im, config=custom_oem_psm_config)

# 去除多余空白并打印结果
print(text.strip())

额外验证点

  • 确保Tesseract已安装正确的语言包(默认包含英文数字,无需额外安装)
  • 确认time.png路径正确,可尝试使用绝对路径避免路径问题

内容的提问来源于stack exchange,提问作者JAMSHAID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:48:14