. Pythonで画像を認識してクリックするには? - オン香講師の将棋教室以外の話
Pythonで画像を認識してクリックするには? - オン香講師の将棋教室以外の話
Pythonで画像を認識してクリックするには? - オン香講師の将棋教室以外の話

Pythonで画像を認識してクリックするには?

「pyautogui.locateOnScreen()」のオプションに「confidence」というものがあり、画像を見つける精度を指定できます。 つまり、 似た画像もクリック対象にしたい場合は、「pyautogui.locateOnScreen()」で座標を見つけて、中央の座標に変換し、「pyautogui.click()」する 流れです。 なお、 「confidence」を使うには外部ライブラリ「OpenCV」がインストールされている 必要があります。また指定する数値は何でも良いものの、「0 「while」と組み合わせることで画像が表示されるまで待つことができます。

import pyautogui import time while pyautogui.locateOnScreen('a.png',confidence=0.9) == None: time.sleep(1)

複数の画像を認識したい場合は?

import pyautogui for a in pyautogui.locateAllOnScreen('a.png',confidence=0.8): print(a) # ⇒ Box(left=〇, top=〇, width=〇, height=〇) 2番目に見つけた画像だけに処理をするには?

「pyautogui.locateAllOnScreen()」の戻り値に 「list()」を使い、配列に変換する と可能です。

import pyautogui a = pyautogui.locateAllOnScreen('a.png',confidence=0.7) print(list(a)[1]) # ⇒ 2番目に見つかった画像の座標が取得できる

まとめ

Pythonで画像をクリックしたい場合は、「pyautogui.click('【画像ファイル名】')」の1行でできます。 似た画像は「pyautogui.locateOnScreen('【画像ファイル名】',confidence=)」で、認識できますし、複数の画像は「pyautogui.locateAllOnScreen()」を使えば操作できます。 画像ファイルの作成でつまづいたところがあって、スクリーンショットを切り抜いて作ったのに完全一致しないのはどういうことだ?と、悩んでいたら、使っていた画像編集ソフトが保存時に自動で圧縮をかけていたのが原因だった、というオチでした。

コメント コメントをキャンセル 関連記事 Pythonのinput関数で改行を扱うには?

前回までで、画像編集に関して1通りやりたいことは終わりました。 最後に、汎用性を持たせるため、画像に入れたい文字列を「input関数」で入力することに……したところで、問題発生です。 「input関数 .

Pythonで%の付いたURLを変換するには? Pythonで別ファイルの関数を使うには?

前に同一ファイル内に記述した関数を使う方法を調べました。 今回は、別ファイルの関数を使う方法をまとめてみました。 どうやって別ファイルの関数を使うの? import文でサブルーチンのpy .

PythonでCSVファイルを扱うには? Python実行中に文字列を入力するには?

前回、「Google Apps Script」でインプットボックスを使う方法を書きました。 処理の途中でユーザー入力がしたいというのは、ときおり出てきますね。 では、Pythonはどう書くのか? とて .

オンライン将棋教室 香の講師です。 免状は三段、将棋ウォーズは四段、81dojoは五段で指しています。

iPhone SE(第3世代)を買って約1年経ちますが、いまだ新しい発見があって面白いです。 今回はスクリーンショット。 どうやって撮るんだろう?と、撮り方を調べていたら、私には逆立ちしても思いつかない方法があったので、書いてみます。 基本の撮影方法 「サイドボタン + ホームボタン」で撮影します。 ※引用:Apple公式 アップル公式によると、「Touch ID」(いわゆる指紋認証できるタイプ)はホームボタンを使い、「Face ID」(顔認証タイプ)は音量を上げるボタンを使います。 &nb .

いつものようにJavaScriptでHTML要素を取得しようとしたら、エラーが出ました。 なんで?と、思って、Webページのソースを見たら、iframeで作られています。 じゃあ、「.getElementsByTagName('iframe')」でiframe要素を取得して「.getElementsBy~」でアクセスすればいいじゃん?と、思ったら、これまたエラー。 これに、ある単語を書き加えると正しく動くので、その構文を書き留めておきます。 コードの書き方は? iframe要素に対して「co .

以前、Revolutへのクレジットカードチャージで手数料がかかるようになると、投稿しましたが、導入日の4月17日に延期のメールが届きました。 しばらくは手数料無料で使えるようです。 いずれ手数料が導入されると予想されるので、いつでも別の決済手段に移れるように準備しておくのが良いでしょう。

最近は遅延読み込みを採用するサイトが多くなってきました。 参照したい要素が画面外にある場合、読み込んでいないので取得できません。 つまり、要素が画面内に入るまでスクロールする必要があるのです。 では、「Python + Selenium」でブラウザをスクロールさせるにはどうするのか? その方法をまとめます。 コードの書き方は? JavaScriptの「window.scrollTo()」をPythonの「execute_script()」で実行します。 driver.execute_scri .

Revolut(レボリュート)の発表によると、2023年4月17日(月)からクレジットカードチャージした際に1.7%の手数料がかかるようになります。 例えば、1.0%還元のクレジットカードでチャージしても、Revolutで1.7%取られると、0.7%分損するわけですね。 今まで国内でお得に使っていたけれど、使い方を変えなくてはいけません。 どう変えようか、現時点での考えをまとめてみます。 ※4月18日更新 チャージ手数料の導入が延期されています。 公共料金の支払いはどうするか? 公共料金の支 .

  • WordPressのデータベースをプラグインなしで整理してみた に 肥大したWPのデータベースを整理する | 絶賛!みさわのブログ より
  • 【2021年2月時点】Google Apps ScriptからTasksAPIを使ってToDoリストを操作してみた に GTask/開始時刻はどこに? より
  • 差出人不明の郵便物が届いたので、受取拒否してみた に ISAO KUBO より
  • 差出人不明の郵便物が届いたので、受取拒否してみた に 匿名 より
  • 工夫次第で2重縁取りも!Pythonで画像に縁取りした文字を入れるには? に ISAO KUBO より
📎📎📎📎📎📎📎📎📎📎