• ベストアンサー

画像認識したい!!!

ほんとうに宜しくお願いします。 Ifb Chkimg("対象.bmp") = true Then 対象.bmpを同じフォルダーにいれても認識してくれません。 例えば、 物体が画面に現れれば、それに対して動作を起こす、その物体が現れるまで待ったり、その物体を探したりといった感じにしたいんです。 しかし、何度やっても認識してくれない、なにか間違ってるかと思うんですが、その答えが全くわかりません。 マジで助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.2

とりあえず私の方でも実験してみましたが、画像ファイルの所在をスクリプトに記述 しないと認識しませんね。 Not Found:xxxx.bmp と表示されていませんか?この表示が出ている時は、画面上に ないと言っているのではなく、この画像ファイルがディスクのどこにあるのか教えろ、 と文句を言われています。 フォルダ階層が深くて、指定するのが面倒な場合は、コマンドプロンプトを使うと 簡単です。やり方ですが、 1)コマンドプロンプトを開く。 2)エクスプローラを開く。 3)エクスプローラで、使いたい画像が入っているフォルダを開き、その画像を  クリックして、コマンドプロンプトにドラッグ&ドロップする。 これでコマンドプロンプトに、"C:\Document and...などという表示が現れるので、 それをコピーしてスクリプトに貼り付ければ完了です。 過去の質問をたぐって見つけた解説ページに、この関数についての説明があったんで そちらも見てください。って言うか、回答読んでます? 多分これで認識できるでしょう。

参考URL:
http://park14.wakwak.com/~simizu/uwsc/chkimg.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • taorus
  • ベストアンサー率0% (0/1)
回答No.3

最初スタートボタンがどうこうっておっしゃってましたね。 突然ゲームに使うとおっしゃるのでピンときました。 でもあなたがやろうとしているのはネットゲームの管理会社の規約違反行為ですよね。 教えてgooの規約は読んでいませんが、ギリギリなんじゃないですかね。 要するに自動で敵を判定して攻撃したり逃げたりしたいって事ですよね。 こんなにも皆さんが協力してあげてる結末はゲームでたくさん稼いで リアルマネーで売るって事ですか?酷すぎます。 ここの皆さんを犯罪に巻き込まないでください。 といっても諦めなそうなので、これ以上ここの皆さんに迷惑がかからないように 私の見解を伝えます。 IFB・・・など、構文は間違っていないとすれば、 原因は以下の一つしかありません。 「BMPが間違っている。」 これだけです。 自分でとったBMPが絶対間違いないって先入観持っていませんか? 使いたい部分だけを切り取る時の作業がおかしいです。 ペイントで開いて範囲選択して切り取りたい画像を選択したら 右クリック→ファイルへコピー。 これで使いたい画像が正しく出力されると思いますよ。 ちょっと今見てきましたが色々と2ちゃんねるにそのようなスレッドがあるじゃないですか。そっちで聞いてください。 どうせ行き着く先が違法行為なんですから。

ggghhh
質問者

お礼

ゲームはゲームですが、エミュレーターでのゲームのほうです。 同じようなものかもしれませんが、すいませんでした。 回答有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#194317
noname#194317
回答No.1

これ、VBにサードパーティ製の画像処理ライブラリを追加して、処理しようとしている 雰囲気ですが、違いますか?とりあえずファイル名に漢字を使うのをやめて半角だけに してみるとか、フルパスで書くとか(C:\対象.bmp)したら変化が起きませんかね? もしVB単体でやろうとしているなら、ソフトの作りの話になってきます。 また、物体が画面に現れたら動作を起こすということは、リアルタイム的な処理みたい ですが、それにしてはビットマップを使おうとしていたり、やっていることがいまいち よく解りません。 最低限、使用言語とライブラリ、ターゲットとなるシステムの概略を教えてもらわないと 具体的な答えは期待できないと思います。

ggghhh
質問者

補足

