用pyautogui.locateOnScreen实现精准自动识别图片的功能

在这里插入图片描述
打开CSDN首页,我们要识别图中的的赞,并点击。
首先我们写代码截取带赞的手势图片,代码如下:

from PIL import Image
import pyautogui
im=pyautogui.screenshot()#截取整个屏幕
om=im.crop((284,416,302,438))#根据截取的屏幕仅截取“带赞的手势图片”,可以用pyautogui.mouseInfo()获取图片的位置(284,416,302,438)
om.save("dianzan.png")#将图片保存供pyautogui.locateOnScreen()使用

获取供pyautogui.locateOnScreen()识别的图像后,开始写代码识别图像,如下:

import pyautogui
import time


def zan():
    time.sleep(0.5)   
    xy = pyautogui.locateOnScreen('dianzan.png')  # 寻找刚才保存点赞手势图片
    center = pyautogui.center(xy) # 寻找图片的中心 
    pyautogui.click(center)   
    print('点赞成功!')

count=10#为了防止一直运行下去,点一点数量的赞就结束,自己定义
while True:
    if pyautogui.locateOnScreen('dianzan.png'):
        zan()   # 调用点赞函数
        count-=1
    else:
        pyautogui.scroll(-500)    #本页没有图片后,滚动鼠标;
        print('没有找到目标,屏幕下滚~')
print("点10个赞结束!")

运行后会识别图片进行点赞
在这里插入图片描述
代码输出如下:
在这里插入图片描述

参考文献:Python基础之pyautogui模块(详细总结鼠标键盘操作)

  • 58
    点赞
  • 141
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: pyautogui.locateOnScreen() 函数是 Python 自动化库 PyAutoGUI 中的一个函数,它用于在屏幕上查找指定图像的位置,并返回一个矩形对象,表示该图像在屏幕上的位置和大小。 该函数的参数有: 1. image:要查找的图像文件名或图像对象。可以是一个文件名字符串,也可以是一个 PIL.Image.Image 对象,也可以是一个 Numpy 数组。如果是文件名,则需要提供该文件的完整路径。 2. grayscale:可选参数,指定是否将图像转换为灰度图像进行匹配。默认为 False。 3. confidence:可选参数,指定匹配图像的置信度阈值,范围为 0.0 到 1.0 之间。默认值为 0.999。 4. region:可选参数,指定在屏幕的哪个区域内搜索图像。它应该是一个四元组,包含要搜索的区域的左上角 x 坐标、上角 y 坐标、宽度和高度。默认为整个屏幕。 5. mask:可选参数,指定一个与图像大小相同的二进制掩码数组,用于指定在匹配期间要考虑的像素区域。默认为 None。 使用这些参数,可以更精确地指定要搜索的图像和搜索的区域,以及如何进行匹配。 ### 回答2: pyautogui.locateonscreenPython的一个基于图像识别的工具,能够在屏幕上寻找指定图像,并返回坐标。参数具体包括以下几个: 1. image:指定需要查找的图像路径或者截图。如果是路径,则可以是相对路径或者绝对路径;如果是截图,则需要使用PyAutoGUIscreenshot函数先行截图。 2. grayscale:是否在查找时将图像转换为灰度图像,缺省为False。即如果设置了True,则在查找图像时,会先把原图像转成灰度图像,再去匹配图像。这种方式可使查找更为准确,但同时也会消耗更多的计算资源。 3. confidence:置信度阈值,即匹配图像的最小相似度,取值范围为0~1之间。默认值为0.9999,即只有当匹配度达到0.9999及以上时,才认为匹配成功。如果需要提高或降低匹配的精度,可以通过调整置信度阈值来实现。 4. region:在指定区域内查找图像。此参数是一个由4个整数构成的元组,依次代表区域的左上角x坐标、y坐标、宽度和高度。缺省值为None,即从整个屏幕中查找。 5. grayscale:是否在查找时将图像转换为灰度图像,缺省为False。即如果设置了True,则在查找图像时,会先把原图像转成灰度图像,再去匹配图像。这种方式可使查找更为准确,但同时也会消耗更多的计算资源。 使用该函数时,需要先安装PyAutoGUI库。同时,由于该库依赖于Python的图形界面框架,并且需要访问操作系统底层的API,因此需要在安装之前先了解好相关的使用方式和安全注意事项。 ### 回答3: pyautoguiPython编程语言的一种自动化工具包,它提供了许多函数和方法,可以用于自动执行GUI任务,例如鼠标和键盘输入,图像识别和屏幕截图等。其中,pyautogui.locateonscreen()函数是用于查找指定图像的函数之一。 pyautogui.locateonscreen()函数需要一个参数来指定要查找的图像。该参数可以是一个图像文件的文件名或一个Image对象。在指定参数后,函数会在屏幕上搜索该图像,并返回一个元组,其中包含图像在屏幕上的位置以及其像素大小。 如果图像未被找到,则该函数将返回None。如果要确保正确地找到图像,可以将函数的tolerance参数设置为一个正整数。该参数指定了允许的颜色差异的最大值。如果找到的图像与指定的图像在该范围内,则该函数会将其视为找到。 除了参数之外,pyautogui.locateonscreen()还有一些其他的关键字参数可供使用。例如,函数的region参数可以用来指定要搜索的屏幕区域。而函数的grayscale参数则可以用来将搜索函数转换为灰度模式,以便更好地匹配图像。 总之,pyautogui.locateonscreen()函数是一个非常有用的函数,可以用于自动查找和识别屏幕上的图像,从而简化自动化任务的编写过程。同时,这一函数也非常容易使用,只要提供一个图像参数即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值