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

PyTesseract无法提取图片文本?终端无有效输出问题求助

PyTesseract无法提取图片文本,终端输出空白的解决方法

针对你遇到的PyTesseract提取文本无输出的问题,可从以下几个方向排查解决:

1. 给图像做预处理提升识别率

OpenCV默认读入的是BGR格式图像,Tesseract对灰度图的识别效果更好,同时通过二值化增强文本与背景的对比度,能有效提升识别成功率:

from PIL import Image 
import pytesseract
import cv2

pytesseract.pytesseract.tesseract_cmd="C:\\Program Files\\Tesseract-OCR\\tesseract.exe"
img_path = 'C:\\Users\\Emiliano\\Downloads\\practic.png'

# 读取图像并检查是否成功
img = cv2.imread(img_path)
if img is None:
    print("图像读取失败,请检查路径是否正确")
else:
    # 转灰度图
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 二值化处理(可根据图像实际情况调整阈值)
    _, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)
    
    cv2.imshow('processed', thresh)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    # 提取文本
    text = pytesseract.image_to_string(thresh)
    print(text)

2. 检查Tesseract语言包

如果你的图片包含非英文文本(比如中文),Tesseract默认只有英文语言包,需要安装对应语言包后,在调用时指定语言参数:

# 以中文为例,安装chi_sim语言包后添加lang参数
text = pytesseract.image_to_string(thresh, lang='chi_sim')

3. 调整页面分割模式(PSM)

Tesseract的页面分割模式会影响识别逻辑,针对不同的文本布局选择合适的模式,比如文本是单一连续区块时,可使用模式6:

text = pytesseract.image_to_string(thresh, config='--psm 6')

常见PSM模式参考:

  • --psm 3:默认模式,自动分割页面
  • --psm 6:假设图像是单一均匀文本块
  • --psm 8:假设图像是单个单词

4. 确认图像完整性

确保你读取的图像没有损坏,可通过cv2.imshow预览处理后的图像,确认文本清晰可辨;同时检查路径是否存在拼写错误,避免因路径问题导致读取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:42:37