uwsc超初心者です。
genymotionという仮想androidでゲームのボタンをポチポチすることをしたいのですが、画像認識してくれません。

無知な僕ですが頑張って書いてみました。

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("1.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF

これで実行したら「画像認識に失敗しました」と出てきます。
画像形式はbmpです。

だれか助けてください。

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

A 回答 (3件)

WinShotで設定が正しければ(ビットマップで保存・減色しない)、確実にbmpになっているはず。

それも使ったことがあるツールですし。保存したものをペイントで開いてみればわかるでしょう。拡張子を変えただけのインチキだったら開けないか、文句を言われるはずなんで。

普通はPrintScreenキーを押して、ペイントに貼り付けて欲しい部分を切り出し、ビットマップで保存するだけです。

どっちの方法でも、減色せず24ビットのビットマップで保存する必要はありますが、やっていることはツールか手作業かの違いだけです。ただし先の回答で貼ったリンク先にも書いてあったと思いますが、画面コピーは色が微妙に変わることがあるようなので、UWSC側でchkimgする時に色の認識幅を設定するか、色情報を無視してやる必要があるかも知れません。UWSCのヘルプでchkimgのところを参照するか、ググってみましょう。
    • good
    • 0
この回答へのお礼

大変お世話になりました。
おかげさまでbmp形式のことがよくわかりました。
色認識幅の設定を頑張ってみます!
ありがとうございました!

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

> この文の意味があまりよくわからないので



今のバージョンではどうなのか、試してみました。すると8x8の画像でも認識できたんで、画像の大きさはとりあえず気にしなくても良さそうです。となると考えうる原因は、以下の2つ。

1)画像が一致していない
2)見ている画像が間違っている

以下の説明が詳しいんで、そっちを参照してみてください。たぶんそれでいけるはず。

http://d.hatena.ne.jp/TipsMemo+computer-technolo …
    • good
    • 0
この回答へのお礼

何度も申し訳ないです。

私は、「winshot」というアプリの「ビットマップ保存」という機能を使って画像を取得しています。
それでbmp形式になっていると思うのですが、それではだめだとおもいます。
もしよければ、RandenSai様の画像の取得はどのようにしているのか教えてくれないでしょうか?


http://detail.chiebukuro.yahoo.co.jp/qa/question …
このサイトの「ベストアンサーに選ばれた回答」で
>jpg保存した画像を24bitbmpで保存しなおしただけ・・とかじゃないですよね。
というものがありますが、解決策はどうすればいいのでしょうか?

質問ばかりで本当に申し訳ございません。
よければ教えていただけませんか?よろしくお願いします

お礼日時:2015/07/17 23:20

真っ先に一点確認として、認識させたい画像ファイルとやらはどのフォルダにありますか?もしuwsc.exeとは違うフォルダに入れてるんだったら、フルパスでフォルダ名まで書かないとだめです。

もしデスクトップだったら C:\Users\貴方のユーザー名\Desktop\1.bmp みたいに。

最近のUWSCではどうだか知りませんが、以前は確か幅が16ピクセルとかの小さい画像だと、あってるのに不一致になっちゃうことがあったような・・・お試しで64x64とかの画像を作り、その画像をペイントか何かで開いておいてスクリプトを実行し、不一致と言われないけど本チャン画像だったら言われるようだと、このパターンに陥ってることになります。この場合はめんどくさくても、PEEKCOLOR関数でボタンの色を調べるしかないです。一点だけだと誤動作するから、最低でもボタンの四隅と真ん中は見ないとだめで、必要に応じ点数を増やすことになるでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
しかし、ファイルを同じ場所にしてみてもできませんでした。

RandenSaiさんが言われた

「最近のUWSCではどうだか知りませんが、以前は確か幅が16ピクセルとかの小さい画像だと、あってるのに不一致になっちゃうことがあったような・・・お試しで64x64とかの画像を作り、その画像をペイントか何かで開いておいてスクリプトを実行し、不一致と言われないけど本チャン画像だったら言われるようだと、このパターンに陥ってることになります。この場合はめんどくさくても、PEEKCOLOR関数でボタンの色を調べるしかないです。一点だけだと誤動作するから、最低でもボタンの四隅と真ん中は見ないとだめで、必要に応じ点数を増やすことになるでしょう。」

私が無知なので、この文の意味があまりよくわからないので、申し訳ないのですがもう少し詳しく書いていただけないでしょうか?
すみません。

お礼日時:2015/07/17 16:20

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

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

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

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

このQ&Aと関連する良く見られている質問

Q行列の不変量

1.階数
2.トレース
3.行列式
4.固有多項式、固有値、正規化した固有ベクトル

これらは全て行列の不変量と考えますが、正しいですか。
またこれ以外にも行列の不変量がありますか。

Aベストアンサー

>1.階数
>2.トレース
>3.行列式
>4.重複を含めた固有値

2は4の和、3は4の積だから4が基本ですね。

1は4から導けないので、別の不変量。
従って基本的な不変量は2個

だと思います。

相似に関して他の不変量は知らないです。

Qピタゴラスの定理に出てくるふたつの不変量の間の関係

ピタゴラスの定理を考える直角三角形の斜辺とそれぞれの残りの辺が作る角度の和はπ/2と一定ですが、この不変量と斜辺の長さを一定にしたときのピタゴラスの定理によって示される残りの2辺の二乗の和が斜辺の二乗に等しいという不変量との関係はどのように理解すればよいのでしょうか。角度が面積に対応しているようにも思えるのですが・・・

Aベストアンサー

