「Next」だったり「次へ」だったりボタンが変わるけど自動でクリックできないかな? キャプチャーとっておいたけど自動でそれを押せないかな?などなど、簡単に解決!? Twitterフォローなども自動化できるかも!? UWSC 画像認識・画像チェックの超入門編!BMP保存方法も記載^^
UWSC超入門編
UWSC 超入門編 面倒な同じ作業を自動化!のまとめ
上記内容が分かった上での、説明になります。
試しに、「GOOGLEを開き、ログインボタンを押してみる」
やることの流れ
1.画面キャプチャーを撮る
2.押したいボタン部分のみ残し、BMP(24ビット)で保存
3.UWSCで画像認識して、ボタンクリックを実行してみる!
1.画面キャプチャーを撮る
大体の人は知ってますよね!
キーボードの右上あたりにあるかなぁ・・・
2.ペイントに貼り付け、ボタン部分のみ残し、BMP保存
PrintScreenキーを押す。
ペイントを開き、
CTRL +V で貼り付け。
クリックしたいボタンを範囲選択し、
CTRL + C でコピーします。
コピーしたら、
表示しているペイントサイズ?を小さくします。
右下に□があるので、
それをクリックして、
左上に運んで画像を小さくしよう!
小さくなったら、それに
コピーしておいたものを貼り付けます。
(左図のボタンは拡大表示してます)
クリックしたい範囲以外を保存すると
クリックできなくなります。
(ログインボタンの周りに
余分なものを書いたり?すると
クリックできません。
クリックしたい範囲「のみ」を保存」
名前を付けて保存
BMPを選択します。
24ビット ビットマップ(*bmp)
であることを確認し、
保存します。
3.UWSCで画像認識して、ボタンをクリックしてみる
IFB CHKIMG(“sample1.bmp”) // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MSGBOX(“画像認識に成功しました。<#CR>G_IMG_X = ” + G_IMG_X + “<#CR>G_IMG_Y = ” + G_IMG_Y)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX(“画像認識に失敗しました。”)
ENDIF
上記方法では、座標が分かるだけ?です。
それをクリックするにはどうすれば良いか?
IFB CHKIMG(“sample1.bmp”) // 認識させたい画像ファイルを指定する
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
ELSE // 画像認識に失敗した場合の処理をここに書く
MSGBOX(“画像認識に失敗しました。”)
ENDIF
1秒ごとに監視して、クリックしたい場合は?
While True
//例えば、C:\Users\コンピュータ名\デスクトッ\uwsc510\BMPフォルダにある
//TEST.bmpを監視。
fname = “C:\Users\ComputerName\Desktop\uwsc510\BMP\TEST.bmp”
ifb !CHKIMG( fname,0,1,1,IMG_MSK_BGR4 ) and !CHKIMG( fname, -1, 1, 1 )
//画像が見つからない場合…
Sleep(1)//とりあえず1秒待つ
else//画像が見つかった場合
gid = GETID(“Google”)//Googleを含むウィンドウを選択。
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)// 画像の位置を、クリック!!
sleep( 1)
endif
Wend
ESC押すまで実行したいよ!!!!
> ・ESCを押したら強制終了できるようにしたい
// これをスクリプトの最初の方に書いておく
sethotkey(VK_ESC, 0, “ForceStop”)
// これをスクリプトの最後に書いておく
procedure ForceStop()
exitexit
fend
以前記載したのは間違っておりました。
失礼いたしました。
ログの書き出し方
fopen、fput、fclose
または
// これをスクリプトの最初に書いておく
OPTION LOGPATH=”動作ログ.txt”
// print窓を非表示にする
logprint(false)
// 記録したいログの内容をprintする
print “記録したいログ”
UWSC掲示板にはいつも見ていますが
色んな情報が載っていて最高ですね…!皆さんお優しいですし、良い人ばかり!
注意点
IEの拡大、縮小などをやってしまうと
画像判定が上手く出来ませんorz
BMPも24ビット形式でないと、上手く反応してくれませんorz
私の適当プログラムも混じっているので
上手く行かないかもしれません…
CHECKIMGの説明
CHKIMG関数
指定画像が画面上にあるかチェックする
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
画像名
(相対パスまたは絶対パスで)画像ファイル名 ※BMP形式のみ
透過色/色無視:
0:指定なし(デフォルト)
1:左上、2:右上、3:左下、4:右下の1ピクセルの色を透過色として処理
-1:色を無視して形でチェックする
x1, y1, x2, y2:サーチ範囲
番号
複数ある場合の左上からの順番を指定
-1が指定された場合はヒットした数を戻値として返し、
座標情報はALL_IMG_X[], ALL_IMG_Y[] に格納
G_IMG_X、G_IMG_Yには最後にヒットした位置が入る
色幅
チェックに色幅を持たせる
色無視指定時もしくは16bitカラー以下の場合は無効
IMG_MSK_BGR1:各色(BGR)に対し 2/256の色幅を許可
IMG_MSK_BGR2:各色(BGR)に対し 4/256の色幅を許可
IMG_MSK_BGR3:各色(BGR)に対し 8/256の色幅を許可
IMG_MSK_BGR4:各色(BGR)に対し 16/256の色幅を許可
–
IMG_MSK_B1, 2, 3, 4:青に対し 2/256, 4/256, 8/256, 16/256の色幅を許可
IMG_MSK_G1, 2, 3, 4:緑に対し 2/256, 4/256, 8/256, 16/256の色幅を許可
IMG_MSK_R1, 2, 3, 4:赤に対し 2/256, 4/256, 8/256, 16/256の色幅を許可
※演算可 例:IMG_MSK_B1 or IMG_MSK_R3
青に対し 2/256の色幅を許す + 赤に対し 8/256の色幅を許可
画像を取得していくのが面倒だよ!という人のために
画面のキャプチャ及び画像保存ソフト
指定した範囲を保存できます。bmp24bitも保存可能!!
試してみます。
とても参考になるサイト様!
UWSCサンプル&画像認識テクニック Menu Skip to content ホーム サイトマップ 当サイトについて CHKIMG関数の使い方 実際に画像認識させる場合のサンプルをいくつか載せたいと思います。 IFではなくIFBを使っているのは処理が複数行に渡る場合を考慮しているからです。 基本的な使い方 まずは基本的な使い方として次のような構造で処理させます。 「//」はコメント用として…
初心者でもわかる? ネットゲームなどのマクロスクリプト作成に利用されているUWSC画像認識入門。 本ブログではUWSCのTIPS記事などもたまに投稿していたりするのですが、記事のアクセス流入の検索キーワードなどを分析すると、どうやらネットゲームなどのマクロスクリプト・自動化botを作成しよ
ブログトップ 記事一覧 ログイン 無料ブログ開設 プログラミングとIT技術をコツコツ勉強するブログ 2014-06-27 UWSCのCHKIMG関数による画像認識で,うまく認識しない原因と対処法 UWSC UWSCで画像認識するためのCHKIMG()関数だが, うまく画像認識しないケースがある…
UWSCサンプル&画像認識テクニック Menu Skip to content ホーム サイトマップ 当サイトについて 画像認識の高速化と精度を高める方法 画像認識は多少処理に時間がかかってしまいます。複数の画像を認識させる場合はそれだけ時間がかかってしまうので思いのほか時間がかかってしまうかもしれません。 処理に時間がかかりすぎてしまっては使い物にならないので画像認識を高速化させるテクニックを…