如何使用 opencv、tesseract 从铁拳 7 中高精度读取计时器倒计时?

问题描述 投票:0回答:0

THRESH_BINARY sample

THRESH_BINARY_INV sample 我正在尝试从铁拳 7 游戏的每一帧中读取数据,我的第一步是使用 tesseract 从计时器中获取数字。在调用 tesseract 之前,我应用灰色蒙版和阈值:

img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(img, 70, 255, cv2.THRESH_BINARY_INV)
_, thresh_text = cv2.threshold(img, 120, 255, cv2.THRESH_BINARY_INV)
th3 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 9, 4)

我试过 THRESH_BINARY 和 THRESH_BINARY_INV 在调用 tesseract 之前拍摄最后一张照片。

调用tesseract:

timer = pytesseract.image_to_string(
        timer_img,
        lang='eng',
        nice=1,
        config='-c tessedit_char_whitelist=0123456789 --psm 7'
      )

我也试过psm 6,但没有任何改变。 OCR 的结果是空结果,有时在 57、47、37、27 秒 tesseract 识别数字 7,但不是两个数字。

我正在使用: 蟒蛇3.8, 宇宙立方体 5, opencv-python==4.4.0.46 pytesseract==0.3.10

我在 tesseract 的 opencv 和 psm 上尝试了不同的阈值,但没有数字或不是所有数字都被识别。

预期行为:返回所有数字。

python opencv python-tesseract
© www.soinside.com 2019 - 2024. All rights reserved.