python - 小袁口算ocr

按照模拟器位置捕捉截图,使用paddleocr识别数字后比较大小

import pyautogui, time
from paddleocr import PaddleOCR

paddleocr = PaddleOCR(lang='en', show_log=False, use_angle_cls=True)
def capture_screenshot(region=None):
    img = pyautogui.screenshot(region=region)  # 捕捉屏幕截图指定区域
    img.save('temp.png')
    res = paddleocr.ocr('temp.png',cls=True)
    text = ''
    for r in res[0]:
        text += r[1][0]
    print(f'识别文本: {text}', end=' ')
    return text

def cal_result(text1, text2):
    num1, num2 = float(text1), float(text2)
    ret = '<' if float(num1) < float(num2) else '>'
    print(f'判断结果: {ret}')
    return ret

def draw_result(result):
    pyautogui.moveTo(600, 600)  # 鼠标移动到起始位置
    if result == '<':
        pyautogui.dragTo(550, 650, button='left', duration=0.2)
        pyautogui.dragTo(600, 700, button='left', duration=0.1)
    else:
        pyautogui.dragTo(650, 650, button='left', duration=0.2)
        pyautogui.dragTo(600, 700, button='left', duration=0.1)

for i in range(10):
    text1 = capture_screenshot(region=(370, 400, 80, 80))
    text2 = capture_screenshot(region=(515, 400, 80, 80))
    result = cal_result(text1, text2)
    draw_result(result)
    time.sleep(0.35)
posted @ 2024-11-02 16:24  wstong  阅读(7)  评论(0编辑  收藏  举报