PyAutoGUIは、Pythonでスクリプトを書いてコンピュータの操作を自動化するためのライブラリです。
PyAutoGUIを使うことで、次のようなことができます。
- マウスカーソルの移動
- マウスクリック(左、右、中央)
- マウスホイールスクロール
- キーボード入力
- ファイルのドラッグアンドドロップ
- キーボードのショートカット(Ctrl + C、Ctrl + Vなど)
- キャプチャスクリーンショット
- 画面上の特定の画像を探す
PyAutoGUIを使えるようになると、RPAを実装することができます。
今回はPyAutoGUIのlocateOnScreenで、画像検索の精度を指定する方法をご紹介します。
PyAutoGUIのlocateOnScreenで画像検索の精度を指定する方法【confidence引数】

PyAutoGUIの「locateOnScreen()」関数には、画像検索の精度を指定する「confidence」引数があります。
この引数は、0から1までの数値で指定します。数値が高いほど、画像検索の精度が高くなります。
次のように「confidence」引数を使用することで、画像検索の精度を設定することができます。
import pyautogui
# Set the confidence level to 0.9
location = pyautogui.locateOnScreen('image.png', confidence=0.9)
# Check if the image was found on the screen
if location:
print("Image found on screen at:", location)
else:
print("Image not found on screen")
NotImplementedError: The confidence keyword argument is only available if OpenCV is installed.」というエラーが発生する場合
「NotImplementedError: The confidence keyword argument is only available if OpenCV is installed.」というエラーが発生する場合、OpenCVがインストールされていない可能性があります。
このエラーを解決するには、以下の手順を実行してOpenCVをインストールする必要があります。
conda install opencv
pip install opencv-python
このコマンドを実行することで、OpenCVが正常にインストールされます。この後、再度「locateOnScreen()」関数を呼び出すことで、「confidence」引数を使用することができます。
尚、PyAutoGUIはOpenCVを使用して画像を検索するため、「import cv2」などとOpenCVをインポートする必要はありません。
PyAutoGUIが内部的にOpenCVを使用するため、「import pyautogui」のみで画像検索の機能を利用することができます。
それでもエラーが起きる場合
それでもエラーが起きる場合は、一度jupyternotebookを閉じて再度実行してみましょう。
Jupyter Notebookにはキャッシュがあることがあり、パッケージを再インストールしても正しく読み込まれないことがあります。
一度Jupyter Notebookを閉じて再度実行することでキャッシュがクリアされ、正しく読み込まれるようになることがあります。
locateOnScreen()関数でconfidenceはどのくらいに設定べきか?
confidenceには画像認識に対する最低の類似度のしきい値を設定することができます。
一般的にはconfidence値を0.9から0.99までに設定するのが良いとされていますが、実際には画像の検索条件や環境によって異なりますので、実際に動作させて試してみて最適な値を決定することが望ましいです。
confidenceパラメータを低くすることで、誤った画像をマッチすることがあります。
これは、正しい画像と似たような他の画像とマッチしてしまうことが原因です。
そのため、誤った画像の上で操作を実行することがあり、望ましくない結果になる可能性があります。
また、高いconfidence値は、誤った画像とのマッチングを防ぐことができる一方で、正しい画像が見つからない場合にもトラブルを引き起こす可能性があります。
そのため、confidence値は画像認識の要件と使用環境に応じて適切に調整することが重要です。
もっと効率的に勉強したい方
独学での勉強に限界を感じている方は、思い切って課金するのも手です。
udemyなら基礎的な知識を短期間でマスターすることが可能です。
僕も最初の頃は、udemyの動画で勉強しました。
講師のコードを見ながら作成できるので、成長速度が非常に早くなりました。
数千円で数十時間の節約になるので、悩んでいる方はケチらず投資していきましょう!
コメント