最近真的是好无聊,无聊到家了,就想玩点有意思的,又没有人玩过的。那今天分享一个,简单,适合新手的 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)