#yyds干货盘点#Python实战案例,CV2模块,Python实现抖音字符视频
Posted 逻辑教育
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#Python实战案例,CV2模块,Python实现抖音字符视频相关的知识,希望对你有一定的参考价值。
前言
利用Python实现抖音字符视频。废话不多说。
让我们愉快地开始吧~
开发工具
Python版本: 3.6.4
相关模块:
cv2模块;
PIL模块;
numpy模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
主要用到的库有cv2,pillow库。
原视频如下,直接抖音下载的。
视频转图片
运行下面这个命令,即可成功安装cv2这个库。
pip3 install opencv-python
或者下个.whl格式来安装
代码实现如下:
import cv2
import os
# 在当前目录下新建文件夹
folder_path = "img_bear/"
os.makedirs(folder_path)
# 进行视频的载入
vc = cv2.VideoCapture(bear.mp4)
c = 0
# 判断载入的视频是否可以打开
ret = vc.isOpened()
# 循环读取视频帧
while ret:
c = c + 1
# 进行单张图片的读取,ret的值为True或者Flase,frame表示读入的图片
ret, frame = vc.read()
if ret:
# 存储为图像
cv2.imwrite(img_bear/+str(c) + .jpg, frame)
# 输出图像名称
print(img_bear/+str(c) + .jpg)
# 在一个给定的时间内(单位ms)等待用户按键触发,1ms
cv2.waitKey(1)
else:
break
# 视频释放
vc.release()
生成了369张图片
图片转字符
普通图片转字符图片主要使用了pillow库。
对图片做灰度处理,然后根据图片像素点的灰度值,添加对应的字符。
代码实现
from PIL import Image, ImageDraw, ImageFont
import numpy as np
import os
# 创建字符图片文件夹
folder_path = "bear/"
os.makedirs(folder_path)
for i in range(1, 1000):
filename = img_bear/ + str(i) + .jpg
# 字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1[]?-_+~ <>i!lI;:,\\"^`. ")
# 判断图片是否存在
if os.path.exists(filename):
# 将图片转化为灰度图像,并重设大小
img_array = np.array(Image.open(filename).resize((70, 70), Image.ANTIALIAS).convert(L))
# 创建新的图片对象
img = Image.new(L, (560, 560), 255)
draw_object = ImageDraw.Draw(img)
# 设置字体
font = ImageFont.truetype(consola.ttf, 10, encoding=unic)
# 根据灰度值添加对应的字符
for j in range(70):
for k in range(70):
x, y = k * 8, j * 8
index = int(img_array[j][k] / 4)
draw_object.text((x, y), ascii_char[index], font=font, fill=0)
name = bear/ + str(i) + .jpg
print(name)
# 保存字符图片
img.save(name, JPEG)
生成了369字符图片
字符转视频
使用cv2库,将字符图片转化为视频。
代码实现
import cv2
import os
# 设置视频编码器,这里使用使用MJPG编码器
fourcc = cv2.VideoWriter_fourcc(*MJPG)
# 输出视频参数设置,包含视频文件名、编码器、帧率、视频宽高(此处参数需和字符图片大小一致)
videoWriter = cv2.VideoWriter(bear_character.avi, fourcc, 20.0, (560, 560))
for i in range(1, 1000):
filename = bear/+str(i)+.jpg
# 判断图片是否存在
if os.path.exists(filename):
img = cv2.imread(filename=filename)
# 在一个给定的时间内(单位ms)等待用户按键触发,100ms
cv2.waitKey(100)
# 将图片写入视频中
videoWriter.write(img)
print(str(i) + .jpg + done!)
# 视频释放
videoWriter.release()
成功生成字符视频
以上是关于#yyds干货盘点#Python实战案例,CV2模块,Python实现抖音字符视频的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#Python实战案例,pygame模块,Python实现套路表白神器VS无套路表白神器
#yyds干货盘点#Python实战案例,PIL模块,Python实现自动化生成倒计时图片
#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现人脸检测
#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现边缘检测