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
Python自动点击脚本:使用pyautogui和OpenCV识别多张图片

原文地址: https://www.cveoy.top/t/topic/V9F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录