宅男福利!我用Python做了一个B站跳舞的小姐姐,满屏的美腿!

共 1724字,需浏览 4分钟

 ·

2020-12-20 08:13

点上方蓝色“菜鸟学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库有点逆天了,竟然能把图片,视频无损清晰放大!


点这里,获取一大波福利

浏览 73
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报