# Where’s Wally Problem using Mahotas

Last Updated : 22 Sep, 2021

In this article we will see how we can find the wally in the given image. Where’s Wally?, also called Where’s Waldo? in North America is a British puzzle books. The books consist of a series of detailed double-page spread illustrations showing dozens or more people doing a variety of amusing things at a given location. Readers are challenged to find a character named Wally hidden in the group.
Image used in the program –

Wally Description : Wally is identified by his red-and-white-striped shirt, bobble hat, and glasses, but many illustrations contain red herrings involving deceptive use of red-and-white striped objects.
In order to do this we will use mahotas library. Mahotas is a computer vision and image processing library for Python. It includes many algorithms implemented in C++ for speed while operating in numpy arrays and with a very clean Python interface.
Command to install mahotas –

`pip install mahotas`

Below is the implementation –

## Python3

 `# importing required libraries` `from` `pylab ``import` `imshow, show` `import` `mahotas` `import` `mahotas.demos` `import` `numpy as np`   `# loading the image ` `wally ``=` `mahotas.demos.load(``'wally'``)`   `# showing the original image` `imshow(wally)` `show()`   `# getting float type value ` `# float values are better to use` `wfloat ``=` `wally.astype(``float``)`   `# splitting image into red, green and blue channel` `r, g, b ``=` `wfloat.transpose((``2``, ``0``, ``1``))`   `# white channel` `w ``=` `wfloat.mean(``2``)`   `# pattern of wally shirt` `# pattern + 1, +1, -1, -1 on vertical axis` `pattern ``=` `np.ones((``24``, ``16``), ``float``)` `for` `i ``in` `range``(``2``):` `    ``pattern[i::``4``] ``=` `-``1`   `# convolve with the red minus white` `# increase the response where shirt is` `v ``=` `mahotas.convolve(r``-``w, pattern)`   `# getting maximum value ` `mask ``=` `(v ``=``=` `v.``max``())`   `# creating mask to tone down the image ` `# except the region where wally is` `mask ``=` `mahotas.dilate(mask, np.ones((``48``, ``24``)))`   `# subtraction mask from the wally` `np.subtract(wally, .``8` `*` `wally ``*` `~mask[:, :, ``None``], ` `                   ``out ``=` `wally, casting ``=``'unsafe'``)`   `# show the new image` `imshow(wally)` `show()`

Output :

Previous
Next