¿Se puede encontrar a Wally con Mathematica?
Mathematica es un software científico, creado por la empresa WolframAlpha, utilizado en su mayor parte por matemáticos, ingenieros, y otras personas del área de las ciencias exactas.
El programa tiene su propio lenguaje de programación, que sirve para plantear problemas y programar posibles soluciones para el mismo. A partir de esto, en Stack Overflow se comenzó una pregunta sobre si era posible programar un código en Mathematica para encontrar a Wally (¿no conocés a Wally?) en una de sus famosas imágenes.
El blog matemático Gaussianos hizo una buena reseña sobre ese thread con explicaciones sobre el asunto. El código propuesto es el siguiente (se necesita Mathematica 8):
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];
pos = Dilation[ColorNegate[Binarize[corr, .12]], DiskMatrix[30]];
found = ImageMultiply[waldo, ImageAdd[ColorConvert[pos, "GrayLevel"], .5]]
La explicación del algoritmo utilizado es sencilla. Primero se carga la imagena utilizar y se filtran todos los colores que no sean el rojo (por la camiseta de Wally). Luego se calcula la correlación entre esa imagen y un patrón en blanco y negro, para identificar las rayas de la camiseta. Luego se seleccionan los píxeles con la correlación más alta y se dibuja un círculo alrededor, y finalmente se combinan ambas imágenes.
Utilizando esto como imagen original,
el resultado conseguido sería el siguiente:
El código parece funcionar perfecto, pero no hay que emocionarse porque con otras imágenes puede fallar. Sin embargo, sirve para ver el poder que tiene este software y que en pocas líneas de código se pueden hacer cosas interesantes como éstas!
La empresa que hace Mathematica se llama Wolfram Research, WolframAlpha es su motor de inteligencia computacional que fue desarrollado por la misma.
Saludos
Pingback: Buscando a Wally usando Mathematica | CyberHades
Pingback: Buscar a Wally con Mathematica