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

PyTesseract与Tesseract无法识别文本问题求助

问题描述

我在筹备已久的项目中尝试使用pytesseract,但本地始终无法正常运行。测试图片为包含"EXIT"字样的图片,通过灰度读取、OTSU二值化、黑白反转处理后,得到黑底白字的清晰文本图。使用的测试代码如下:

image = cv2.imread('exit.png',cv2.IMREAD_GRAYSCALE)
th,image = cv2.threshold(image,0,255,cv2.THRESH_OTSU)
image = 255 - image
cv2.imshow('bruh',image)
cv2.waitKey(0)
print(pytesseract.image_to_data(image,config='--psm 3 --oem 3'))

已尝试的排查操作:

  • 测试有无二值化的场景
  • 重新安装Tesseract和pytesseract
  • 更换不同的--psm/--oem配置参数
  • 通过命令行直接运行Tesseract
    系统环境:Pop!_OS,Python版本3.10.4
解决方案

针对Pop!_OS环境下的pytesseract识别故障,按以下步骤修复:

  1. 确认英文语言包安装
    Pop!_OS默认可能未完整安装Tesseract英文训练数据,执行以下命令安装:
sudo apt install tesseract-ocr-eng

可通过dpkg -l | grep tesseract-ocr查看已安装的语言包列表。

  1. 指定Tesseract可执行路径
    如果pytesseract无法自动找到Tesseract程序,在代码开头添加路径配置:
import pytesseract
pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'

路径可通过which tesseract命令确认。

  1. 优化OCR配置参数
    针对单行文本的测试图,调整--psm参数以匹配场景:
print(pytesseract.image_to_data(image, config='--psm 7 --oem 3'))

--psm 7表示将图片视为单行文本,能大幅提升这类场景的识别准确率;--oem 3启用默认混合OCR引擎模式。

  1. 命令行验证Tesseract功能
    直接用命令行测试处理后的图片,定位问题来源:
tesseract 处理后的图片路径 stdout --psm 7 --oem 3

如果命令行能正确识别"EXIT",说明问题出在Python代码配置;若命令行也识别失败,可尝试在预处理步骤添加高斯模糊消除潜在噪点:

image = cv2.GaussianBlur(image, (3, 3), 0)
  1. 更新Tesseract到最新版本
    若仓库版本过旧,添加PPA更新至稳定版:
sudo add-apt-repository ppa:alex-p/tesseract-ocr-devel
sudo apt update && sudo apt upgrade tesseract-ocr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:51:19