Como fazer uma cara de comida
O aplicativo Megabite de Aaron Randall usa uma foto de comida, analisa todos os componentes do seu prato e troca tudo para obter uma cara engraçada em um prato. Sob o corte - vídeo e descrição do algoritmo.
Preparação da imagem
O usuário leva comida usando o aplicativo, o tamanho da foto é alterado para 1000x1000 pixels e depois recortado ao longo do contorno do prato.
Detecção de borda
Na próxima etapa, o aplicativo procura objetos individuais, determinando seus contornos. O aplicativo aplica o operador de detecção de limite de imagem Canny (2) e recebe três imagens para o trabalho subsequente (3, 4, 5). Em seguida, a função findCours do OpenCV é usada para detectar os contornos de cada parte. Os contornos da imagem abaixo estão marcados em vermelho. Em seguida, o algoritmo filtra os contornos da "filha" - por exemplo, a gema nos ovos mexidos.
Selecionando contornos de uma imagem
O aplicativo inverte cada contorno resultante para caber na caixa delimitadora mínima - a área mínima que conterá a imagem na escala máxima. O processo é repetido para todas as seis partes do exemplo.

Colocando peças em um modelo
O aplicativo possui modelos que são usados para organizar partes individuais. Abaixo estão três exemplos, com o número de polígonos de três a seis.
Em seguida, o aplicativo seleciona o modelo de acordo com o número de detalhes. Neste exemplo, existem seis partes, portanto o focinho ficará com orelhas e nariz. Em seguida, os polígonos e partes da imagem são classificados por tamanho e selecionados em pares.
No próximo estágio, os detalhes são colocados no modelo para que os alimentos ocupem a área máxima possível de cada um dos polígonos.
Resultado
Esse rosto acabou saindo de ovos fritos com bacon e torradas. O autor escreve que o aplicativo até agora só funciona com fotos semelhantes a esta e até agora tem muitas limitações.
Source: https://habr.com/ru/post/pt390075/
All Articles