Python实现连点器的示例代码

下面是Python实现连点器的示例代码的完整攻略:

思路:

  • 通过pyautogui库实现鼠标和键盘的控制;
  • 读取图像并获取需要点击的坐标;
  • 循环点击坐标位置

步骤:

第一步:准备工作

  • 安装pyautogui库
  • 导入所需库
import pyautogui
import time
import cv2 as cv
import numpy as np

第二步:读取图像

读取用户自己想点击的图片,并将其转化为灰度图像,提高运行效率

    #读取图像
    img= cv.imread('ditu.png')
    #转化为灰度图像
    img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) 

第三步:获取坐标

通过cv2中的cv2.matchTemplate()函数匹配模板图像和原图像,并使用numpy中的np.where函数筛选符合条件的点,返回该点坐标(x,y)

    res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
    threshold = 0.8
    x,y= np.where(res>=threshold)

第四步:实现连点功能

通过for循环依次获取到每个点的坐标,并使用pyautogui.moveTo函数移动光标,pyautogui.click()函数进行单击,pyautogui.dragRel()函数进行拖拽操作

    for point in zip(*loc[::-1]):
        # 移动到指定坐标
        pyautogui.moveTo(point[0]+w/2,point[1]+h/2, duration=0.25)
        # 单击
        pyautogui.click()
        # 拖拽操作
        pyautogui.dragRel(x,y,duration=0.25)
        time.sleep(1)

至此,完成了连点器的基本实现,具体代码如下:

import pyautogui
import time
import cv2 as cv
import numpy as np

def main():
    # 读取图像
    img= cv.imread('ditu.png')
    # 转化为灰度图像
    img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    #待匹配的图像
    template = cv.imread('icon.png',0)
    w, h = template.shape[::-1]

    # 匹配模板图像
    res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
    threshold = 0.8
    x,y= np.where(res>=threshold)

    # 循环点击坐标
    for point in zip(*loc[::-1]):
        # 移动到指定坐标
        pyautogui.moveTo(point[0]+w/2,point[1]+h/2, duration=0.25)
        # 单击
        pyautogui.click()
        # 拖拽操作
        pyautogui.dragRel(x,y,duration=0.25)
        time.sleep(1)
if __name__ == '__main__':
    main()

示例1

我们通过以上的基本实现,可以实现鼠标自动点击图片的功能。例如,你可以制作一张自己喜欢的地图或是截图,然后使用这张图片寻找需要点击的坐标,最终执行连点操作,可实现自动走图、自动任务等功能。

示例2

我们也可以将该示例代码结合python的其他库,进行一些拓展。例如融合python的Pillow库,将自己的名字或者昵称嵌入到图片中,然后通过该程序可以自动点击出自己的名字或昵称。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现连点器的示例代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Python解压可迭代对象赋值给多个变量详解

    当一个可迭代对象中有多个元素时,我们有时候需要将它们赋值给多个变量。而Python提供了一种很便捷的方式来实现这个需求,即使用“解压”(Unpacking)。在这里,我们将详细讲解Python中如何使用解压可迭代对象进行值的传递。 什么是解压? “解压”(Unpacking)是Python中的一种操作方式,它可以将一个可迭代对象中的元素依次赋值给多个变量。这…

    python 2023年5月14日
    00
  • python趣味挑战之爬取天气与微博热搜并自动发给微信好友

    本攻略将介绍如何使用Python爬取天气和微博热搜数据,并将数据发送给微信好友。我们将使用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML页面,以及使用itchat库来实现微信自动登录和消息发送功能。 实现Python爬取天气和微博热搜数据 以下是一个示例代码,用于实现Python爬取天气和微博热搜数据: import r…

    python 2023年5月15日
    00
  • python实现图片变亮或者变暗的方法

    Python 实现图片变亮或者变暗的方法有很多种,这里我们介绍两种方法: 方法一:使用Pillow库 Pillow是Python下的一个图像处理库,在实现图片变亮或变暗时非常方便。 安装Pillow库 首先需要安装Pillow库,可以使用pip进行安装。在命令行中输入以下指令即可: pip install Pillow 如果出现了“No module nam…

    python 2023年5月19日
    00
  • Python爬虫之正则表达式的使用教程详解

    Python爬虫之正则表达式的使用教程详解 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、信息提取等。在Python爬虫中,正则表达式也是一种常用的工具,可以用于从网页中提取所需的信息。本攻略将详细讲解Python爬虫中正则表达式的使用,包括正则表达式的基本语法、常用的正则表达式模式、如何使用正则表达式提取网页中的信息等…

    python 2023年5月14日
    00
  • Python编程之序列操作实例详解

    关于“Python编程之序列操作实例详解”的攻略,我们可以从以下几个方面入手: 1. 序列的概念 在Python中,序列指的是有序数据集合。它包括字符串、元组、列表等数据类型。序列中的每个元素都有一个编号,这个编号称为索引,表示元素在序列中的位置。 2. 序列的常用操作 2.1 索引和切片操作 序列中的元素可以通过其位置索引进行访问。在Python中,序列的…

    python 2023年5月14日
    00
  • 在python带权重的列表中随机取值的方法

    在Python中,可以通过random.choices方法在带有权重的列表中随机取值,该方法可以根据指定的权重值,生成符合要求的随机数列表。 具体步骤如下: 导入random模块 import random 定义带有权重的列表 假设有一个列表,包含不同的元素和它们的权重值。 my_list = [‘A’, ‘B’, ‘C’, ‘D’] my_weights …

    python 2023年6月3日
    00
  • python中关于py文件之间相互import的问题及解决方法

    在Python中,我们可以使用import语句导入一个py文件中的函数、类等组件。当我们把程序拆分成多个py文件去编写时,就会遇到各个文件之间相互导入的问题。下面我来详细介绍Python中关于py文件之间相互import的问题及解决方法。 导入方式 在Python中,有三种导入方式: 相对导入 相对导入是指从当前目录导入模块。使用相对导入必须在目录下面,否则…

    python 2023年5月13日
    00
  • Python遍历某目录下的所有文件夹与文件路径

    下面我将为你详细讲解如何使用Python遍历某目录下的所有文件夹与文件路径。 总体思路 实现该功能的关键就是遍历整个目录下的所有文件夹和文件,可以采用递归或迭代的方式实现。 具体实现思路如下: 首先需要获取目标目录的路径。 使用os模块的walk()函数遍历整个目录。 遍历到每一个文件或文件夹时,判断其类型。 若是文件夹,继续递归或迭代遍历该文件夹下的所有文…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部