lamborghinin 2022-10-16 18:25 采纳率: 50%
浏览 17
已结题

Python进行截图找图,找到为止

Python怎样进行截图找图,找到为止。

import time
import pyautogui
import cv2
import aircv as ac

def get_xy(img_model_path):

用来判定画面的点击坐标
:param img_model_path:用来检测的图片
:return:以元组形式返回检测到的区域中心的坐标

# 将图片截图并且保存
pyautogui.screenshot().save("./pic/screenshot.png")
# 待读取图像
img = cv2.imread("./pic/screenshot.png")
# 图像模板
img_terminal = cv2.imread(img_model_path)
# 读取模板的高度宽度和通道数
height, width, channel = img_terminal.shape
# 使用matchTemplate进行模板匹配(标准平方差匹配)
result = cv2.matchTemplate(img, img_terminal, cv2.TM_SQDIFF_NORMED)
# 解析出匹配区域的左上角图标
upper_left = cv2.minMaxLoc(result)[2]
# 计算出匹配区域右下角图标(左上角坐标加上模板的长宽即可得到)
lower_right = (upper_left[0] + width, upper_left[1] + height)
# 计算坐标的平均值并将其返回
avg = (int((upper_left[0] + lower_right[0]) / 2), int((upper_left[1] + lower_right[1]) / 2))
return avg

def auto_Click(var_avg):

输入一个元组,自动点击
:param var_avg: 坐标元组
:return: None

pyautogui.click(var_avg[0], var_avg[1], button='left')
time.sleep(1)

def routine(img_model_path, name):
avg = get_xy(img_model_path)
print(f"点击{name}")
auto_Click(avg)

def click_part1():

1.点击
2.点击
3.点击
4.点击
5.向右拖动鼠标
6.点击
:return:

# 点击
routine("./pic/bprw1.png", "点击")
# 点击
routine("./pic/bprw2.png", "点击")
# 点击
routine("./pic/bprw3.png", '打开')
# 点击
routine("./pic/bprw4.png", '点击')
# 等待
time.sleep(8)
# 点击
routine("./pic/bprw5.png", '点击')
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月24日
    • 创建了问题 10月16日

    悬赏问题

    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示