下面是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技术站