最新閲覧日:

環境はwindows8.1です。
私は、genymotionという仮想androidを使いゲームのポチポチするようにしたいです。
画像認識のスクリプトを組んだのですが、先日質問さしてもらってchkimgする時に色の認識幅を設定しなければ画像認識できないとわかったので、いろいろ調べたのですが色の幅を設定するスクリプトの組み方がよくわかりません。

普通の画像認識スクリプトは、

ACW(GETID("Genymotion for personal use - Google Nexus 7 - 4.3 (800x1280, 213dpi) - 192.168.56.101","QWidget"),522,121,438,676,0)
IFB CHKIMG("A.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF

です。

このスクリプトに色幅を設定するスクリプトをネットで調べて自分なりに組んでみました。


ACW(GETID("Genymotion for personal use - Google Nexus 7 - 4.3 (800x1280, 213dpi) - 192.168.56.101","QWidget"),522,121,438,676,0)
IFB CHKIMG("A.bmp") // 認識させたい画像ファイルを指定する

Function CheckColorScope(PosX, PosY, Element, BaseValue, Scope)
// 指定された色要素の値を取得
Select Element
Case "R"
ElementValue = PeekColor(PosX, PosY) And $FF;
Case "G"
ElementValue = (PeekColor(PosX, PosY) And $FF00) / $100;
Case "B"
ElementValue = (PeekColor(PosX, PosY) And $FF0000) / $10000;
Default
Result = False; Return;
SelEnd

// 色要素の値が、指定範囲内であれば True を返す
Ifb (ElementValue >= BaseValue - Scope) And (ElementValue <= BaseValue + Scope) Then
Result = True;
Else
Result = False;
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF

これで組んでみましたが、エラーが出ます。
大変面倒なんですが、治していただけないでしょうか?
よろしくお願いします。
添付した画像が認識したい画像です。

「UWSCの色認識幅のスクリプトを正しく治」の質問画像

このQ&Aを見た人が検索しているワード

このQ&Aに関連する最新のQ&A

A 回答 (1件)

一個前の質問に回答したものです


その後気が付いたのですが 元々 https://oshiete.goo.ne.jp/qa/9023762.html から
継続してる質問のようですね

状況からして UWSC以前の問題として BMPや JPG 画像がどういったものなのかという事を
理解されていないことに問題があるのではないかと思われます

今回の質問に関していえば Functionに対して FENDがありませんので
文法的にエラーになるはずです

色幅持たせてカバーする以前に 基本的になぜ 画像認識に失敗しました
となるのかを把握する方が先ではないかと考えます

試しに
SAVEIMG("A.bmp",100,200,300,400)
PRINT CHKIMG("A.bmp")
を実行してみましょう
それで FALSE が表示されるようであれば デスクトップの表示が何かの理由で常に更新されているはずです
(普通は TRUE になるってことです)

それが動くなら 上記SAVEIMG の座標位置を変更して
保存される画像が本来のチェックしたい画像になるように調整して元のスクリプトで動くかを確認してください


元の質問で No3に書かれてる変換ってのは 単純にファイル名をjpgー>bmpに変更したときの話で
(ファイルの中身はJPGでファイル拡張子だけBMP)

No2であなたが疑問に聞かれてる内容の答えは
一旦JPGで保存された画像をペイントなどで開いてBMPとして保存したファイルを意味しますので
(中身BMP拡張子もBMP)
根本的にNo3での回答は意味を取り違えています

なぜそれではダメかってのは最初に書いたBMP・JPG画像がそれぞれどういったものなのかを理解してれば分かります
    • good
    • 0
この回答へのお礼

引き続き私の質問に回答していただいてありがとうござます。

ACW(GETID("Genymotion for personal use - Google Nexus 7 - 4.3 (800x1280, 213dpi) - 192.168.56.101","QWidget"),522,121,438,676,0)
SAVEIMG ("A.bmp",100,200,300,400)
PRINT CHKIMG("A.bmp")
このスクリプトで実行したら無事「TRUE」がでてきました!
BMPやJPGの画像についても理解できました!ありがとうございます。

お礼日時:2015/07/19 19:19

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報