宅男福利!我用Python做了一個B站跳舞的小姐姐,滿屏的美腿!
點上方藍(lán)色“菜鳥學(xué)Python”,選“星標(biāo)”公眾號
重磅干貨,第一時間送到
周末在家,天氣好冷好冷啊,我們這邊都下雪了!宅在家里沒有啥事情,于是燉了只老母雞,補補身子。
一邊燉雞湯,一邊用Python碼些好玩的腳本。辛苦了一個周末,菜鳥哥寫了一個好玩的小腳本,趕緊跟大家分享一下。
B站上的漂亮的小姐姐真的好多好多,今天我們來玩一個來抓取B站上跳舞的小姐姐視頻,并利用視頻中大家的彈幕來繪制一個跳動彈幕的舞蹈視頻,非常炫酷~~一起來看看吧。
01.彈幕抓取
首先,我們選定一個彈幕比較多的小姐姐舞蹈視頻,并下載該視頻,同時,利用以下程序來抓取小姐姐視頻中的彈幕信息。

上述程序中,首先構(gòu)造指定日期的彈幕url鏈接,由于彈幕鏈接是靜態(tài)網(wǎng)頁,所以直接采用requests來請求網(wǎng)頁源代碼,并提取彈幕信息,將提取到的彈幕信息進(jìn)行去重并寫入到本地文件即可。
02.視頻轉(zhuǎn)化成圖片
接下來我們將視頻轉(zhuǎn)化為圖片,由于視頻過長,所以需要提取視頻中的一部分,來作為接下來的處理視頻,程序如下:
videoCrop = VideoFileClip("video.flv").subclip(18, 33)videoCrop.write_videofile("subvideo.mp4")上述的程序中,提取了完整視頻的18秒到33秒的視頻,并保存為mp4文件。提取視頻之后,接下來是將視頻的每一幀轉(zhuǎn)化為圖片并保存到本地的文件夾下,程序如下所示:

上述的程序中,利用opencv來逐幀的讀取視頻,并按照順序保存到本地的文件夾中,轉(zhuǎn)化的圖片如下圖所示。

03.利用百度AI來人像分割轉(zhuǎn)化為二值圖
進(jìn)行完視頻轉(zhuǎn)化圖片之后,接下來需要進(jìn)行人像的分割,將小姐姐轉(zhuǎn)化為二值圖像,實現(xiàn)人像和背景的分離,這里,可以使用百度AI的人像分割接口,程序如下所示。

上述程序中,利用百度AI的接口來進(jìn)行人像分割,這里只需要返回二值化的結(jié)果即可,我們將返回的二值結(jié)果進(jìn)行處理,并保存為png格式的圖片。
04.小姐姐詞云生成
有了小姐姐的二值化分割圖后,接下來就是利用這些圖作為mask,來生成詞云圖,程序如下所示:

程序中,首先將圖片以二進(jìn)制的形式讀入,然后利用jieba來分詞并去除分詞結(jié)果中我們不希望出現(xiàn)的詞組;將分好的詞組利用stylecloud來進(jìn)行詞云的制作。
這里需要注意的是,stylecloud的源碼中是不支持自定義mask的,所以我們需要自己在stylecloud的源碼中進(jìn)行修改添加,讓它支持自定義mask。制作好的詞云圖如下所示。

可以看到,大家的彈幕信息中,大多是對于小姐姐絕妙身材的羨慕和喜歡。接下來我們看一下,如何利用程序?qū)⒃~云制作成視頻,并結(jié)合原音頻進(jìn)行展示。
05.合成視頻
程序首先設(shè)置了輸出視頻的名稱和幀率,然后利用opencv,將圖片寫入到視頻文件中去,形成詞云視頻,最后將詞云視頻和原視頻的音頻進(jìn)行合并,形成我們最終的小姐姐詞云視頻,合成的視頻效果如下所示:
以上就是今天為大家?guī)淼男〗憬阍~云舞蹈視頻,大家也可以自己來做一個喜歡的動態(tài)詞云視頻,合成自己最喜歡的視頻。
辛苦一個周末,歡迎留言區(qū)吱一聲,記得給我三連哦!
程序員GitHub,現(xiàn)已正式上線! 接下來我們將會在該公眾號上,專注為大家分享GitHub上有趣的開源庫包括Python,Java,Go,前端開發(fā)等優(yōu)質(zhì)的學(xué)習(xí)資源和技術(shù),分享一些程序員圈的新鮮趣事。
推薦閱讀:
這個GitHub 1400星的Git魔法書火了,斯坦福校友出品丨有中文版 賊 TM 好用的 Java 工具類庫 超全Python IDE武器庫大總結(jié),優(yōu)缺點一目了然! 秋招來襲!GitHub28.5顆星!這個匯聚阿里,騰訊,百度,美團(tuán),頭條的面試題庫必須安利! 收獲10400顆星!這個Python庫有點黑科技,竟然可以偽造很多'假'的數(shù)據(jù)! 牛掰了!這個Python庫有點逆天了,竟然能把圖片,視頻無損清晰放大!
點這里,獲取一大波福利


