用Python做一个词云跳舞视频

最近真的是好无聊,无聊到家了,就想玩点有意思的,又没有人玩过的。那今天分享一个,简单,适合新手的 Python 小项目。很有趣,但是我不想告诉你是什么,就要让你自己去看。
在这里插入图片描述

以下是具体项目:

本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频。

同时利用 python 爬取 B 站视频弹幕,并利用 opencv 对视频进行分割,百度 AI 进行人像分割,moviepy 生成词云跳舞视频,并添加音频。

导入模块

下载所需模块

我们需要下载很多的模块,所以我们可以使用os.system()方法来自动安装所需模块,当然也有可能下载失败,特别是opencv-python,多安装几次就好啦.

####Python学习交流Q群:906715085###
import os
import time
libs = {
   "lxml","requests","pandas","numpy","you-get","opencv-python","pandas","fake_useragent","matplotlib","moviepy"}
try:
    for lib in libs:
        os.system(f"pip3 install -i https://pypi.doubanio.com/simple/ {
     lib}")
        print(lib+"下载成功")
except:
    print("下载失败")

导入模块

在这里统一先导入所需的模块

####Python学习交流群:906715085###
import os
import re
import cv2
import jieba
import requests
import moviepy
import pandas as pd
import numpy as np
from PIL import Image
from lxml import etree
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from fake_useragent import UserAgent

视频处理

下载视频

从B站视频下载舞蹈视频。

可以使用 you-get,用它可以下载视频,先安装:

pip install you-get

找到想要下载视频的连接,使用如下指令,就可以下载:

you-get -i https://www.bilibili.com/video/BV11C4y1h7nX

标有 DEFAULT 为默认画质。

在这里插入图片描述

下载完的视频。

在这里插入图片描述

在这里插入图片描述

视频分割

使用opencv,将视频的分隔为图片,本文截取 800 张图片来做词云。

opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头

代码展示

#-*- coding:utf-8 -*-
import cv2
cap = cv2.VideoCapture(r"无价之姐~让我乘风破浪~~~.flv")
num = 1
while 1:
    # 逐帧读取视频  按顺序保存到本地文件夹
    ret,frame = cap.read()
    if ret:
        cv2.imwrite(f".\pictures\img_{
     num}.jpg",frame)   
    else:
        break
cap.release()   # 释放资源

##结果展示
在这里插入图片描述

人像分割

创建应用

利用百度AI,创建一个人像分割的应用。
在这里插入图片描述

Python SDK参考文档

利用参考文档,来进行人像分割。

参考文档:

https://cloud.baidu.com/doc/BODY/s/Rk3cpyo93?_=5011917520845
在这里插入图片描述

代码展示

#-*- coding:utf-8 -*-
import cv2
import base64
import numpy as np
import os
from aip import AipBodyAnalysis
import time
import random

APP_ID = '******'
API_KEY = '*******************'
SECRET_KEY = '********************'

client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)
# 保存图像分割后的路径
path = './mask_img/'

# os.listdir  列出保存到图片名称
img_files = os.listdir('./pictures')
print(img_files)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值