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

Pytesseract无法识别简单文本行返回空字符串问题求助

问题原因及解决方法

  • 第一:OpenCV读取图片默认返回BGR通道顺序,Tesseract要求输入RGB格式图像,通道不匹配会导致识别失败。
  • 第二:未指定Tesseract页面分割模式(PSM),默认PSM会自动对整页做分割,对单行文本的小尺寸二值图容易判定为无有效内容,针对单行简单文本场景,推荐设置--psm 7(将输入图像视为单行文本)。
  • 第三:如果你的二值图像是白字黑底的反色效果,需要先做颜色反转,适配Tesseract默认的黑字白底识别规则。
  • 第四:检查你设置的字符白名单tessedit_char_whitelist=RGB123是否覆盖了图像里的所有字符,如果图像包含白名单外的字符,会被直接过滤为空。

修改后可直接运行的参考代码:

from pytesseract import pytesseract as tesseract
import cv2 as cv

binary = cv.imread(filepath)
# 转换BGR到RGB格式适配Tesseract要求
img_rgb = cv.cvtColor(binary, cv.COLOR_BGR2RGB)
# 可选:如果是白字黑底图像,取消下行注释做反色处理
# img_rgb = cv.bitwise_not(img_rgb)

lang = 'eng'
# 补充页面分割模式、引擎参数,保证识别稳定性
config = r'--psm 7 --oem 3 tessedit_char_whitelist=RGB123'
print(tesseract.image_to_string(img_rgb, lang=lang, config=config))

如果调整后还是识别效果不佳,可以尝试对图像做1-2像素的膨胀/腐蚀调整字符粗细,或者按比例放大图像尺寸,Tesseract对像素过小的字符识别准确率会明显下降。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:00