Python自动点击脚本:使用pyautogui和OpenCV识别多张图片
import pyautogui
import cv2
import numpy as np
import os
# 图片路径
image_paths = ['image1.png', 'image2.png', 'image3.png', 'image4.png', 'image5.png']
# 无限循环,直到暂停
while True:
for image_path in image_paths:
# 尝试识别并点击图片
try:
# 读取屏幕截图
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')
# 使用OpenCV库加载图片和模板
img_rgb = cv2.imread('screenshot.png')
template = cv2.imread(image_path)
# 使用模板匹配定位图片
res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where(res >= threshold)
# 点击图片
for pt in zip(*loc[::-1]):
# 计算图片中心点坐标
x, y, w, h = pt[0], pt[1], template.shape[1], template.shape[0]
center_x = x + w // 2
center_y = y + h // 2
# 点击图片中心点
pyautogui.click(center_x, center_y, button='left')
# 删除截图
os.remove('screenshot.png')
except:
continue
代码说明:
- 该脚本使用
pyautogui库进行屏幕截图和鼠标点击操作。 opencv-python库用于图像识别。- 脚本首先定义要识别的图片路径列表
image_paths。 - 然后进入无限循环,遍历每张图片进行识别和点击。
- 在循环内部,脚本首先截取屏幕截图并保存到本地。
- 然后使用
cv2.imread()函数加载截图和目标图片。 cv2.matchTemplate()函数用于在截图中查找目标图片,并返回一个匹配结果矩阵。- 通过设置阈值,可以过滤掉置信度低的匹配结果。
- 找到匹配结果后,计算目标图片的中心点坐标,并使用
pyautogui.click()函数模拟鼠标点击操作。 - 最后删除临时保存的屏幕截图。
注意事项:
- 需要安装
pyautogui,opencv-python,numpy库。 - 将
image_paths列表中的图片路径替换为实际的图片路径。 - 可以根据需要调整匹配阈值
threshold。
原文地址: https://www.cveoy.top/t/topic/V9F 著作权归作者所有。请勿转载和采集!