Python基础之图像识别

你的名字 2022-12-18 01:57 320阅读 0赞

Python基础之图像识别

文章目录

  • Python基础之图像识别
    1. 获取屏幕截图
    1. 识别图像
    1. 自动点赞程序

1. 获取屏幕截图

我们控制鼠标的操作,不能盲目的进行,所以我们需要监控屏幕上的内容,从而决定要不要进行对应的操作, pyautogui 提供了一个方法screenshot(),可以返回一个Pillow的image对象;

这里有三个常用函数:

im = pyautogui.screenshot():返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)):返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400)) :是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;

  1. im = pyautogui.screenshot()
  2. im.save('屏幕截图.png')

保存屏幕截图;

2. 识别图像

首先,我们需要先获得一个屏幕快照,例如我们想要点赞,我们就先把大拇指的图片保存下来;然后使用函数:locateOnScreen(‘zan.png’) ,如果可以找到图片,则返回图片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到图片,则返回None;
如果,屏幕上有多处图片可以匹配,则需要使用locateAllOnScreen(‘zan.png’) ,如果匹配到多个值,则返回一个list,参考如下:

  1. import pyautogui
  2. pyautogui.PAUSE = 1
  3. # 图像识别(一个)
  4. btm = pyautogui.locateOnScreen('zan.png')
  5. print(btm) # Box(left=1280, top=344, width=22, height=22)
  6. # 图像识别(多个)
  7. btm = pyautogui.locateAllOnScreen('zan.png')
  8. print(list(btm)) # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)]

pyautogui.center((left, top, width, height)) 返回指定位置的中心点;这样,我们就可以再配合鼠标操作点击找到图片的中心;

3. 自动点赞程序

我们需要将所有的文章点赞,本页上的点赞完成后,就滚动鼠标,把新加载的文章也全部点赞;

在这里插入图片描述
代码如下:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # author:Zhang Kai
  4. import pyautogui
  5. import time
  6. def zan():
  7. time.sleep(0.5) # 等待 0.5 秒
  8. left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 点赞图片;
  9. center = pyautogui.center((left, top, width, height)) # 寻找 图片的中心
  10. pyautogui.click(center) # 点击
  11. print('点赞成功!')
  12. while True:
  13. if pyautogui.locateOnScreen('zan.png'):
  14. zan() # 调用点赞函数
  15. else:
  16. pyautogui.scroll(-500) # 本页没有图片后,滚动鼠标;
  17. print('没有找到目标,屏幕下滚~')

运行后,会逐个进行点赞:
在这里插入图片描述
Pycharm中的输入如下:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,320人围观)

还没有评论,来说两句吧...

相关阅读