Pythonに基づく画像認識
1.スクリーンショットを撮る
マウスの操作を制御し、盲目的に実行することはできないため、画面のコンテンツを監視して、対応する操作を実行するかどうかを決定する必要があります。pyautoguiは、Pillowイメージオブジェクトを返すことができるメソッドscreenshot()を提供します。
一般的に使用される機能は3つあります。
im = pyautogui.screenshot()
:ピロー画像オブジェクトである画面のスクリーンショットを返します:
im.getpixel((500, 500))
RGBタプルであるimオブジェクトの(500、500)のピクセルの色を返します:
pyautogui.pixelMatchesColor(500,500,(12,120,400))
コントラスト関数であり、コントラストは画面上にあります(500、500)この時点でのピクセルの色は、指定された要素と同じですか。
im = pyautogui.screenshot()
im.save('屏幕截图.png')
スクリーンショットを保存します。
2.画像を認識します
まず、スクリーンショットを取得する必要があります。たとえば、気に入った場合は、最初に親指の画像を保存し、次に関数locateOnScreen( 'zan.png')を使用します。画像が見つかった場合は、画像の場所を返します。 、例:Box(left = 25、top = 703、width = 22、height = 22);画像が見つからない場合は、Noneを返します。
画面上に一致する画像が複数ある場合は、locateAllOnScreen( 'zan)を使用する必要があります。 .png ')、複数の値が一致した場合、次のようにリストが返されます:
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))
指定した位置の中心点を返します。このようにして、マウスでクリックして画像の中心を見つけることができます。
3.オートライクプログラム
すべての記事を高く評価する必要があります。このページの「いいね」が完了したら、マウスをスクロールして、新しく読み込まれたすべての記事を高く評価します。
コードは次のように表示されます。
#!/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('没有找到目标,屏幕下滚~')
実行後、それらは1つずつ
高く評価されます。Pycharmの入力は次のとおりです。