【自動化導入手順④】画像認識用ファイルの保存とプログラム内座標の変更

自動化

この章が終わればいよいよプログラムの実行です!ここが山なので頑張りましょう。

画像認識用ファイルの保存

今回の自動化プログラムは、画像認識を行ったものになっています。その為、画像認識用の画像ファイルが必要となります。必要になる2つの画像の保存方法について説明します。

使用するPCの解像度、画面の大きさで細かい部分が変わるので、同じ部分を自分用に撮り直す必要があります。

smartseat.png
keibatime.png

↑今回使用する2つの画像

JRA指定席ネット予約にアクセスし、開催場所日時を選び、お任せ席を展開した状態にして下さい。

プログラムの性質上、お任せ席を展開した状態でお任せ席の下端まで画面に収まるようにする必要があります。なので私の場合画面のズームを33%にしています。ここはお使いのPCで変わるので、各々画面にすべて収まる倍率に変更して下さい。

また、画像を保存する際も倍率で画像のデータが変わってしまうので、実際に使用する際の倍率でのスクリーンショットをして下さい。

残りわずかの状態(△)のスマートシートの部分(「smartseat.png」の該当部分)を同じようにトリミングします。場所は前回「keiba.py」を保存した場所と同じ、Usersフォルダの新しく作成したフォルダ「autokeiba」の中に保存して下さい。名前は「smartseat.png」ではなく「smartseat」で保存して下さい。拡張子が.pngになっているかだけ確認が必要です。

次にどの席でもいいので仮押さえを行って以下の画面を表示させます。車いす席だと比較的押さえ易いです。仮押さえ残り時間の部分(「keibatime.png」の該当部分)を同じようにトリミングして保存して下さい。保存場所、保存名の決め方は上と同じです。

他の人に迷惑が掛からないように、スクリーンショットが取れたら早めに仮押さえを取り外してあげて下さい。

2つの画像を保存し終えたらエクスプローラを開いて確認してみましょう。この様にUsersフォルダ内autokeibaフォルダの中に3つのファイルが並んで表示されればOKです。黒塗りの部分は私の場合「k17pl」です。

プログラム内の座標の変更

実際にプログラムを使用する為には、プログラム内の指定フォルダ、座標を自分のPCにあった数値に変更する必要があります。ここでは変更の仕方について説明します。

x,y = pg.locateCenterOnScreen内の 指定先フォルダの変更

まずは画像認識の機能を使用するうえで必要な、画像の指定先フォルダの変更を行います。

変更するのは、10,14,25行目の部分です。白線が引いてある部分をご自身のものに変更して下さい。またUsersフォルダ内の新規ファイル、画像ファイル名を独自のものに変更した方はそこも併せて変更して下さい。

クリック座標の変更

プログラム内にある「pg.click」は画面上の指定されたx,y座標をクリックします。なので使用するPC毎に設定を変更する必要があります。

使用されているPCがレッツノート SZ6 (Let’s note CF-SZ6) で推奨解像度(1920×1200)設定、Google Chromeで動作の場合のみ、プログラム内の座標を変えずに使用する事が可能。ディスプレイが12.1インチなので、同じ大きさのPCも使用可能かもしれません。

まずは画面上の座標の出し方について説明します。

コマンドプロンプトを起動し、以下のコマンドを実行しPythonを起動して下さい。文頭に「>>>」が表示されたらOKです。

python

次に以下のコマンドを打ち込んでください。Enterキーを押すと現在カーソルがある場所の座標が表示されるはずです。

import pyautogui
pyautogui.position()

スクリーンショットでは画面上のカーソルが消えてしまうため解りづらいですが、左上にカーソルを合わせていたのでx,y座標は(0,0)と表示されました。

キーボードの左下にある「↑」キーを押すと、直前に実行したコマンドが表示されるので便利です。

画面上の座標は以下の様に決められています。私が使用しているPCの解像度は(1920×1200)の設定になっているので、画面の左上は(x,y=0,0)、 画面の右上は(x,y=1920,0)、 画面の左下は(x,y=0,1200)、 画面の右下は(x,y=1920,1200)となります。

座標の取り方がわかった所で、プログラム内の座標を変更していきましょう。

変更する該当箇所は7,8,9,17,20,21,22,23行目で、それぞれ以下のボタンに対応しています。これはプログラム内の同じ行に#で明記していますので、そちらでもご確認ください。

行目対応ボタン
7#注意事項を確認しましたボタン
8#次へ進むボタン
9#おまかせ席展開ボタン
16#x,y座標から指定した値(x方向に280,y方向に-5だけ移動(座席選択ボタン)
18#選択した席を検討に追加
19#1から2人に(展開ボタン)(2人用)
20#1→2人にするボタン(2人用)
21#仮押さえ確定ボタン

若い番号から座標を取っていきます。7,8行目の座標を取る際にカーソルを合わせる場所です。

9行目です。

16行目は座席選択ボタンです。先程保存した「smartseat.png」(残りわずかの席)の真ん中のx,y座標から座席選択ボタンまでのx,y距離を割り出して書き換えてください。

18行目です。

19,20,21行目は以下の通りです。

取れた座標をVSCodeプログラム内の該当箇所に入力して下さい。その際x,y座標以外は変更しない様に注意して下さい。

最後はしっかり保存ボタンを押して下さい(大事です!)。以上で今回の作業は終了です。

これでほぼ自動化プログラムの導入が終わりです。お疲れ様でした!次章ではいよいよ実行に移ります!

コメント

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