动态舞蹈舞动词云图跳跃舞蹈词云视频合成制作 自定义视频素材 自定义词组词频

动态舞蹈舞动词云图跳跃舞蹈词云视频合成制作 自定义视频素材

制作代码自行记录日记(以防日久忘记):

篇一:下载视频素材

you-get  视频网址

篇二:解析视频并分割转化成图片

import cv2
import os

# 视频转图片
vc = cv2.VideoCapture('C:\\Users\\asus\\Desktop\\rewu1.mp4') # 读取视频文件
c=0
n=1
f=3
if vc.isOpened():
    rval,frame = vc.read()# 读取视频帧
else:
    rval=False

while rval:
    rval,frame = vc.read()# 读取每一视频帧,并保存至图片中
    if (n % f == 0):
        c += 1 
        cv2.imwrite(os.path.join
        ('C:\\Users\\asus\\Desktop\\rewu\\','{}.jpg'.format(c)),frame)
        print('第 {} 张图片存放成功!'.format(c))
    n+=1

篇三:分割的图片再次转化成白底黑图并保存

from aip import AipBodyAnalysis
import os
import cv2
from stylecloud import gen_stylecloud
import numpy as np
from PIL import Image
from  jieba import cut,load_userdict
import base64

APP_ID = ""
API_KEY = ''
SECRET_KEY = ''
jpg_path='C:\\Users\\asus\\Desktop\\rewu'
save_path='C:\\Users\\asus\\Desktop\\rewushow'
client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)

for num in range(28,687):
    img_files = jpg_path+'\\{}.jpg'.format(num)
    img = cv2.imread(img_files)  # 获取图像尺寸
    height, width, _ = img.shape
    with open(img_files, 'rb') as f:
        img_info = f.read()

    #设置只返回前景分割出来的人像
    seg_res = client.bodySeg(img_info)
    labelmap = base64.b64decode(seg_res['labelmap'])
    nparr = np.frombuffer(labelmap, np.uint8)
    labelimg = cv2.imdecode(nparr, 1)
    labelimg = cv2.resize(labelimg, (width, height), interpolation=cv2.INTER_NEAREST)
    new_img = np.where(labelimg == 1, 255, labelimg)
    mask_name = '{}.png'.format(num)
    # 保存分割出来的人像
    cv2.imwrite(save_path+'\\'+mask_name, new_img)
    print('第{num}张图像分割完成')

篇四:生成词云图并保存

# 自动分词制作
filepath='英文励志短文.txt' # txt文本完整路径地址
#te=load_userdict(filepath) # 按照自定义txt文本分词
# 读取txt文本内容
# 自动分词制作
te=load_userdict(filepath) # 按照自定义txt文本分词
# 读取txt文本内容
with open(filepath,'r',encoding='utf-8') as f:
    txtword=f.read()
    # 直接用jieba自动分词,cut_all=True全模式分词,cut_all=False精确模式分词
    word_list = cut(txtword, cut_all=False)
    result = " ".join(word_list) 

save_path='C:\\Users\\asus\\Desktop\\rewushow'
for n in range(38,687):
    img_file =save_path+'\\{}.png'.format(n)
    background = 255- np.array(Image.open(img_file))

    # 制作词云图        
    gen_stylecloud(
        text=result, 
        size=1500, # (词云图尺寸大小)
        scale=1,
        prefer_horizontal=0.8, # 定义横竖比例
        font_path='力黑常规体.otf',
        background_color='#000000',# (词云图背景颜色)
        mode="RGB",
        repeat=True,
        output_name=save_path+'\\{}.png'.format(n), # (词云图输出存放地址)
            )
    print('{}.png'.format(n),'词云图绘制成功!')

篇五:图片转视频

import numpy as np
import cv2
import os
# 1.每张图像大小
size = (1280,720)
print("每张图片的大小为({},{})".format(size[0],size[1]))
# 2.设置源路径与保存路径
src_path = r'C:\\Users\\asus\\Desktop\\rewushow\\'
sav_path = r'C:/Users/asus/Desktop/视频.mp4'
# 3.获取图片总的个数
all_files = os.listdir(src_path)
index = len(all_files)
print("图片总数为:" + str(index) + "张")
# 4.设置视频写入器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')#MP4格式
#完成写入对象的创建,第一个参数是合成之后的视频的名称,第二个参数是可以使用的编码器,第三个参数是帧率即每秒钟展示多少张图片,第四个参数是图片大小信息
videowrite = cv2.VideoWriter(sav_path,fourcc,10,size)#2是每秒的帧数,size是图片尺寸
# 5.临时存放图片的数组
img_array=[]
# 6.读取所有png格式的图片
for i in range(38,685):
    img = cv2.imread(src_path+'\\{}.png'.format(i))
    if img is None:
        print('{}.png'.format(i) + " is error!")
        continue
    img_array.append(img)
# 7.合成视频 
for i in range(0,647):
    img_array[i] = cv2.resize(img_array[i],(1280,720))
    videowrite.write(img_array[i])
    print('第{}张图片合成成功'.format(i))
print('------视频合成!!!-------')

篇六:音频合成

用自己制作的CYSRUN音视频剪辑软件直接合成,搞定!

题外话:

部分代码没有标注解释,因为是自己要看的,源码在自己电脑上,其实也和上面文中的大概一致,因为我也是从自己电脑上vscode软件中写好的源码复制粘贴过来的。这只是自己怕忘记了,做个记录,所以可能不适用一些小白直接复制粘贴去跑代码,因为其中有些参数需要更改,也没有做过多的解释,可能有些小白看不懂,仅是篇自己的日记记录而已。 

你可能感兴趣的:(GUI-tkinter,音视频,python,开发语言,中文分词)