gpt4 book ai didi

python - 阅读文本时出现 Pytesseract 随机错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:27 26 4
gpt4 key购买 nike

我正在为视频游戏创建一个机器人,我必须阅读屏幕上显示的一些信息。鉴于信息始终位于同一位置,我可以毫无问题地截取屏幕截图并将图片裁剪到正确的位置。

90% 的时间,识别是完美的,但有时它会返回一些看起来完全随机的东西(见下面的例子)。

我尝试将图片变成黑白,但没有成功,并尝试更改 pytesseract 配置 (config = ("-l fra --oem 1 --psm 6"))

def readScreenPart(x,y,w,h):
monitor = {"top": y, "left": x, "width": w, "height": h}
output = "monitor.png"
with mss.mss() as sct:
sct_img = sct.grab(monitor)
mss.tools.to_png(sct_img.rgb, sct_img.size, output=output)

img = cv2.imread("monitor.png")
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite("result.png", img)
config = ("-l fra --oem 1 --psm 6")

return pytesseract.image_to_string(img,config=config)

示例:这张图片产生了一个错误,它返回字符串“IRPMV/LEIILK”

enter image description here

另一张图片

enter image description here

现在我不知道问题出在哪里,因为它不仅仅是一个错误的字符,而是一个完全随机的结果..

谢谢你的帮助

最佳答案

预处理是将图像放入 Pytesseract 之前的重要步骤。通常,您希望所需的文本为黑色,背景为白色。目前,您的前景文字是绿色而不是白色。这是修复格式的简单过程

  • 将图像转换为灰度
  • Otsu 获取二值图像的阈值
  • 反转图像

原图

enter image description here

大津的阈值

enter image description here

反转图像

enter image description here

Pytesseract 的输出

122 Vitalité

其他图片

enter image description here enter image description here enter image description here

200 Vitalité

在反转图像之前,执行 morphological operations 可能是个好主意平滑/过滤文本。但是对于你的图片,文字不需要额外的平滑处理

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

image = cv2.imread('3.png',0)
thresh = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
result = 255 - thresh

data = pytesseract.image_to_string(result, lang='eng',config='--psm 6')
print(data)

cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey()

关于python - 阅读文本时出现 Pytesseract 随机错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58022929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com