小猿口算自动答题助手—制裁炸鱼大学生版
本程序是一个基于 Python 的自动答题助手。它能够自动识别题目中的数字,并根据数字大小关系绘制相应符号。
·
上手指南
一、程序介绍
本程序是一个基于 Python 的自动答题助手。它能够自动识别题目中的数字,并根据数字大小关系绘制相应符号。
二、准备工作
- 安装必要软件和库
- 安装 Tesseract-OCR:从官方网站下载并安装,安装完成后记住其安装路径,因为在代码中需要指定 Tesseract-OCR 的可执行文件路径。
- 安装 Python:你的电脑上安装了 Python 编程语言。
- 安装所需的 Python 库:本程序使用了pytesseract、pyautogui和time库。
三、库以及软件安装步骤
以下是安装 pytesseract
、pyautogui
库以及 Tesseract-OCR
软件的步骤:
- 安装
pyautogui
库:- 打开命令提示符(Windows)或终端(macOS、Linux)。
- 输入以下命令并按回车键:pip install pyautogui。
- 等待安装完成。如果安装过程中没有出现错误提示,就说明pyautogui库已经成功安装到你的 Python 环境中。
- 安装
pytesseract
库:- 同样在命令提示符或终端中,输入以下命令:pip install pytesseract。
- 等待安装完成。这将安装pytesseract库及其相关依赖项。
- 安装
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
路径下,就将该路径添加到环境变量中。 - 点击 “确定” 保存设置。
- 下载安装包:
- 验证安装:
- 打开命令提示符或终端,输入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)
五、使用方法
- 确保小猿口算应用程序在桌面已经打开(雷电模拟器即可),并显示需要答题的题目界面。
- 测量修改截图区域后,开始挑战。运行本程序。程序将自动识别题目中的数字,并在相应区域绘制符号。
- 等待程序完成答题操作。如果程序无法正确识别数字,可能需要调整截图区域坐标或 Tesseract-OCR 的配置参数。
六、注意事项
- 请谨慎使用,助手仅用于学习和研究目的。
- 确保程序运行时,小猿口算的界面布局没有发生变化,否则可能导致截图区域不准确,从而影响数字识别和答题效果。
- 程序运行过程中不要移动鼠标或进行其他干扰操作,以免影响鼠标模拟的准确性。
- 请不要用于不良用途,与本人无关。
- 若不会获取屏幕截图区域坐标,请移步新的博客教学。https://blog.csdn.net/m0_69482013/article/details/142828424?sharetype=blogdetail&sharerId=142828424&sharerefer=PC&sharesource=m0_69482013&spm=1011.2480.3001.8118

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