如何使用PyAutoGUI的LocateOnScreen()按1到5顺序点击随机位置图片
PyAutoGUI按顺序识别并点击指定图片实现方案
前置准备
- 提前截取1~5号目标参考图,分别命名为
1.png、2.png...5.png,保存到和脚本同目录,截图要尽量精准,仅保留你要识别的目标内容,减少无关像素干扰 - 安装依赖库:
pip install pyautogui pillow opencv-python,其中opencv-python用于支持识别精度参数,可选但推荐安装
实现代码
import pyautogui import time # 严格按1到5的顺序存入图片路径,保证执行顺序 target_img_list = [ "1.png", "2.png", "3.png", "4.png", "5.png" ] for img_index, img_path in enumerate(target_img_list, start=1): # 识别屏幕上的目标图片 # confidence为匹配精度,取值0~1,0.8表示相似度80%以上即匹配成功 # grayscale开启灰度识别,可提升识别速度 img_location = pyautogui.locateOnScreen(img_path, confidence=0.8, grayscale=True) if img_location: # 提取图片中心点坐标 click_point = pyautogui.center(img_location) # 点击目标位置 pyautogui.click(click_point) # 点击后短暂等待,避免操作过快导致后续识别异常 time.sleep(0.5) else: print(f"未找到{img_index}号图片,流程终止") # 可根据需求替换为重试逻辑,比如循环查询最多等待10秒 break
注意事项
- 高分屏设备需要注意系统缩放比例,pyautogui默认按100%缩放识别,如果系统开了125%/150%缩放,要么将缩放调整为100%,要么在对应缩放比例下重新截取参考图
- 识别精度参数
confidence不要设置过低,否则会匹配到错误位置,建议根据实际场景在0.7~0.9区间调整 - 如果目标图片仅会出现在屏幕固定区域,可以添加
region参数指定识别范围,比如region=(0,0,1920,1080),可大幅提升识别速度
内容的提问来源于stack exchange,提问作者Casual Gamer
相关产品推荐
相关产品推荐

