Thursday, 5 December 2013

SeeingStars goes Fuzzy

I’ve now added a little bit of fuzzy logic to SeeingStars. SeeingStars (partly) works as follows when determining the rank of the cards (eg. Ace, King, Queen…) displayed:

Grab screenshot of poker table window.

Convert screenshot to a two-colour image.

Extract a sub-image where the card rank is displayed.

Convert the sub-image into a string of bits.

Check that string of bits against a dictionary I prepared in the lab.

However that process can be upset by the nature of automatic image manipulation. Occasionally SeeingStars can’t tell what the card rank is. But there is a solution: by adding some fuzziness to the process, I can get pretty close to 100% accuracy for detecting. Using a core Computer Science concept called the Levenshtein distance, SeeingStars can detect close matches. It makes me content to use and relearn concepts I learnt in university years ago. It allows me to answer the question: “does that screenshot sub-image sort-of, kind-of look like a particular rank?"