Así funciona Megabite una aplicación que convierte tu comida en rostros

Así funciona Megabite una aplicación que convierte tu comida en rostros

Un día me encontraba almorzando y comencé a jugar con la comida, cree algunos rostros, después me pregunte a mi mismo: ¿sería posible automatizar este proceso?. Así fue como nació la idea de Megabite que poco tiempo después se convirtió en realidad gracias a Aaron Randall.

¿Cómo funciona?

Una vez que es tomada una foto con la aplicación Megabite esta analiza la imagen para detectar y extraer los elementos de manera individual, después estos elementos son reorganizados para formar un rostro.

La aplicación realiza los siguientes pasos para llevar a cabo el resultado final “un rostro de comida”:

Preparación de imagen

Preparación de imagen-megabite

El primer paso es que el usuario tome una foto con la aplicación, que luego se cambia el tamaño de 1.000 x 1.000 píxeles (este tamaño es perfecto para reducir la cantidad de tiempo para procesar la imagen, y mejorar la calidad de imagen) y, a continuación es recortada a un imagen circular:

Detección y filtrado de contornos

El siguiente paso es identificar los elementos individuales de la imagen circular, y determinar los contornos.

Para ello, la aplicación realiza lo siguiente:

  • con la imagen recortada [1], la aplicación aplica el operador detector de bordes de Canny [2], y extrae las imágenes planas tricolor [3,4,5]

El detector de bordes de Canny utiliza un algoritmo multi-etapa  para detectar una amplia gama de bordes en imágenes. Fue desarrollado por John F. Canny en 1986. Más información.

  • con el Canny y las imágenes en plano de color, la función finding contours de OpenCV es utiliza para extraer contornos (y la información jerárquica) de cada imagen. En este ejemplo, un montón de contornos son detectados y resaltados en rojo [6].

La función finding contours de OpenCV se utiliza para extraer contornos de imágenes. Más información.

  • siguiente, un primer paso de filtrado de contorno rechaza contornos no convexos (por ejemplo, contornos abiertos como una forma de ‘C’), y los contornos exteriores de una superficie sensible (demasiado grande / pequeño) [7]
  • Finalmente, el filtro de contorno elimina duplicados (contornos similares basado en el tamaño y la ubicación), y los contornos hijos (contornos contenidos dentro de un contorno más grande), que por ejemplo, quita los contornos de yema de huevo del interior del contorno blanco del huevo [8] .

detección y filtrado de contornos-megabite

Extracción de contornos

Para cada uno de los 6 contornos detectados, la aplicación corta el contorno de la imagen de origen, y reduce cada uno a su rectángulo delimitador mínimo. Lo hace mediante el uso de cálculos de rotación. Se logra el resultado que vemos a continuación en el gif.

xtracción de los contornos de la imagen-megabite

El MBR de una geometría es la geometría delimitadora formada por las coordenadas (X,Y) mínimas y máximas.

Una vez que este proceso ha finalizado para los 6 contornos, tenemos las siguientes imágenes con su rectángulo delimitador mínimo:

mágenes con su rectángulo delimitador mínimo-megabite

Colocar las imágenes extraídas en moldes

Aquí es donde sucede la magia. La aplicación tiene un conjunto predefinido de plantillas – un grupo de polígonos simples – que pueden ser utilizado como base para la organización de las imágenes extraídas. En esta aplicación demo, se definió 3 plantillas de destino, que van de 3 a 6 polígonos :

moldes-megabite

El paso siguiente que realiza la aplicación es:

  • selecciona el molde basado en el número de imágenes extraídas – en este ejemplo, se extrajeron 6, así que se selecciona la plantilla con 6 polígonos.
  • las imágenes extraídas y plantillas de polígonos se clasifican en orden de tamaño, mayor a menor, para después ser emparejados.

Emperejar-megabite

gif emparejar-megabite

Finalmente se logra el resultado deseado.

Resultado final

El proyecto Megabite esta en el perfil de github de Aaron Randall, puedes hacer clic aquí para descargarlo o ver le código fuente. 

Descargar este artículo en PDF

Lo sentimos, esta opción solo está disponible para los socios. Más información de nuestro grupo de socios.


Angel Sanchez on FacebookAngel Sanchez on GithubAngel Sanchez on GoogleAngel Sanchez on InstagramAngel Sanchez on LinkedinAngel Sanchez on Twitter
Angel Sanchez
CEO en Azul Web
Fundador de Azul Web amante de la tecnología, me gusta compartir mis conocimientos y apoyar a las demás personas que desean tener un mejor desarrollo profesional. Toda persona que tenga un sueño y este luchando por él tiene mi respeto y mi apoyo.

Déjanos un comentario:

Deja un comentario