私が書いたスクリプトを実行して、「○行目にIFENDがない」みたいなことをuwscに何回か言われまして治していくと「SyntaxError 15行目:RETURN」が出てきました。調べてみると文の書き方に問題があるみたいなんですが、なにが問題なんかわかりません。よかったら修正していただけないでしょうか?
現在のスクリプトはこれです。
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") // 認識させたい画像ファイルを指定する
ENDIF
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
FEND
// 色要素の値が、指定範囲内であれば 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
No.2
- 回答日時:
>SAVEIMGの座標変えて検出をためしてみたら「True」がでてきました。
このとき保存された(使用した)画像は あなたが希望した
メールアイコン?のイメージになっているということでいいですか? ーーーー 条件1
>ですが、一番最初の質問でした、~~~~ 画像認識に失敗しました。とでてきます。
このとき使った画像も条件1で作成した保存画像をそのまま使ったということでいいですか? --- 条件2
上記の条件1・2が両方 YES という事なのであれば
何かの条件(例えば一定時間毎とかgenymotion起動毎とかウインドウの切り替え毎とか)で
画面上の アイコンの画像が変化しているということになります
このことは一番最初の質問でNo2の回答に(未検出になる2つの可能性の一つとして)すでに書かれていることです
条件1の段階でFALSEにならないのはSAVEIMG後 時間を置かずにCHKIMGを行っているため
その間での変化がないというだけでしょう
試しに その間に SLEEPで適当に時間を入れると結果が FALSEに変化するようになるはずです
(この変化は人間が画面見てるだけではっきりと識別できるほどの違いがないと思われます)
そしてそれがどのように変化しているのかをきちんと調べなければ
検出画像の色幅を持たせれば検出できるという話なのか
部分的に変化するため色幅持たせても検出できないのか の正確な判断はできません
(基本的にはバイナリエディタ使って各画像を比較してどこが変わっているのかを確認する)
細かく調べるためには BMPのファイル構造を理解してる必要がありますが
単純に比較するだけなら誰でも可能
自分で調べられないのであれば SAVEIMAGをSLEEPを数回繰り返して保存したファイルを
すべてZIPなどにまとめてどこかWEB上に保存して
そのURLをここに記載してもらえれば此方でその画像をダウンロードして確認して調べることも可能ですし
私もVirtulaBoxなどの仮想環境自体は使っているので最悪同様の環境を構築して此方で単独で試すことも可能です
(genymotion入手でユーザ登録必須なようなので現状ではそこまでやろうとは思ってません)
条件1・2を確認していない上で どうしてでしょうか? と言ってるなら話が堂々巡りになります
(そのうち付き合いきれなくなるのが目に見えます)
※ 進展が見える質問の繰り返しなら付き合えますが堂々巡りには付き合えないってだけの話です
ただし都度別質問にされると見落としたりするのでそこで対応が終わる可能性はあります
回答ありがとうございます。
適当な座標に書き換え、そこにメールアイコンが来るようにgenymotionを持ってきました。
それで、余分なところはペイントでトリミングしました。画像形式はBMPです。
なので条件1は満たしていることになります。
条件1でトリミングした画像を使っているので、条件2もクリアしています。
SLEEP (3) を入れて実行しても「True」とでてきます。なので画面は変化していないとおもいます。
新しいことが分かったので、また新たに質問さしていただきます。
もしよければ、また解凍していただけると嬉しいです。
No.1
- 回答日時:
まずFunction(関数) を メインプログラムの途中に書いちゃダメ
メインプログラム中から CheckColorScope をコール
メイン部分を全部書いた後に
Function や PROCEDURE 等の関数を書くのが基本
それを直したとしても CheckColorScope やってることや引数の関係がめちゃくちゃだから
一筋縄では動かないそしてそれを今のコードから第3者が想像して修正することは非常に困難
色幅持たせるのが目的だと思いますが大まかな色幅でいいのであれば
自分で関数作るより CHKIMGのパラメータで調整したほうが楽
それ以前に色幅持たせると解決する話なのか? てのがいまだに疑問
(あなたがやろうとしてる内容で色幅設定が必要だとは思えませんがそこは順を追って確認しないとわからない)
先の質問で回答したSAVEIMGの座標変えて検出は出来たのか
-> できたのであれば色幅持たせる必要なし (比較もとで使っていた画像が悪かっただけ)
ー> できなかったのであれば画像がどこか変化している
この場合どこがどう変化しているか調べないと
色幅持たせればすむ話なのか
それでは済まない話なのかの判断もできません
まずは簡単な最初のコードを動かすように(動きを確認)するのが先では?
このままやると都度質問連発することになりますよ
なんども回答ありがとうございます。本当に助かってます。
SAVEIMGの座標変えて検出をためしてみたら「True」がでてきました。
ということは、画像が悪かっただけということになりました。
ですが、一番最初の質問でした、
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
これを実行すると 画像認識に失敗しました。とでてきます。
どうしてでしょうか?genymotionというwindowには認識できてないのでしょうか?
ほんとに質問ばかりですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) uwscのCHKING関数の画像の認識がうまくいかない。 1 2022/06/18 20:55
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
過剰なオブジェクト指向脳から...
-
プログラミング初心者です。 Wi...
-
vba クリップボードクリアにつ...
-
プログラミング未経験者(殆ど未...
-
16x16のスプライトフォント
-
本格的なWebアプリを公開する時...
-
Google ColaboでGUI作成
-
オブジェクト指向プログラミン...
-
Pythonって何を意識した言語な...
-
Gitについて質問。 クローンし...
-
CLispのloop内の挙動について
-
VBAでパワーシェルを実行したい...
-
GoogleAppsScript文字列置換の...
-
pythonにてseleniumを使うも、...
-
Pythonのre.split()の正規表現...
-
プログラミング
-
スカラーのベクトル微分
-
ワードプレス、Contact Form 7...
-
フォルダを自動作成・移動を複...
-
プログラミングを教えたいです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング
-
小学1年生の子です。塾に行かせ...
-
vba クリップボードクリアにつ...
-
プログラマーと学歴の関係性に...
-
Webサイト内に埋め込んだmp4動...
-
正規表現で複数マッチ条件で悩...
-
windowsでテキストファイルの各...
-
楽しくて最高のプログラミング...
-
プログラミング ソースコード
-
Pythonって何を意識した言語な...
-
プログラミングを教えたいです...
-
pythonで複数画像からgifを作る...
-
pythonにてseleniumを使うも、...
-
Pythonでgif画像が上手く作れない
-
Google ColaboでGUI作成
-
テキストファイルのファイル名...
-
プログラミング、アーキテクチ...
-
そのまま使っただけなのに・・...
-
このURLで広告を出しているのは...
-
chatGPTで次々と質問をしていく...
おすすめ情報