Python实现连点器的示例代码

yizhihongxing

下面是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实现连连看辅助之图像识别延伸 本攻略介绍了如何用Python实现连连看辅助中的图像识别部分。在这一部分中,我们主要使用了OpenCV和PIL这两个Python库,通过对游戏截图进行处理,从中识别出各个图块的位置和类型,以便后续的连通性判断。 步骤一:前期准备 在开始实现之前,需要做一些准备工作: 确保已经安装了开发所需的Python包,包括ope…

    python 2023年5月19日
    00
  • Python实现的银行系统模拟程序完整案例

    下面我将为您详细讲解”Python实现的银行系统模拟程序完整案例”的完整攻略。 一、需求分析 首先,我们需要明确“Python实现的银行系统模拟程序”的功能需求,主要包括以下几点:1. 用户可以开户,并在开户时设置账户密码,开户时需要输入用户名、身份证号、手机号等信息;2. 用户可以进行存款、取款、转账;3. 用户可以查询余额、账户流水等信息;4. 管理员可…

    python 2023年5月19日
    00
  • python实现list由于numpy array的转换

    以下是“Python实现list与numpy array的转换”的完整攻略。 1. 将list转换为numpy array 可以使用numpy库中的array()函数将list转换为numpy array。示例如: import numpy as np my_list = [1, 2, 3, 4, 5] my_array = np.array(my_list…

    python 2023年5月13日
    00
  • NumPy数组的基础知识

    让我们来详细讲解一下NumPy数组的基础知识。 什么是NumPy数组 NumPy数组是Python中用于科学计算的基础库,提供了高效的多维数组对象。这些数组可以存储同一类型的元素,而且支持广播(broadcasting)和向量化计算,适用于数据分析、机器学习、深度学习等领域。 如何创建NumPy数组 使用NumPy创建数组的最基本方式是使用numpy.arr…

    python-answer 2023年3月25日
    00
  • Python遍历某目录下的所有文件夹与文件路径

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

    python 2023年5月20日
    00
  • Python数据库反向生成Model最优方案示例

    Python数据库反向生成Model是一项非常重要的工作,这可以大幅提高项目的开发效率和代码的可维护性。在本攻略中,我们将介绍如何使用Django-extensions提供的django_extensions.management命令生成Model模型的代码。 环境和准备工作 首先,我们需要安装Django扩展包以及相关的驱动,命令如下: pip insta…

    python 2023年6月3日
    00
  • 完美解决Pycharm中matplotlib画图中文乱码问题

    下面是完美解决Pycharm中matplotlib画图中文乱码问题的攻略。 问题描述 当我们在Pycharm中使用matplotlib进行画图时,如果涉及到中文字符,很容易出现乱码的问题。这让我们在阅读和展示代码的过程中感到十分不便,因此需要解决它。 解决方法 方法一、导入matplotlib的字体库 我们可以使用以下代码导入 matplotlib 的字体库…

    python 2023年5月18日
    00
  • Python任意字符串转16, 32, 64进制的方法

    以下是Python任意字符串转16进制、32进制、64进制的方法攻略: 将字符串转为16进制 可以使用Python的内置模块binascii中的b2a_hex()函数将字符串转成16进制。具体实现过程如下: import binascii # 将字符串转化为16进制 s = ‘hello world’ hex_str = binascii.b2a_hex(s…

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