宅男福利!我用Python做了一个B站跳舞的小姐姐,满屏的美腿!
点上方蓝色“菜鸟学Python”,选“星标”公众号
重磅干货,第一时间送到
周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。
一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。
B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。
01.弹幕抓取
首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。
上述程序中,首先构造指定日期的弹幕url链接,由于弹幕链接是静态网页,所以直接采用requests来请求网页源代码,并提取弹幕信息,将提取到的弹幕信息进行去重并写入到本地文件即可。
02.视频转化成图片
接下来我们将视频转化为图片,由于视频过长,所以需要提取视频中的一部分,来作为接下来的处理视频,程序如下:
videoCrop = VideoFileClip("video.flv").subclip(18, 33)videoCrop.write_videofile("subvideo.mp4")
上述的程序中,提取了完整视频的18秒到33秒的视频,并保存为mp4文件。提取视频之后,接下来是将视频的每一帧转化为图片并保存到本地的文件夹下,程序如下所示:
上述的程序中,利用opencv来逐帧的读取视频,并按照顺序保存到本地的文件夹中,转化的图片如下图所示。
03.利用百度AI来人像分割转化为二值图
进行完视频转化图片之后,接下来需要进行人像的分割,将小姐姐转化为二值图像,实现人像和背景的分离,这里,可以使用百度AI的人像分割接口,程序如下所示。
上述程序中,利用百度AI的接口来进行人像分割,这里只需要返回二值化的结果即可,我们将返回的二值结果进行处理,并保存为png格式的图片。
04.小姐姐词云生成
有了小姐姐的二值化分割图后,接下来就是利用这些图作为mask,来生成词云图,程序如下所示:
程序中,首先将图片以二进制的形式读入,然后利用jieba来分词并去除分词结果中我们不希望出现的词组;将分好的词组利用stylecloud来进行词云的制作。
这里需要注意的是,stylecloud的源码中是不支持自定义mask的,所以我们需要自己在stylecloud的源码中进行修改添加,让它支持自定义mask。制作好的词云图如下所示。
可以看到,大家的弹幕信息中,大多是对于小姐姐绝妙身材的羡慕和喜欢。接下来我们看一下,如何利用程序将词云制作成视频,并结合原音频进行展示。
05.合成视频
程序首先设置了输出视频的名称和帧率,然后利用opencv,将图片写入到视频文件中去,形成词云视频,最后将词云视频和原视频的音频进行合并,形成我们最终的小姐姐词云视频,合成的视频效果如下所示:
以上就是今天为大家带来的小姐姐词云舞蹈视频,大家也可以自己来做一个喜欢的动态词云视频,合成自己最喜欢的视频。
辛苦一个周末,欢迎留言区吱一声,记得给我三连哦!
程序员GitHub,现已正式上线! 接下来我们将会在该公众号上,专注为大家分享GitHub上有趣的开源库包括Python,Java,Go,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。
推荐阅读:
这个GitHub 1400星的Git魔法书火了,斯坦福校友出品丨有中文版 贼 TM 好用的 Java 工具类库 超全Python IDE武器库大总结,优缺点一目了然! 秋招来袭!GitHub28.5颗星!这个汇聚阿里,腾讯,百度,美团,头条的面试题库必须安利! 收获10400颗星!这个Python库有点黑科技,竟然可以伪造很多'假'的数据! 牛掰了!这个Python库有点逆天了,竟然能把图片,视频无损清晰放大!
点这里,获取一大波福利