如何用食物做鬼脸

亚伦·兰德尔(Aaron Randall)的Megabite应用程序使用食物照片,分析菜肴的每个成分,然后交换所有内容以在盘子上摆出有趣的面孔。下切-视频和算法说明。

图片



影像准备


用户使用该应用程序食用食物,照片尺寸更改为1000x1000像素,然后沿着盘子的轮廓裁剪。

图片

边缘检测


在下一步中,应用程序搜索单个对象,确定其轮廓。该应用程序应用Canny图像边界检测运算符(2),并接收三张图像用于后续工作(3、4、5)。然后使用OpenCV findContours函数检测每个零件的轮廓。下图中的轮廓标记为红色。然后,算法会滤除“女儿”轮廓,例如,炒鸡蛋中的蛋黄。

图片

从图像中选择轮廓


该应用程序翻转每个结果轮廓以适合最小边界框-包含最大比例图像的最小区域。在示例中,对所有六个部分重复此过程。

图片

图片

将零件放在模板上


该应用程序具有用于排列各个零件的模板。下面是三个示例,多边形的数量从三个到六个。

图片

然后,应用程序根据详细信息的数量选择模板。在此示例中,有六个部分,因此枪口会变成耳朵和鼻子。然后,按尺寸对图像的多边形和部分进行排序并成对选择。

图片

在下一阶段,将细节放置在模板上,以使食物占据每个多边形的最大可能面积。

图片

结果


这样的面孔最终从培根和烤面包的煎蛋中冒出来。作者写道,到目前为止,该应用程序仅适用于与此照片类似的照片,并且迄今为止存在许多局限性。

图片

Source: https://habr.com/ru/post/zh-CN390075/


All Articles