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

Tesseract图像文本识别出错,预处理后仍误判,求解决方案

Tesseract识别特殊字体(Shentox)出错的解决办法

我尝试从图像中提取白色文本(忽略红色文本),虽然已经把图像处理成了较好的格式,但Tesseract还是输出错误结果。运行代码后,正确文本应该是“CW9-1Y”,却被识别成了“CWS-1Y”。已知所用字体是Shentox,但训练Tesseract适配该字体难度较大,求解决办法。

相关图像

  • 原始图像:
    原始图像
  • 处理后图像:
    处理后图像

运行代码

import cv2 as cv
import pytesseract
from PIL import Image

image = cv.imread("screenshot.png", cv.IMREAD_GRAYSCALE)

ret, modified_image = cv.threshold(image, 120, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)

modified_image= cv.resize(modified_image, None, fx=2, fy=2, interpolation=cv.INTER_CUBIC)

#cv.imshow("image", image)
#cv.imshow("modified_image", modified_image)
cv.imwrite("modified_image.png", modified_image)

pytesseract.pytesseract.tesseract_cmd = r'C:\Tesseract-OCR\tesseract.exe'

text = pytesseract.image_to_string(Image.open('modified_image.png'), config="--psm 6 --oem 3", lang="eng")

print(f'Text: {text}')

可行解决思路

1. 优化图像预处理

当前的二值化和放大已经做了基础处理,可以再试试这些调整:

  • 去掉手动指定的阈值120,仅保留cv.THRESH_BINARY_INV + cv.THRESH_OTSU,让算法自动计算最优阈值,避免手动阈值干扰。
  • 添加降噪处理:用cv.medianBlur(modified_image, 3)或cv.GaussianBlur去除图像中的微小噪点,减少对字符识别的干扰。
  • 尝试形态学操作:用cv.erode(腐蚀)或cv.dilate(膨胀)规整字符边缘,让“9”的轮廓更清晰,降低和“S”的混淆概率。

2. 限制Tesseract的识别字符集

既然目标文本是字母+数字+短横的固定格式,直接指定允许识别的字符集,过滤无关字符,大幅降低识别错误率。修改代码中的config参数:

text = pytesseract.image_to_string(Image.open('modified_image.png'), config="--psm 6 --oem 3 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-", lang="eng")

3. 调整PSM识别模式

当前使用的PSM 6是“假设图像为单一均匀块的文本”,可以试试更贴合短文本场景的模式:

  • PSM 7:假设图像为单行文本,更适配当前的短字符串。
  • PSM 10:假设图像为单个字符,可配合字符分割循环识别每个字符。

示例修改为PSM 7:

text = pytesseract.image_to_string(Image.open('modified_image.png'), config="--psm 7 --oem 3 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-", lang="eng")

4. 自定义字符模板匹配

如果以上方法仍无效,可直接用OpenCV的模板匹配避开Tesseract的字体问题:

  • 从处理后的图像中截取“9”的清晰区域作为模板图像。
  • 遍历目标图像的字符区域,用cv.matchTemplate进行匹配,通过匹配得分判断字符是否为“9”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:25:15