knowledge 【画像認識】画像で判別して操作対象の位置(座標)を取得する

画像から判別して操作対象の位置(座標)を取得したい場合、
「画像- 画像認識」アクションを使って処理します。
AutoMateにて画像認識を実施する方法は以下の手順になります。

※事前に操作したい対象の画像(検索する画像)を保存しておく必要があります。
・検索する画像の一例(コントロールパネル内「システムとセキュリティ」のアイコン)

■処理の手順
① 対象の画面を開く
(画像認識で探し出す際は、座標による操作を行うためウィンドウを最大化する)
② 検索される画像(スクリーン画面全体)をキャプチャーし保存

③ ループで徐々に許容値を上げながら、画像認識を実施
(許容値が「0」の場合、完全一致となるので、許容値を上げて制限を緩めていく)
④ 合致した場合、合致位置をデータセットで取得し、ループを抜ける
⑤ ④で取得した座標の位置にマウスを移動させ、クリックさせる

■画像認識の注意点
検索対象にマウスオーバーするとアイコンに変化が起きる(例:背景色が変わる)場合
変化後の状態では画像認識ができなくなります。
その場合は画面キャプチャー時にマウスオーバーしないよう、
「入力 - マウスの移動」アクション等で検索対象と離れた位置にマウスを移動させます。
・認識できる場合

・認識できない場合(マウスオーバーして背景色が変化した状態)

■サンプル
以下はサンプルです。
コントロールパネルを立ち上げ、「システムとセキュリティ」のアイコンを画像認識で探し、その位置をクリックする処理です。
別の画面や画像で確認する場合は、画面を立ち上げる処理や探す画像のパスを想定に合わせて変更します。
※「検索する画像.png」の画像を右クリックして保存しデスクトップ上に配置した上で実行してください。

<!--許容値を10で始める-->
<AMVARIABLE NAME="var_Tolerance" VALUE="10" />
<!--探したい画像を変数に格納する-->
<AMVARIABLE NAME="var_Search" DESCRIPTION="座標を取得したい対象の画像(画像はあらかじめ用意します)">%GetDesktopDirectory()%\検索する画像.png</AMVARIABLE>
<AMVARIABLE NAME="var_CaptureScreen" DESCRIPTION="画像認証の対象となる画像(この画像から探します)">%GetDesktopDirectory()%\Capture.png</AMVARIABLE>
<AMRUN FILE="control" />
<AMWAIT ACTIVITY="window" WINDOWTITLE="コントロール パネル" />
<AMWINDOW ACTIVITY="maximize" WINDOWTITLE="コントロール パネル" />
<AMWINDOW WINDOWTITLE="コントロール パネル" />
<AMWINDOW WINDOWTITLE="コントロール パネル" />
<AMWAIT SCALAR="2" />
<!--画面をコピーし、デスクトップに張り付ける-->
<AMIMAGE ACTIVITY="capture_screen" FILE="%var_CaptureScreen%" />
<!--許容値を10ずつ上げループさせる-->
<AMLOOP FROM="1" TO="5" />
<!--画面と探したい画像を比較し、取得したデータをデータセットに格納する-->
<AMIMAGE ACTIVITY="image_recognize" HAYSTACKIMAGE="%var_CaptureScreen%" TOLERANCE="%var_Tolerance%" DATASET="dataset" NEEDLEIMAGE="%var_Search%" />
<!--認識に成功し、データセットを取得できていればループを抜ける-->
<AMIF EXPRESSION="%dataset.IsFound% = True" />
<AMBREAK />
<AMIF ACTIVITY="end" />
<AMVARIABLE ACTIVITY="increment" RESULTVARIABLE="var_Tolerance" AMOUNT="10" />
<AMLOOP ACTIVITY="end" />
<!--画像認識した座標にマウスを移動させ、クリックする-->
<AMINPUT ACTIVITY="move_mouse" X="%dataset.X%" Y="%dataset.Y%" DELAY="500" />
<AMINPUT ACTIVITY="click_mouse" />

■関連記事
画像識別機能「画像 - 画像認識」アクション使用時の前提条件

検索用キーワード:画像マッチング、画像解析