とっちゃん@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番目の画像を画面内から探す
- 見つかったら画像の中心座標をクリック
- 複数画像を指定した場合は2番目・3番目と順番に1.~2.を繰り返す
注意点は以下の通りです。
- 画像が見当たらない場合はすぐに終了する(複数画像の場合は次の画像にスキップする)
- 画像は画面内に大部分が表示されていないと見つからないと処理されてスキップされる
ウィンドウに隠れていたり、大部分が画面外にある画像は見つからないとされてしまいますにゃ~
▼サクッとすぐに使えるように下記より.pyファイルのダウンロードも可能です(zip圧縮しています)。
→複数画像を認識して順番にクリックする.pyファイルをダウンロード
おわりに
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント