Interestingly, even though the top answer has 1337 upvotes, it appears none of those people checked whether the answer actually works. Either that, or Mathematica's algorithms have changed since Jan 2012.
Another commenter got me curious about just how hand-tuned the answer was, so I fired up Mathematica 8 and put their solution in. I had to dig up the original image using Wayback Machine (thanks, archive.org!) but then, to my surprise, their answer didn't actually work. It merely darkened the image uniformly, meaning it wasn't able to find any potential Waldos.
I fiddled around with their solution for a bit, and then finally just hooked their parameter up to a slider. I thought maybe the "level" parameter just needed a bit of tweaking. But surprisingly, it still doesn't work as advertised: http://i.imgur.com/XWNTvYU.jpg
Their "level" parameter was originally 0.12, but like I said, that didn't work at all. It doesn't work until the parameter is bumped up to 0.18, at which point it gives the wrong solution (the lower-left circle). Then, 0.19 gives another incorrect solution (the lower-right circle). Finally, 0.20 identifies Waldo.
So this solution is a nice way to filter out potential targets, but I wish I could figure out whether the original poster was being shady or whether Mathematica's internals changed since they posted their answer. I'm inclined to give them the benefit of the doubt, but that has me burning with curiosity about what exactly must've changed in Mathematica's implementation.
EDIT: I didn't do the most basic of checks: to make sure I didn't introduce any changes in the original experiment. It turns out by rehosting the image on imgur, it compressed the resulting image, introducing artifacts into the color channel. Their solution no longer worked as advertised due to this. That shows how brittle the solution is, though! I wonder if we can make it more robust without fundamentally rewriting it?
The code works as-is in Mathematica 9 (though with the URL modified to point to archive.org), so there's likely a difference between your version of 8 and 9.0.0.0.
Can you try http://i.imgur.com/WwQ8P5R.jpg instead of the archive.org link? I rehosted the image on imgur, but it looks like imgur re-compresses the jpg, resulting in differences in the image. If so, then that demonstrates just how brittle this solution is.
I can confirm with this screenshot (http://cl.ly/image/2Q2e3k1w0g25) that imgur does indeed do some sort of compression that makes this solution break with an imgur link for Mathematica 9. I may investigate a bit further. I had previously tested with an uncompressed image, and the same technique did produce the expected results from the answer on Stackexchange.
UPDATE: Changed the correlation value from .12 to .2 and the compressed imgur image has some interesting results (3 circles, one of them is on Waldo): http://cl.ly/image/0Z3k150S2z10
Changed the correlation value from .12 to .2 and the compressed imgur image has some interesting results (3 circles, one of them is on Waldo):http://cl.ly/image/0Z3k150S2z10
Yeah, I'm getting the exact same results. So it looks like compression is messing with the algorithm's correlation ability. I think the problem is that red color values are often thrown out in image compression (moreso than intensity / green channels).
Another commenter got me curious about just how hand-tuned the answer was, so I fired up Mathematica 8 and put their solution in. I had to dig up the original image using Wayback Machine (thanks, archive.org!) but then, to my surprise, their answer didn't actually work. It merely darkened the image uniformly, meaning it wasn't able to find any potential Waldos.
I fiddled around with their solution for a bit, and then finally just hooked their parameter up to a slider. I thought maybe the "level" parameter just needed a bit of tweaking. But surprisingly, it still doesn't work as advertised: http://i.imgur.com/XWNTvYU.jpg
Their "level" parameter was originally 0.12, but like I said, that didn't work at all. It doesn't work until the parameter is bumped up to 0.18, at which point it gives the wrong solution (the lower-left circle). Then, 0.19 gives another incorrect solution (the lower-right circle). Finally, 0.20 identifies Waldo.
So this solution is a nice way to filter out potential targets, but I wish I could figure out whether the original poster was being shady or whether Mathematica's internals changed since they posted their answer. I'm inclined to give them the benefit of the doubt, but that has me burning with curiosity about what exactly must've changed in Mathematica's implementation.
EDIT: I didn't do the most basic of checks: to make sure I didn't introduce any changes in the original experiment. It turns out by rehosting the image on imgur, it compressed the resulting image, introducing artifacts into the color channel. Their solution no longer worked as advertised due to this. That shows how brittle the solution is, though! I wonder if we can make it more robust without fundamentally rewriting it?