我正在尝试从铁拳 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 上尝试了不同的阈值,但没有数字或不是所有数字都被识别。
预期行为:返回所有数字。