【Python】複数の画像を認識して順番にクリックするコード

本ブログはアフィリエイト広告を利用しています

WEB / アプリ
WEB / アプリ
この記事は約3分で読めます。

とっちゃん@nyanco! です。

今回は複数の画像を認識して任意の順番に自動でクリックするPythonコードの共有です。

肉玉にゃんこ

ハードル高めなイメージの画像認識ですが、アクションを絞れば短めのコードでサクッと使えますにゃ~

スポンサーリンク

コードの動作環境

  • OS:Windows10
  • Pythonバージョン:3.11.2
  • 必要ライブラリ:
    • pyautogui
    • time(python標準ライブラリなのでインストール不要)

必要ライブラリをインストールするコードは以下となります。

pip install pyautogui

複数の画像を認識して順番にクリックするコード

早速ですがコードはこちら!

import pyautogui
import time

def click_image(image_path):
    try:
        # 画像を画面上で探す
        location = pyautogui.locateOnScreen(image_path, confidence=0.8)
        if location:
            # 画像の中心座標を取得
            center = pyautogui.center(location)
            # クリック
            pyautogui.click(center)
            print(f"Clicked on {image_path}")
            return True
    except pyautogui.ImageNotFoundException:
        print(f"Image {image_path} not found on screen")
    return False

# クリックする画像のリスト ※相対パス、絶対パスどちらでもOK。複数ファイルは「,」で区切る
images = ['image1.png', 'image2.png', 'C:/Users/test/Desktop/image/image3.png']

for image in images:
    if click_image(image):
        # 3秒待機
        time.sleep(3)
    else:
        print(f"Skipping {image}")

コードは自動生成AI「perplexity」で作成したものを元にカスタマイズしています。

自分用にカスタマイズする箇所は以下の2点です。

  • 20行目:クリックしたい画像データ(スクショでもOK)のファイルパスを指定。複数ファイル指定する場合は「,(カンマ)」で区切ればいくつでも可能で、左から順番に処理される。
  • 25行目:sleep(3)の数値を変更することで、待機時間を変更可能(秒で指定)

以下、python実行後の簡単な流れです。

  1. コードを実行すると、まずリストに登録された1番目の画像を画面内から探す
  2. 見つかったら画像の中心座標をクリック
  3. 複数画像を指定した場合は2番目・3番目と順番に1.~2.を繰り返す

注意点は以下の通りです。

  • 画像が見当たらない場合はすぐに終了する(複数画像の場合は次の画像にスキップする)
  • 画像は画面内に大部分が表示されていないと見つからないと処理されてスキップされる
肉玉にゃんこ

ウィンドウに隠れていたり、大部分が画面外にある画像は見つからないとされてしまいますにゃ~

▼サクッとすぐに使えるように下記より.pyファイルのダウンロードも可能です(zip圧縮しています)。

→複数画像を認識して順番にクリックする.pyファイルをダウンロード

おわりに

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント