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

Autoitで画像認識

Autoitは、UWSC以上に賢いと思います。それにUWSCのサイト閉鎖されたようです。jpg,Bmp,Pngいろいろな画像を探しクリックしてくれます。かなり正確に探してくれます。

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

Autoitがあるサイト:

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

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

au3ダウン先

ImageSearch.au3
ImageSearchDLL.dll

この2つのファイルが必要です。

スクリプトのヘッド部分(先頭)に:

#include "ImageSearch.au3"

そして、上記2つの必要ファイルはスクリプトと同じフォルダに入れてください。(一番簡単)

関数の使い方(引数)

_ImageSearch(“画像ファイル名”, 0(左上)or1(真中), $x, $y, 許容値)

左上or真中:0または1 取得する座標の位置の違いです。

$x $yには画像が見つかったとき、座標が入ります。

許容値:探す画像少し違っても探し出すかです。(よく理解できません)

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

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

0   _ImageSearch(‘twitter.png’,1,$x, $y,0)

ゼロに設定
ゼロOK

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

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

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

255  _ImageSearch(‘twitter.png’,1,$x, $y,255)

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

255

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

100  _ImageSearch(‘twitter.png’,1,$x, $y,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)

サンプル 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」

Windowsのスタートアイコンをクリック

コメント

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