Image detection

Started by
8 comments, last by Paradigm Shifter 9 years, 10 months ago

what would be the best language/method to get image detection to work?

The anti-Macro brings up a screen with images/icons that you need to match. The icons keep changing.


this video should show what i need the program to do.

** Link **

***

***

thx for the info

Advertisement

I'm not exactly sure what you are asking, but let me explain what I understand.

You have a list of icons, you also have an image. You want to search the image to see if any of the icons show up and where they are?

I would use OpenCV for that. OpenCV is a C++ library but there are Java and .Net wrappers for it.

Template Matching

Homography

My current game project Platform RPG

As HappyCoder suggested, using template matching is the best way to do this. OpenCV is (arguably) the best computer vision and image processing library. Unfortunately, the C++ bindings can be a real pain to use. I would suggest using the Python bindings to prototype your approach and only implement in C++ if absolutely necessary.

Along with the docs, I would take a look at this post -- it has a really good example of how to use template matching.

this for the info yah basicly the anti-macro screen pops up randomly and shows 3-5 icons. Then you have a list of icons at the bottom and you must click the icons that match.

as you can see in this picture there 3 icons/images from the tops have to be matched with the ones on the bottom.

[url=http://i825t.pngmageshack.us/photo/my-images/853/825t.png/][/URL]

http://img853.imageshack.us/img853/4273/825t.png

Hi destluk,

Maybe im missing something here, but do you need image detection if you just want to match two images? Could you not just give your images a unique id, and check them off each other? Just from your screen shot, im not sure why you would need something so complex ( but im sure there could be a reason smile.png )

[Edit] I now see that anti-macro is a game, and you want to use this in said game - Disregard ;)

this for the info yah basicly the anti-macro screen pops up randomly and shows 3-5 icons. Then you have a list of icons at the bottom and you must click the icons that match.

as you can see in this picture there 3 icons/images from the tops have to be matched with the ones on the bottom.

http://img853.imageshack.us/img853/4273/825t.png


In the first post you were asking about some routines that use compute-intensive computer vision techniques.

In that link you are just putting numbered icons on the screen.

For what you described in this link, the algorithm is simply:

* Enumerate the available icons. For example, you might have 37 icons.
* Display three of them at random. For example, you might display icon 7, 14, and 31, in a randomized order.
* Display several to chose from at the bottom, including the ones you selected. Perhaps showing icons 7, 14, 31 (the ones that matched), 3, 9, and 18 (some that don't match), in a randomized order.
* If the user clicks the same three values that match and none of the three incorrect values, it is matched.

No computer vision necessary. In C++ just put the enumeration values in an array, random_shuffle(), the array, then pick the first set and second set for display, shuffling again to randomize the order.
I think you are misunderstanding the OP (see also his closed original topic). He does not want to write an anti-macro system himself, he wants a tool to keep on macroing despite the game working against it.

I think he wants to write a bot that clicks on the correct items rather than know how to implement the algorithm, frob ;)

Another way to do it is to sample some pixels from the images and compare the colours. You don't need to sample all the pixels, as long as the pixels you do sample are enough to distinguish all the images. That's how some online poker bots work.

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

@Paradigm Shifter: Sampling the colors would definitely be a good start. But that approach could easily fall apart if two items have near identical color distributions. In terms of OpenCV, computing a histogram and comparing to a database of known items takes no more code than performing template matching.

No, I mean sample a set of pixels from within the image. For poker bots they just look at something like 8 pixels or so from each card image, those 8 pixels will be sufficient for distinguishing between all 52 cards in the deck.

This assumes you know the image colours exactly and they don't do things like fade in or out, resize and blur, etc.

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

This topic is closed to new replies.

Advertisement