我找到了沃尔多!
我是怎么做到的
首先,我过滤掉所有非红色的颜色
waldo = Import["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"];
red = Fold[ImageSubtract, #[[1]], Rest[#]] &@ColorSeparate[waldo];
接下来,我计算该图像与简单的黑白图案的相关性,以找到衬衫中的红色和白色过渡。
corr = ImageCorrelate[red,
Image@Join[ConstantArray[1, {2, 4}], ConstantArray[0, {2, 4}]],
NormalizedSquaredEuclideanDistance];
I use Binarize
挑选图像中具有足够高相关性的像素,并在它们周围画白色圆圈以强调它们Dilation
pos = Dilation[ColorNegate[Binarize[corr, .12]], DiskMatrix[30]];
我必须稍微调整一下关卡。如果级别太高,则会挑选出太多误报。
最后我将这个结果与原始图像结合起来得到上面的结果
found = ImageMultiply[waldo, ImageAdd[ColorConvert[pos, "GrayLevel"], .5]]