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 – 如何在没有特定文件的代码块中检查 PEP8 错误 [重复]

    【问题标题】:Python – How to check PEP8 errors in a chunk of code with no specific file [duplicate]Python – 如何在没有特定文件的代码块中检查 PEP8 错误 [重复] 【发布时间】:2023-04-04 04:14:01 【问题描述】: 我目前在一个电子学习平台上…

    Python开发 2023年4月6日
    00
  • 如何使用Python从数据库中读取数据?

    当需要从数据库中读取数据时,可以使用Python连接到数据库并执行SQL查询。以下是使用Python从数据库中读取数据的完整攻略: 连接数据库 要连接到数据库,需要提供数据库的主机名、用户名、密码和数据库名称。可以使用以下代码连接MySQL: import mysql.connector mydb = mysql.connector.connect( hos…

    python 2023年5月12日
    00
  • Python全栈之队列详解

    Python全栈之队列详解 队列是一种常用的数据结构,它可以帮助我们实现先进先出(FIFO)的数据处理方式。在Python中,我们使用置的queue模块来实现队列的功能。本文详细介绍Python中队列的使用方法和示例说明。 队列的基本概念 队列是一种线性数据结构,它可以用来存储一组元素,并支持在队列的一端插元素另一端删除元素的操作。队列的特点是先进先出(FI…

    python 2023年5月14日
    00
  • Python 从相对路径下import的方法

    当我们从一个 Python 脚本文件中使用 import 语句导入模块时,我们需要指定模块路径。通常,我们会使用绝对路径或相对路径来指定需要导入的模块。在本文中,我们将重点讨论如何在 Python 代码中使用相对路径导入模块。 什么是相对路径? 相对路径是指相对于当前脚本文件的路径,可以是相对于当前目录的路径,也可以是相对于父目录的路径。在 Python 中…

    python 2023年6月3日
    00
  • Python3 re.search()方法的具体使用

    Python3中的re模块提供了许多函数用于正则表达式的操作,其中re.search()方法是用于在字符串中搜寻匹配指定正则表达式的第一个位置,并返回匹配对象的函数。该函数的具体语法为: re.search(pattern, string, flags=0) 其中 pattern 是正则表达式,string 是要被搜索的字符串,flags 是可选参数,标志位…

    python 2023年6月3日
    00
  • python3+PyQt5使用数据库表视图

    让我们来详细讲解一下”Python3+PyQt5使用数据库表视图”的完整攻略。 一、准备工作 在使用Python3+PyQt5进行数据库表视图的开发前,需要以下准备工作: 安装Python3,可以在官方网站下载:https://www.python.org/downloads/ 安装PyQt5,可以在命令行使用pip进行安装:pip install PyQt…

    python 2023年6月3日
    00
  • Python编程实现输入某年某月某日计算出这一天是该年第几天的方法

    下面是Python编程实现输入某年某月某日计算出这一天是该年第几天的方法: 步骤一:获取用户输入的年月日 首先,我们需要从用户输入中获取年、月、日这三个值。在Python中,可以使用input()函数来获取用户输入信息,代码如下: year = int(input("请输入年份:")) month = int(input("请输…

    python 2023年6月2日
    00
  • 将string类型的数据类型转换为spark rdd时报错的解决方法

    当我们将string类型的数据转换为Spark RDD时,有时会遇到以下常见的报错信息:“TypeError: Can not infer schema for type: ”。这是因为Spark无法推断出string类型的数据的schema,需要我们手动指定schema。 以下是将string类型的数据转换为Spark RDD的解决方法: 手动指定sche…

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