Reconocimiento de imágenes basado en Python
Directorio de artículos
1. Toma una captura de pantalla
Controlamos el funcionamiento del mouse y no se puede realizar a ciegas, por lo que necesitamos monitorear el contenido en la pantalla para decidir si realizar la operación correspondiente.pyautogui proporciona un método de captura de pantalla () que puede devolver un objeto de imagen de Pillow;
Hay tres funciones de uso común:
im = pyautogui.screenshot()
: Devuelve la captura de pantalla de la pantalla, que es un objeto de imagen Pillow
im.getpixel((500, 500))
: devuelve el color del píxel en (500, 500) en el objeto im, que es una tupla RGB
pyautogui.pixelMatchesColor(500,500,(12,120,400))
: es una función de contraste y la comparación está en la pantalla (500, 500) ¿Es el color del píxel en este punto el mismo que el del elemento dado?
im = pyautogui.screenshot()
im.save('屏幕截图.png')
Guarde la captura de pantalla;
2. Reconocer la imagen
Primero, necesitamos obtener una captura de pantalla. Por ejemplo, si queremos dar me gusta, primero guardamos la imagen del pulgar; luego usamos la función: localizarOnScreen ('zan.png'), si se puede encontrar la imagen, devuelva la ubicación de la imagen , Por ejemplo: Cuadro (izquierda = 25, superior = 703, ancho = 22, alto = 22); si no se puede encontrar la imagen, devuelve Ninguno;
si hay varias imágenes en la pantalla que pueden coincidir, debe usar LocateAllOnScreen ('zan .png '), si coinciden varios valores, se devuelve una lista, como sigue:
import pyautogui
pyautogui.PAUSE = 1
# 图像识别(一个)
btm = pyautogui.locateOnScreen('zan.png')
print(btm) # Box(left=1280, top=344, width=22, height=22)
# 图像识别(多个)
btm = pyautogui.locateAllOnScreen('zan.png')
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))
Devuelve el punto central de la posición especificada; de esta manera, podemos hacer clic con el mouse para encontrar el centro de la imagen;
3. Programa de Me gusta automático
Necesitamos dar me gusta a todos los artículos. Una vez que los me gusta en esta página hayan terminado, mueva el mouse para que me gusten todos los artículos recién cargados;
el código se muestra a continuación:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai
import pyautogui
import time
def zan():
time.sleep(0.5) # 等待 0.5 秒
left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 点赞图片;
center = pyautogui.center((left, top, width, height)) # 寻找 图片的中心
pyautogui.click(center) # 点击
print('点赞成功!')
while True:
if pyautogui.locateOnScreen('zan.png'):
zan() # 调用点赞函数
else:
pyautogui.scroll(-500) # 本页没有图片后,滚动鼠标;
print('没有找到目标,屏幕下滚~')
Después de ejecutarlos, les gustará uno por uno:
La entrada en Pycharm es la siguiente: