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

如何提升Pytesseract图文转换准确率?Steam游戏Python Bot优化

问题:Pytesseract识别游戏文本准确率极低(仅能识别单个字母)

我正在为Steam平台的游戏《Typing Incremental》开发一款Python机器人,流程是用pyautogui截取游戏文本显示区域的截图,通过pytesseract将截图转成字符串,最后用pyautogui完成输入。

现在遇到的问题是,pytesseract的图文转换准确率极低,只有单个字母(比如“A”)能被正确识别,其他内容都识别不对。

作为编程新手,我已经试过这些方法:给代码加延时、多次调整截图区域、添加可检测词汇白名单(不确定是否生效),但问题还是没解决。

附上我的代码:

import pytesseract 
import pyautogui
import time
import keyboard
pytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR//tesseract.exe"

time.sleep(1)

while True: 
    if keyboard.is_pressed("`"):
        break 
    
    image = pyautogui.screenshot(region=(285, 155, 1566, 210))
    time.sleep(1)
    converted = pytesseract.image_to_string(image) 

可行的解决方法

1. 对截图做图像预处理

游戏文本通常有特殊样式(发光、渐变、自定义字体),原始截图的对比度和噪声会干扰识别,先做预处理:

  • 转灰度图:减少颜色干扰
  • 阈值处理:强化文本与背景的对比度
  • 去噪:过滤游戏特效带来的杂点

示例代码(需要安装PIL库):

from PIL import Image, ImageOps, ImageFilter

# 截图后添加预处理步骤
image = pyautogui.screenshot(region=(285, 155, 1566, 210))
# 转灰度
gray_img = ImageOps.grayscale(image)
# 阈值调整(可根据实际截图修改127的值,让文本完全变黑、背景变白)
threshold_img = gray_img.point(lambda x: 0 if x < 127 else 255, '1')
# 去除噪声
cleaned_img = threshold_img.filter(ImageFilter.MedianFilter())
# 用处理后的图像识别
converted = pytesseract.image_to_string(cleaned_img)

2. 调整Tesseract的识别模式

用--psm参数指定页面分割模式,针对游戏里的单字符/单词场景更精准:

  • --psm 10:强制识别单个字符
  • --psm 8:识别单个无空格单词
  • --psm 6:假设输入是单一均匀文本块

示例:

converted = pytesseract.image_to_string(cleaned_img, config='--psm 8')

3. 限定识别字符集

如果游戏文本只有英文字母,直接指定白名单减少干扰:

converted = pytesseract.image_to_string(cleaned_img, config='--psm 8 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')

4. 确认截图区域准确性

调用image.show()查看截取的图像,确保区域只包含目标文本,没有多余的UI边框、特效元素——这些杂项会严重影响识别结果。

5. 训练自定义字体库(进阶)

如果游戏用了非常特殊的字体,官方Tesseract数据没有覆盖,可以提取游戏内的文本样本,训练自定义字库,这是提升准确率最彻底的方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:17:39