いえ、UWSCです。ゲームに使おうとしてます。 あまり詳しくないので、画像認識でしようとしてるんですが、 ACW(GETID("Launcher"),0,0,1024,768,0) While true KBD(VK_8,CLICK,150) for 回数 = 1 to 100 KBD(VK_E,CLICK,150) Sleep(0.5) Ifb Chkimg("対象.bmp") = true Then KBD(VK_R,CLICK,150) Print "誰も攻撃していないので攻撃します" Else Print "誰か攻撃したので攻撃しません" Endif Endif といったような、自分が持っている敵の画像が画面に見つかれば、攻撃したりといったようなことをしたいんです;;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロについて

    現在マクロを勉強しております。UWSCで勉強しています。 そこで質問なんですが、 Ifb Chkimg("対象.bmp") = true Then 対象.bmpを同じフォルダーにいれても認識してくれません。 対象をプリントして、それをペイントなどで切り取ったんですが、認証確認してもそのような画像はありませんとなります。 こういう、同じフォルダーに対象の画像があれば、それに対して動作を起こすようなことをしたいんですが、アドバイスを頂きたいです。 宜しくお願い致します。

  • UWSCの画像認識について

    質問させていただきます ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif これを複数の画像でやりたいときは ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif のようにしないとだめなのでしょうか? それとも ifb CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif こんな感じにまとめる事はできるのでしょうか? 例として教えてもらえると助かります。 よろしくお願いします

  • uwscについて

    画像認識で質問があります。 画像Aがあった場合画像Aをクリックするのは出来るのですが 画像Aがあった場合画像Bをクリックする場合どのようにすればいいのでしょうか? IFB (CHKIMG("A.bmp")=TRUE) THEN SLEEP(0.3) //B、C出現までの間を調整 IFB (CHKIMG("B.bmp")=TRUE) THEN BTN(LEFT, CLICK, G_IMG_X, G_IMG_y) ELSEIF (CHKIMG("C.bmp")=TRUE) THEN BTN(LEFT, CLICK, G_IMG_X, G_IMG_y) ENDIF しらべてこのとおりやってみたら 最初のIFBに対してENDIFがないと言われてうまくいきません ちょっと調べたのですが分からなかったので助けてください

  • UWSCで画像が消えた場合に動作せるやり方

    ある画像 aaa.bmp だったとします この画像があるときは なにもせず なくなった場合(画像が消えるまで繰り返す)に ENTER ENTER と 押すようなスプリクト を 書いて頂けないでしょうか? While true if GETKEYSTATE(VK_ESC) then exit If ChkImg("aaa.bmp")=TRUE  ←画像があるとき? Ifb and ChkImg("aaa.bmp")=FALSE ←画像が消えた時? kbd(VK_ENTER) kbd(VK_ENTER) endif wend なんとか こんな感じまで 出来ました よろしくお願いいたします

  • UWSC 画像認識で条件分岐

    画像Aが出てくるまで待ち画面をクリック、その後、画像Bが出てくるまで待ち画面をクリック。 画像Aが現れなければ、画像Bが出てくるまで待ち、画像をクリックする。 という文を書きたいのですが、うまくいきません。 画像Aはランダムで現れます。画像Aが現れた場合、画面をクリックしない限り、画像Bは現れません。 以下の文では画像Aが現れない限りはうまく回るのですが、画像Aが現れるとそこで止まってしまいます。どこがまずいのでしょうか。 何分この手のものエクセルぐらいしか触ったことがなく困っています。よろしくお願いします。 // if chkimg("A.bmp")=true then btn(left,0,100,100,50) else repeat sleep(0.2) until chkimg("B.bmp")=true btn(left,0,100,100,50) endif //

  • uwscで画像がうまく認識できない

    while 1 if CHKIMG("gazou/A.bmp",-1,,,,) > 0 then break wend で画面上にAという画像は認識した後、 その少し左隣にあるBという画像を認識したいのですが上手くいきません while 1 if CHKIMG("gazou/B.bmp",-1,G_IMG_X-24,G_IMG_Y-7,G_IMG_X-1,G_IMG_Y+24) > 0 then break wend という感じでやったらループから帰ってこなくなりました 座標を G_IMG_X-24,G_IMG_Y-7,G_IMG_X-1,G_IMG_Y+24 から普通の数字の組み合わせにしたらちゃんと認識できたので この書き方が間違っているというのはわかるんですが、 どうしてもAの画像の座標から左にずれたこの位置を指定したいのです。 ですが自分はこの書き方以外知らないのです・・・ Aの画像を認識した後に、 そのAの画像があった座標から(X-27,Y-7,X-1,Y+24)ほどずれた位置を指定して その範囲にB画像があるかどうか確かめるということをするには どうすればいいのでしょうか?

  • UWSCのスクリプトについて

    画像Dを認識したら画面上に画像Bがあっても 処理Bを実行しない為にはどうしたら良いでしょうか。 -------- while True BTN(LEFT,click,150,10,110)   //処理A Sleep(2) ifb CHKIMG("A.bmp")    x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) endif Ifb ChkImg("B.bmp")       //処理B BTN(LEFT,click,1120,90,110) Sleep(1) KBD(VK_return,DOWN,30) endif ifb CHKIMG("C.bmp")      //処理C x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) wend --------

  • UWSC 用のマクロコードを教えてください

    UWSC を使ったプログラムを作成しています。 黄色い部分の push ボタンを左クリックすると 赤いラインが上昇します。 それを決められた色のところまで自動で動くようにしたいのです。 今ある赤色ラインで止めたいのです。 黄色いpushは 10種類ほどあり 色が多数あります。 画像を習得してどの画像にも対応できるようにしたい。 赤いラインを止める場所を 色を指定して止める RGB値を設定して 毎回ここでクリックが外れるような設定 現在設定している状況は 1組のみの設定なのでこれを多数に対応できるように組み替えたいのです。 ************************************************ RGBcolor(x2+17,y4+40) ifb R >255 and G < 255 and B < 51 then u = true elseif R > 100 and G < 100 and B > 177 then u = true endif RGBcolor(x2-17,y4+40) ifb R >255 and G < 255 and B < 51 then u = true elseif R > 100 and G < 100 and B > 177 then u = true endif ifb peekcolor(x2,y4-100) = 0 then ifb chkimg("push1.bmp",-1,0,0,yoko-10,tate-10,1) then elseif chkimg("push01",1,0,0,yoko-10,tate-10,1,IMG_MSK_BGR2) then elseif chkimg("push02.bmp",1,0,0,yoko-10,tate-10,1,IMG_MSK_BGR2) then endif x4 = G_IMG_X + 6 //押すの上端 y4 = G_IMG_Y - 1 //押すの上端 RGBcolor(x4,y4) ifb R>255 and G>200 and G<255 and B>30 and B<70 then turiage() endif endif *************************************************** この部分を変更したいのですが よくわからなくて。 どうかお力をお貸しください。

  • UWSCを使って画像リンクをクリックするとき???

    UWSCを使って画像リンクをクリックするとき??? 先日UWSCをダウンロードし、画像リンクを自動でクリックするスクリプトを作りました。 インターネット上で、商品を選んで「予約購入する」という画像リンクをクリックしたいのですが Ifb CHKIMG("予約購入する.bmp") = TRUE THEN   BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y) Endif のように作っても全く動きません。 UWSC40ファイルの中に予約購入する.bmpを保存してます。 うーん一体どうして?昨日から調べているけど全くわかりません。 回答よろしくお願い致します。

  • UWSCのスクリプトについて

    日々のルーチンワークで退屈な作業をPC様にやっていただこうとUWSCの学習をしています。 以前は記録して使用したのですが不定期にマウス座標が変わるようになったため.UWSを書いてみてます。ど素人ですがやっと画像をファイルに格納して作業ができるまでになりました。 使用環境はwin7です。 質問内容ですが手間が多いのと説明がへたなのでプログラムより質問内容が理解できないほうが心配です。出来るだけ分っていただけるように頑張りますのでご教授お願いします。 画像A 画像B 画像C 以上がWEBブラウザ上に表示されたときに以下の作業をします。 オーダーフォームの利用規約同意[ボタン]、確認画像[ボタン]、購入画像[ボタン]を押下する。 どれが表示されてもオーダーフォームの作業が発生します。 ほかの質問で以下のような回答があったので参考にしたのですが繰り返し探してはくれるのですが オーダーフォームの作業を書くことができません。。 ≪転記≫ WHILE (TRUE) //WENDまで無限ループ IFB (CHKIMG("A.bmp")=TRUE) THEN CHKIMG("1.bmp") //「1」画像の座標を調べる BTN(LEFT, G_IMG_X, G_IMG_Y) ELSE IFB (CHKIMG("B.bmp")=TRUE) THEN CHKIMG("2.bmp") //「2」画像の座標を調べる BTN(LEFT, G_IMG_X, G_IMG_Y) ELSE ・・・以下略・・・ ENDIF WEND 自分でも頑張ってみますがご教授頂けると幸いです。 よろしくおねがいいたします。