ANo1 です。
三角形ABCの外側に,正方形 BCC1B1,CAA2C2,ABB3A3 をかく。
さらに,ABCと合同な三角形A1B1C1,A2B2C2,A3B3C3 をかく。
正方形BCC1B1の面積は,2つの平行四辺形ABB1A1とACC1A1の和に等しい。
他の正方形についても同様。
平行四辺形ABB1A1はCBB3C3と合同。
平行四辺形ACC1A1はBCC2B2と合同。
ゆえに,正方形CAA2C2+ABB3A3-BCC1B1=平行四辺形ABB2A2×2
したがって
∠BAC=一定 ⇔ ∠ABB2=一定 ⇔ (CA^2+AB^2-BC^2)/(AB×AC)=一定

余弦定理を使ってよければ
∠A=一定 ⇔ (b^2+c^2-a^2)/(2bc)=cosA=一定
というだけのことです。

上の説明の図をかくと,余弦定理の(ピタゴラスの定理を用いない)証明になっています。

Qトーラス上のエータ不変量

先ほどの質問で誤りがありましたので訂正させて頂きます。トーラスS1上で
 D = -i d/dt + a  ( 0 < a ≦ 2π)
の固有関数 exp(2πint) と固有値2πn+a に対して

  η(s) = Σsgn(2πn+a)/|2πn+a|^s  (1)

という無限和を考えます(n∈Z)。このとき
  η(0)/2 = a/2π
はエータ不変量と呼ばれ、Dのスペクトル不変量になるとされます。しかし(1)で s=0 とおけば
  η(0) = 1 - 1 + 1 - 1 + …
という収束しない級数になるのではないでしょうか。チェザロ総和をとっても1/2になり、a/πにはなりません。どうしてこれが a/πになるのでしょうか。また中原幹夫「理論物理学のための幾何学とトポロジーII」p.138ではディラック作用素のエータ不変量が
    η(s) = Σsgn(λk)/|λk|^2s  (2)
で定義されていますが、なぜ(1)と(2)は違うのでしょうか。

Aベストアンサー

少し補足お願いしたいのですが例えばa=2πでn=-1のときηはどのように定義されているのでしょうか。おそらくリーマンゼータと同じように解析接続した上で0での値を求めていると思われますがこのままでは上のa=2πに対してはすべてのsに対して発散してしまうように思います。

Quwscの画像認識に失敗します。

uwsc超初心者です。
genymotionという仮想androidでゲームのボタンをポチポチすることをしたいのですが、画像認識してくれません。

無知な僕ですが頑張って書いてみました。

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("1.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF

これで実行したら「画像認識に失敗しました」と出てきます。
画像形式はbmpです。

だれか助けてください。

Aベストアンサー

WinShotで設定が正しければ(ビットマップで保存・減色しない)、確実にbmpになっているはず。それも使ったことがあるツールですし。保存したものをペイントで開いてみればわかるでしょう。拡張子を変えただけのインチキだったら開けないか、文句を言われるはずなんで。

普通はPrintScreenキーを押して、ペイントに貼り付けて欲しい部分を切り出し、ビットマップで保存するだけです。

どっちの方法でも、減色せず24ビットのビットマップで保存する必要はありますが、やっていることはツールか手作業かの違いだけです。ただし先の回答で貼ったリンク先にも書いてあったと思いますが、画面コピーは色が微妙に変わることがあるようなので、UWSC側でchkimgする時に色の認識幅を設定するか、色情報を無視してやる必要があるかも知れません。UWSCのヘルプでchkimgのところを参照するか、ググってみましょう。

Quwscの画像認識の不具合だと思います。

IFB CHKIMG("A.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF
このスクリプトで画像認識すると画像認識に失敗します。

今までgenymotionの位置を真ん中あたりに固定していたのですが、私から見て左側に位置に動かして上のスクリプトを実行してみると、メールアイコンではなくgenymotionの画面より左ななめ下をクリックしました。
そこで、もう少し左(私から見て)にすると、genymotion画面より左ななめ下をクリックしました。しかし今回のクリックした位置はgenymotion画面に近づいていました。
今度は、右(私から見て)に動かすとgenymotion画面より左ななめ下をクリックそして、クリックした位置はいままでよりgenymotion画面からだいぶ離れていました。
これはどういうことかわかりますか?解決策もあれば教えていただけると嬉しいです。

下手ですが、イメージ画像を作りました。
紫のgenymotionより左に行くと「画像認識に失敗しました」と出ます。たぶんマウスが画面外から飛び出してクリックできないからだと私は思いました。

IFB CHKIMG("A.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF
このスクリプトで画像認識すると画像認識に失敗します。

今までgenymotionの位置を真ん中あたりに固定していたのですが、私から見て左側に位置に動かして上のスクリプトを実行してみると、メールアイコンではなくgenymotionの画面より左ななめ下をクリ...続きを読む

Aベストアンサー

>これはどういうことなのか
CHKIMG()の後に以下のコードを記載し、test.bmpに何が映っているか確認してみてください。
 SAVEIMG("test.bmp", G_IMG_X-50, G_IMG_Y-50, 100, 100, TRUE)
正直質問内容の説明がわけわかめで断言できませんが、上記画像保存コマンドで得られた画像から何がおかしいのか推測はできると思います。

>解決策もあれば
簡単な解決策なら、相対座標指定にすればいいんじゃないかと思います。
GETID("genymotion")でウィンドウのIDを取得し、MOUSEORG(ウィンドウのID,0または2)で相対座標に
相対座標下でCHKIMG()なりBTN()なり呼んでしまえばgenymotionの位置が変わったところで影響なく動作するかと思います。


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

人気Q&Aランキング

おすすめ情報