在脸书上看到的 LoL
http://stackoverflow.com/questions/8479058/how-do-i-find-waldo-with-mathematica/8479757#8479757
原本代码用的威利图片网址已失效,可以另外估狗
加上其中pos代码里有个系数(.12)要手动调,太小找不到,太大会找到太多假威利
所以稍做更改的代码是:
waldo = Import["http://i.imgur.com/b28ih.jpg" (* 找威利图 *)];
red = Fold[ImageSubtract, #[[1]], Rest[#]] &@ColorSeparate[waldo];
corr = ImageCorrelate[red,
Image@Join[ConstantArray[1, {2, 4}], ConstantArray[0, {2, 4}]],
NormalizedSquaredEuclideanDistance
(*这个属性MMA 8之后才有*)];
adjust = Manipulate[
ImageMultiply[waldo,
ImageAdd[
ColorConvert[
Dilation[ColorNegate[Binarize[corr, index (* 此系数是关键门槛*)]],
DiskMatrix[30]], "GrayLevel"], .5]], {index, 0, 1, 0.02}]
试玩后感觉是,这个方法辨识的是威利红白相间的衣服,只对一些假威利比较少,比较
benign的图有用。
google到的图有些根本没有威利另当别论~~HAHA。