画像をクリックする Autoitで画像認識

Autoit画像認識

Autoitは、UWSC以上に賢いと思います。
jpg,Bmp,Pngいろいろな画像を探しクリックしてくれます。かなり正確に探してくれます。

Autoitは、Basic言語のようなスクリプトで、IE・Chromeなどのブラウザ,Excel・LibreOfficeなどの表計算,オンラインゲームなどを自動で動かせるようにできます。

スポンサーリンク

_ImageSearch関数使うためにすること

:_英語サイトですが、途中にダウンロードのリンクがあります。

au3ダウン先
ImageSearch.au3
ImageSearchDLL.dll
上の2つのファイルが必要です。

関数の使い方(引数)

_ImageSearch(“画像ファイル名”, 左上or真中, $x, $y, 許容値)
左上or真中:0または1 取得する座標の位置の違いです。
$x $yには画像が見つかったとき、座標が入ります。
許容値:探す画像少し違っても探し出すかです。(よく理解できません)

_ImageSearch(‘twitter.png’,1,$x, $y,0)  0~256を試す

関数の最後のパラメータの値を変化させ、色々実験してみます。

0

ゼロに設定

ゼロOK

inputBoxでパラメータを設定してます。目的の画像に移動してます。

探してる画像はこれです。

twitter twitterのアイコン画像です。

255  似たものを探してしまいます。画面のはじから探し始めます

255

左上から探し始めるので、ゴミ箱横に行ったと思われます。

100  別の違うところ

100

サンプル:Google Sheet のセルに色を塗る

Google sheetのツールバーアイコンを画像認識しています。

背景色アイコン

セルの背景色を黄色に変えます。「s」押すだけであとは自動です。
色パレットのアイコン探し、中から黄色の画像探しクリックしてます。

color_choice

#include "ImageSearch.au3"
 
HotKeySet("s", "checkForImage")
 
global $y = 0, $x = 0
 
Func checkForImage()
    Local $search = _ImageSearch('color.png',1,$x, $y,0)
    If $search = 1 Then
        MouseClick("left",$x, $y, 1,50)
    EndIf
    Local $search = _ImageSearch('yellow.png',1,$x, $y,0)
    If $search = 1 Then
        MouseClick("left",$x, $y, 1,50)
    EndIf
EndFunc
 
while 1
    sleep(200)
WEnd

 _ImageSearch(‘color.png’,1,$x, $y,0) ;// 最後の「0」大きくすると曖昧?

0~255

 

検索する画像を簡単に作る

Rapture

Raptureというフリーソフトを使うと簡単に、画像を切り取り検索用に利用できます。

アイコンをクリックし起動したら、切り取りたい部分を指定するだけです。

サンプル:計算機のボタンを押す

計算機ボタン押す

命令文:

   _ImageSearch(‘2.bmp’,1,$x, $y,100) ; PC全画面の中から「2」を探してます。
#include "ImageSearch.au3"

HotKeySet("p", "checkForImage")

global $y = 0, $x = 0

Func checkForImage()
    Local $search = _ImageSearch('2.bmp',1,$x, $y,100)
    If $search = 1 Then
        MouseClick("left",$x, $y)
    EndIf
    EndFunc

    while 1
    sleep(200)
WEnd

PC全画面の中から「2」を探しているので、多少時間がかかります。

どこにその画像が現れるかわかるなら、範囲を指定すれば見つけるのも早くなります。

_ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance)

画像認識するためにはユーザー関数ファイルが必要です

● 画像クリックするためには、AutoitのMainファイル以外に有志の人が作ったユーザー関数ファイルが必要です。

 

ファイルを手に入れる場所

このサイトの中ほどにあります。

Windows10なら、64bit版をクリックしてください。
下、ダウンする直接のアドレスです。

~.rar  圧縮ファイルの1種です

解凍するとこのようになります。

2つとも必要です。

サンプル windowsアイコンに移動

上記2つのファイルをスクリプトと同じところに入れます


パスの設定とか面倒なので、最初は同じところに入れてください。

サンプルコード

#include "ImageSearch.au3"

HotKeySet("p", "checkForImage")

global $y = 0, $x = 0

Func checkForImage()
    Local $search = _ImageSearch('win-start.png',1,$x, $y,100)
    If $search = 1 Then
        MouseMove($x, $y, 10)
    EndIf
    EndFunc

    while 1
    sleep(200)
WEnd

ホットキー(ショートカットキー)として「p」を指定しています。

Pキーを押すとWindowsーstartボタンにマウス動きます。

画像はPNGで、私は保存しています。

XYの座標を取得することできます
$result =_ImageSearch(‘画像ファイル名’,画像のどこ(左上または中心),X座標, Y座標,100)
$resultには画像があれば「1」

コメント

タイトルとURLをコピーしました