首页 > 卡通形象 > 照片生成卡通图片-在python中将照片转换为漫画
2023
07-03

照片生成卡通图片-在python中将照片转换为漫画

(想学习Python?Python学习交流群:1039649593,满足您的需求,所有资料已上传到群文件流,您可以自行下载!还有海量最新2020python学习资料。)

说到动漫大家一定都不陌生。 小编身边很多单码农都是动漫迷。 小编也是一位资深动漫迷。 动漫中出现了很多美女,比如《斗破苍穹》中的美杜莎、云韵、小薰儿,《天行九歌》中的紫女、燕灵姬等。 当然女生对于动漫也有自己的感情,系里也有喜欢cosplay的女生~~

于是我想既然Python万能,不如用Python做一个小程序,把小姐姐的头像变成漫画,然后就可以和部门小姐姐聊天吹牛了! 哈哈,想想就开心,于是我熬夜终于完成了这个小程序。

1

图片和漫画的区别

首先我们来看看漫画和我们照片的区别,如下图

2

图像转漫画 – 减少颜色

图像转漫画 – 减少颜色

有了上面两点的详细描述,我们接下来的节目也将围绕这两点展开。

首先,我们需要减少颜色的数量,我们使用oepncv库来实现。 我们首先使用金字塔下采样来降低图像的分辨率并增加原始图像的模糊度;

然后利用双边滤波对图片进行不断的滤波吉祥物,进一步改善图片的模糊程度,就达到了我们模糊的目的。

使用金字塔代替插值降低图像分辨率的目的是为了实现模糊,因为金字塔下采样会产生失真;

使用双边滤波可以很好的保留边缘信息,这对于我们上面提到的增强边缘非常友好。

下图展示了程序减少颜色数量时图像分辨率的变化过程:

对应的程序如下图所示:

在上面的程序中,我们需要注意的一点是,我们必须将输入图像的图像尺寸调整为4的整数倍,因为在金字塔下采样的过程中,图像会缩小到1/4默认为原始尺寸。 如果相除,程序会自动向上舍入。 在这种情况下,我们上采样后,模糊图像和原始输入图像的分辨率会略有不同,这将节省后续程序。

3

图像到漫画 – 增强轮廓

完成上述步骤后,我们将继续完善轮廓。 我们的程序如下所示:

在上面的程序中,我们利用opencv的自适应阈值函数对轮廓进行分割,然后根据轮廓图的值对我们的轮廓图和模糊图片进行AND运算,最终得到我们的漫画图。

以上就是程序的核心部分。 接下来,我们使用Python中著名的框架flask程序制作一个简单的网站页面。

4

Flask 制作一个简单的网站

对于flask程序,大家想必或多或少都有一定的了解。 我们使用的flask程序非常简单。 我简单说一下思路和步骤:

首先,当我们运行程序时,会出现下图最上面的界面;

然后我们选择图片并点击上传,html页面会跳转到/cartoon的子页面,同时在后台运行漫画功能,如中图所示;

至此照片生成卡通图片,图片的转换完成,将图片转换成漫画的地址返回到html页面;

html页面只需要找到这张图片并显示在页面上即可,如下图最下图所示。

熬夜了照片生成卡通图片,真的很累,原创不容易。 上面的网站虽然已经完成了,但是页面非常简单ip形象,需要进一步美化! 这篇文章只是给大家做个介绍。 Python中有很多有趣的库,你可以做很多有趣的事情。

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计