I've found Waldo!
(我找到了沃尔多!)
How I've done it
(我是怎么做到的)
First, I'm filtering out all colours that aren't red
(首先,我过滤掉所有不是红色的颜色)
waldo = Import["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"];
red = Fold[ImageSubtract, #[[1]], Rest[#]] &@ColorSeparate[waldo];
Next, I'm calculating the correlation of this image with a simple black and white pattern to find the red and white transitions in the shirt.
(接下来,我正在计算这个图像与简单的黑白图案的相关性,以找到衬衫中的红色和白色过渡。)
corr = ImageCorrelate[red,
Image@Join[ConstantArray[1, {2, 4}], ConstantArray[0, {2, 4}]],
NormalizedSquaredEuclideanDistance];
I use Binarize
to pick out the pixels in the image with a sufficiently high correlation and draw white circle around them to emphasize them using Dilation
(我使用Binarize
来选择具有足够高相关性的图像中的像素,并在它们周围绘制白色圆圈以使用Dilation
强调它们)
pos = Dilation[ColorNegate[Binarize[corr, .12]], DiskMatrix[30]];
I had to play around a little with the level.
(我不得不在水平上玩一点。)
If the level is too high, too many false positives are picked out. (如果水平太高,则挑选出太多误报。)
Finally I'm combining this result with the original image to get the result above
(最后,我将这个结果与原始图像结合起来得到上面的结果)
found = ImageMultiply[waldo, ImageAdd[ColorConvert[pos, "GrayLevel"], .5]]
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…