周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。
一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。
B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。
1、弹幕抓取
首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。
上述程序中,首先构造指定日期的弹幕url链接,由于弹幕链接是静态网页,所以直接采用requests来请求网页源代码,并提取弹幕信息,将提取到的弹幕信息进行去重并写入到本地文件即可。
2、视频转化成图片
接下来我们将视频转化为图片,由于视频过长,所以需要提取视频中的一部分,来作为接下来的处理视频,程序如下:
videoCrop = VideoFileClip("video.flv").subclip(18, 33)videoCrop.write_videofile("subvideo.mp4")
上述的程序中,提取了完整视频的18秒到33秒的视频,并保存为mp4文件。提取视频之后,接下来是将视频的每一帧转化为图片并保存到本地的文件夹下,程序如下所示:
上述的程序中,利用opencv来逐帧的读取视频,并按照顺序保存到本地的文件夹中,转化的图片如下图所示。
3、利用百度AI来人像分割转化为二值图
进行完视频转化图片之后,接下来需要进行人像的分割,将小姐姐转化为二值图像,实现人像和背景的分离,这里,可以使用百度AI的人像分割接口,程序如下所示。
上述程序中,利用百度AI的接口来进行人像分割,这里只需要返回二值化的结果即可,我们将返回的二值结果进行处理,并保存为png格式的图片。
4、小姐姐词云生成
有了小姐姐的二值化分割图后,接下来就是利用这些图作为mask,来生成词云图,程序如下所示:
程序中,首先将图片以二进制的形式读入,然后利用jieba来分词并去除分词结果中我们不希望出现的词组;将分好的词组利用stylecloud来进行词云的制作。
这里需要注意的是,stylecloud的源码中是不支持自定义mask的,所以我们需要自己在stylecloud的源码中进行修改添加,让它支持自定义mask。制作好的词云图如下所示。
可以看到,大家的弹幕信息中,大多是对于小姐姐绝妙身材的羡慕和喜欢。接下来我们看一下,如何利用程序将词云制作成视频,并结合原音频进行展示。
5、合成视频
程序首先设置了输出视频的名称和帧率,然后利用opencv,将图片写入到视频文件中去,形成词云视频,最后将词云视频和原视频的音频进行合并,形成我们最终的小姐姐词云视频。
以上就是今天为大家带来的小姐姐词云舞蹈视频,大家也可以自己来做一个喜欢的动态词云视频,合成自己最喜欢的视频。
【读者福利】
如果你对Python感兴趣,学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要有一个系统的学习规划。
小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
如果你是准备学习Python或者正在学习,下面这些你应该能用得上:
1、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!