大家好,我是菜鸟哥!这是我第482篇原创

今天是5月20号,520意为”我爱你“的谐音,5月20日也被认为是网络情人节。在这一天,情侣们都要为彼此送上礼物,来度过美好的一天。作为程序员的我们,自然有着属于自己的节日礼物。

今天,菜鸟哥就通过80行代码,来让女友喜欢的歌星送上对于情侣们的祝福,一起来看看吧。

实现目的

首先,我们通过结果的展示来看一下实现的效果:

从上图可以看到,左侧给出的是情侣合照,而右侧则是周董的帅气照片。在人物照的周围,布满了漂亮的词云装饰图。

仔细观察词云图可以发现,词云的内容是周杰伦的歌曲《告白气球》。大家可以通过程序来制作一款520纪念相册,来用不同的歌曲词云图来装饰和伴侣之间的图片,亦或是情侣们喜欢的歌星的图片。

在520这一天,亲手送给对方。非常具有纪念意义。

程序实现

为了更好的帮助大家对程序有更加详尽的了解,我们通过程序的讲解来进一步深度理解。程序的实现可以分为以下的几个步骤,这几个步骤之间是环环相扣。

  • 图片背景图的提取

  • 词云图的制作

  • 词云图和原图的融合

  • 图片背景图的提取

对于背景图片的提取,也就是将人像分割出来,其余的部分作为背景图,用来后续及逆行词云图的制作,其程序如下所示:

对于背景图像的提取,可以利用百度AI的接口来进行实现,程序首先以二进制的形式读取要进行人像分割的图片,然后利用百度AI的接口进行人像分割,返回”labelmap“,也就是人像分割的结果。

对于分割的结果,需要通过numpy和opencv进行二次的处理后,才能保存到本地的self.forground_path文件中。其分割出来的效果如下图所示。

分割的结果中,人像呈现黑色,而背景图则是灰色。

词云图的制作

得到了背景图之后,接下来就可以利用stylecloud库来进行词云图的制作。程序如下图所示:

程序首先读取歌词信息,然后利用jieba库进行分词处理,通过设置stop_words来去除分词结果中的无用词语。最后通过stylecloud库来生成词云图。

可以看到gen_stylecloud函数中的mask_path传入的正是我们上面生成的背景图。最后我们将生成的词云图在保存到self.forground_path文件中。

其词云图的结果如下图所示:

可以看到,词云图中以人像的背景图作为mask,生成了词云图,接下来就是将我们的词云图与原始的输入图像进行融合,得到最终的结果图。

词云图和原图的融合

得到词云的结果后,接下来就是将词云和原图进行结合,得到最终的结果,程序如下图所示:

程序通过opencv库,将词云图进行二值化处理,提取处词云图中的词云数据,然后通过”与操作“,分别保留了原图中除去词云之外的图像信息,命名为img1_bg,保留词云图中的词云数据,命名为img2_fg。最后将img1_bg和img2_fg相加,即可得到最终的结果图:

总结:

以上就是小编为大家带来的520分享礼物,大家可以按照上述的程序,制作属于自己的520礼物。当然了,对比这样的礼物,能够给伴侣来一场购物大狂欢是更加实际的!

关于520,大家有什么想说的,欢迎在留言区吱一声~,记得给个三连哦!

如何获取源码:

可以在本公众号「菜鸟学Python」后台输入:小助手,找他获取,暗号:520

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

520到了! 我用Python拜托周董为我和女友送上祝福!相关推荐

  1. Python实现词云生日祝福图片,快拿去给心爱的人送上祝福

    前言 程序员也是懂浪漫的,比如说很常见的一个生成玫瑰花的小项目,就可以哄自己喜欢的人开心好久,那么如果能够在她生日的时候,送上一个有词云组成的生日祝福,对方肯定会更加的开心,程序员也可以稳稳地拿捏住自 ...

  2. 今天元宵节啦,给大家用Python送上祝福

    目录 第一步 获取 总结代码 元宵节的来历 写在最后 今天是正月十五,首先祝大家元宵节快乐! 这是通过 python 编程生成的.怎么样,要不要来试下呢? 涉及的原理并不复杂,接下来我们一步步来说明. ...

  3. 用python庆祝生日_吃重庆小面 庆祖国华诞丨我们用重庆特色,为祖国母亲送上祝福...

    为庆祝中华人民共和国成立71周年,南岸区教育系统组织辖区各校开展"吃重庆小面 庆祖国华诞"主题活动,下面跟随南南一起去看看吧! 珊瑚幼儿园 山河壮丽,岁月峥嵘:江山不老,祖国常青! ...

  4. Python基于周立功盒子的二次开发的封装和调用

    Python基于周立功盒子的二次开发的封装和调用 一.介绍     前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...

  5. python第二周day3

    python第二周day3(9.24) 1.day7字典作业更改版 # 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) ) stude ...

  6. python第二周day2

    python第二周day2(9.23) 1.day6列表作业更改版 import random # 随机操作 # random.randint(0, 100) # **1.创建一个列表,列表中有10个 ...

  7. python第二周day5

    python第二周day5(9.27) 1.day9字符串作业更改版 # *1.1输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7-位上的字符) # 例如: 输入**'abcd1234 ' ...

  8. Python 实现 周志华 《机器学习》 BP算法

    习题5.5: 试编程实现标准BP算法和累积BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并进行比较 算法的主要思想来自周志华<机器学习>上讲BP算法的部分,实现了书上介 ...

  9. Python 实现 周志华 《机器学习》 BP算法(高级版)

    习题5.5: 试编程实现标准BP算法和累积BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并进行比较 算法的主要思想来自周志华<机器学习>上讲BP算法的部分,实现了书上介 ...

最新文章

  1. 引导直觉解决数学猜想难题,DeepMind登上《Nature》封面
  2. 动态追踪技术思想及应用
  3. javascript里你绝对用的上的字符分割函数--原创
  4. ReactNative-触摸事件
  5. 自定义注解--Annotation
  6. 登陆获取cookie
  7. jQuery具体实例介绍什么时候用ajax,ajax应该在什么地方使用
  8. 原生JS封装拖动验证滑块方法
  9. linux bsd格式,Linux系统日志管理_Linux/BSD系统
  10. 房屋托管平台“朴邻”签约法大大,电子合同提升客户签约体验
  11. [ - OpenGLES3.0 - ] 第一集 主线 - 打开新世界的大门
  12. java校园二手书交易管理系统springboot+Vue
  13. smartUpload上传图片的用法
  14. 小白学习,歌词解析(全)
  15. 【Ubuntu】安装 ibus 中文拼音输入法
  16. 人力资源管理的现状及发展趋势
  17. 从零开始在云服务器上搭建个人博客
  18. MySQL----数据库概述
  19. 【树莓派】树莓派TXD、RXD的配置与使用可实现与STM32的通信
  20. Java与C语言中的锁

热门文章

  1. vue input组件设置失焦与聚焦
  2. 粗略的了解Javascript
  3. MiniGUI移植过程
  4. 清橙OJ A1095 回溯之教室排课
  5. 【智能优化算法-正弦余弦算法】基于反向正弦余弦算法求解高维优化问题附matlab代码
  6. 基于SLAM融合构图的自主轮式仓储货运机器人技术说明
  7. 电池相关---电池保护
  8. 网易2019实习生招聘编程题集合 - 题解
  9. 大家保险发布“早下班一小时”倡议,呼吁“重阳节,不脱节”
  10. 新媒体运营学习路线及全套视频教程资源