上手指南

一、程序介绍

    本程序是一个基于 Python 的自动答题助手。它能够自动识别题目中的数字,并根据数字大小关系绘制相应符号。

二、准备工作

  1. 安装必要软件和库
    • 安装 Tesseract-OCR:从官方网站下载并安装,安装完成后记住其安装路径,因为在代码中需要指定 Tesseract-OCR 的可执行文件路径。
    • 安装 Python:你的电脑上安装了 Python 编程语言。
    • 安装所需的 Python 库:本程序使用了pytesseract、pyautogui和time库。

三、库以及软件安装步骤

    以下是安装 pytesseractpyautogui 库以及 Tesseract-OCR 软件的步骤:

  1. 安装 pyautogui 库
    • 打开命令提示符(Windows)或终端(macOS、Linux)。
    • 输入以下命令并按回车键:pip install pyautogui。
    • 等待安装完成。如果安装过程中没有出现错误提示,就说明pyautogui库已经成功安装到你的 Python 环境中。
  2. 安装 pytesseract 库
    • 同样在命令提示符或终端中,输入以下命令:pip install pytesseract。
    • 等待安装完成。这将安装pytesseract库及其相关依赖项。
  3. 安装 Tesseract-OCR 软件
    • 下载安装包
      • 访问 Tesseract-OCR 的官方下载页面或其他可靠的下载来源。
      • 根据您的操作系统选择相应的安装包进行下载。例如,对于 Windows 系统,可以选择.exe格式的安装文件;对于 macOS 系统,可以选择.dmg格式的安装文件;对于 Linux 系统,可以选择对应的软件包管理工具进行安装。
    • 安装软件
      • 运行下载好的安装程序,按照安装向导的提示完成安装过程。在安装过程中,您可以选择安装路径和其他相关选项。
      • 注意,如果您不是做英文的图文识别,还需要下载其他语言的识别包。例如,对于简体中文识别,可以从 相关资源页面 下载简体字识别包。
    • 配置环境变量(Windows 系统)
      • 安装完成后,需要将Tesseract-OCR的安装路径添加到系统的环境变量中,以便 pytesseract库能够找到Tesseract-OCR的可执行文件。
      • 右键点击 “此电脑”,选择 “属性”。
      • 在弹出的窗口中,点击 “高级系统设置”。
      • 在 “高级” 选项卡下,点击 “环境变量” 按钮。
      • 在 “系统变量” 部分,找到 “Path” 变量,点击 “编辑”。
      • 在弹出的编辑环境变量窗口中,点击 “新建”,将Tesseract-OCR的安装路径添加到列表中。例如,如果您将Tesseract-OCR安装到了 C:\Program Files\Tesseract-OCR 路径下,就将该路径添加到环境变量中。
      • 点击 “确定” 保存设置。
  4. 验证安装
    • 打开命令提示符或终端,输入tesseract  -v命令,如果能够正确显示Tesseract-OCR的版本信息,则说明Tesseract-OCR安装成功。
    • 在 Python 环境中,运行以下代码测试 pytesseract和pyautogui库是否能够正常工作:
          import pytesseract
          from PIL import Image
          import pyautogui
          screenshot = pyautogui.screenshot()
          screenshot.save('test_screenshot.png')
          image = Image.open('test_screenshot.png')
          text = pytesseract.image_to_string(image)
          print(text)

    如果代码能够正常运行并输出屏幕截图中的文字信息,则说明 pytesseract 和 pyautogui 库安装成功且能够正常工作。

四、完整代码

import pytesseract
import pyautogui
import time
pytesseract.pytesseract.tesseract_cmd = r'D:\Tesseract-OCR\tesseract.exe'
region1 = (169, 337, 80, 80)#左边数字位置
region2 = (360, 342, 80, 80)#右边数字位置
write_region = (161, 639, 221, 155)#绘制符号位置
#位置自己写代码测
def draw_larger_less_than():
    start_x, start_y = write_region[0] + 10, write_region[1] - 10
    pyautogui.moveTo(start_x, start_y)
    pyautogui.mouseDown()
    new_x, new_y = start_x - 25, start_y + 25
    pyautogui.moveTo(new_x, new_y, duration=0.1)
    new_x, new_y = new_x + 25, new_y - 10
    pyautogui.moveTo(new_x, new_y, duration=0.1)
    pyautogui.mouseUp()
def draw_larger_greater_than():
    start_x, start_y = write_region[0] + 30, write_region[1] - 10
    pyautogui.moveTo(start_x, start_y)
    pyautogui.mouseDown()
    new_x, new_y = start_x + 25, start_y + 25
    pyautogui.moveTo(new_x, new_y, duration=0.1)
    new_x, new_y = new_x - 25, new_y - 10
    pyautogui.moveTo(new_x, new_y, duration=0.1)
    pyautogui.mouseUp()
while True:
    screenshot1 = pyautogui.screenshot(region=region1)
    screenshot1.save('number1.png')
    number1_str = pytesseract.image_to_string('number1.png', config='--psm 6 -c tessedit_char_whitelist=0123456789')
    filtered_number1 = ''.join(filter(str.isdigit, number1_str))
    if filtered_number1:
        number1 = int(filtered_number1)
        print(f"第一个数字:{number1}")
    else:
        number1 = None
    screenshot2 = pyautogui.screenshot(region=region2)
    screenshot2.save('number2.png')
    number2_str = pytesseract.image_to_string('number2.png', config='--psm 6 -c tessedit_char_whitelist=0123456789')
    filtered_number2 = ''.join(filter(str.isdigit, number2_str))
    if filtered_number2:
        number2 = int(filtered_number2)
        print(f"第二个数字:{number2}")
    else:
        number2 = None
    if number1 is not None and number2 is not None:
        print(f"比较数字:{number1} 和 {number2}")
        if number1 > number2:
            draw_larger_greater_than()
            print("大于")
        elif number1 < number2:
            draw_larger_less_than()
            print("小于")
    else:
        print("无法正确识别数字。")

    time.sleep(1)

五、使用方法

  1. 确保小猿口算应用程序在桌面已经打开(雷电模拟器即可),并显示需要答题的题目界面。
  2. 测量修改截图区域后,开始挑战。运行本程序。程序将自动识别题目中的数字,并在相应区域绘制符号。
  3. 等待程序完成答题操作。如果程序无法正确识别数字,可能需要调整截图区域坐标或 Tesseract-OCR 的配置参数。

六、注意事项

  1. 请谨慎使用,助手仅用于学习和研究目的。
  2. 确保程序运行时,小猿口算的界面布局没有发生变化,否则可能导致截图区域不准确,从而影响数字识别和答题效果。
  3. 程序运行过程中不要移动鼠标或进行其他干扰操作,以免影响鼠标模拟的准确性。
  4. 请不要用于不良用途,与本人无关。
  5. 若不会获取屏幕截图区域坐标,请移步新的博客教学。https://blog.csdn.net/m0_69482013/article/details/142828424?sharetype=blogdetail&sharerId=142828424&sharerefer=PC&sharesource=m0_69482013&spm=1011.2480.3001.8118
Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