前言

利用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)等待用户按键触发,1mscv2.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 * 8index = 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)等待用户按键触发,100mscv2.waitKey(100)# 将图片写入视频中videoWriter.write(img)print(str(i) + '.jpg' + ' done!')
# 视频释放
videoWriter.release()
复制代码

成功生成字符视频

源码我已经整理好,需要的后台扣666找我拿

Python实战案例,CV2模块,Python实现抖音字符视频相关推荐

  1. python刷抖音_用Python生成抖音字符视频!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频如下,直接抖音下载的,妥妥的水 ...

  2. python int转str_用Python生成抖音字符视频!

    作者 | 小 F 来源 | 法纳斯特 抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. ...

  3. python宣传视频 抖音_Python生成抖音字符视频,技术流!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐- 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频,直接抖音下载的,妥妥的水印. / ...

  4. 抖音上python_用Python生成抖音字符视频!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频如下,直接抖音下载的,妥妥的水 ...

  5. 用Python生成抖音字符视频!

    作者 | 小F 来源 | 法纳斯特(公众号id:walker398) 抖音字符视频在去年火过一段时间.反正我是始终忘不了那段极乐净土的音乐...这一次自己也来实现一波,做一个字符视频出来.主要用到的库 ...

  6. python写抖音网站_用Python生成抖音字符视频!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频如下,直接抖音下载的,妥妥的水 ...

  7. python 制作字符视频_用Python生成抖音字符视频!

    抖音字符视频在去年火过一段时间. 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波,做一个字符视频出来. 主要用到的库有cv2,pillow库. 原视频如下,直接抖音下载的,妥妥的水 ...

  8. java抖音字符视频_抖音流行的字符视频如何实现

    前几天,有个朋友给我分享了一个抖音短视频链接,是以代古拉k跳舞视频为原型的字符视频,朋友问我:"这个你知道怎么做吗?". 我们都知道视频是由一帧一帧的静态图片组合而成的,所以当我们 ...

  9. java抖音字符视频_抖音上很火的字符画 Android 实现 | 视频转换实现

    最后像国际象棋格子一样,一块一块的替换掉,由于计算相对比较复杂,所以耗时比较长,因此当时那个demo也让我搁置了. 最近看到这篇日推,不由得眼前一亮,因为很少有人在android端做这种东西,因为算法 ...

最新文章

  1. Golang中time包
  2. hdu 2563
  3. weblogic配置domain和删除domain
  4. 选中的磁盘具有mbr分区表。在efi_如何使用老毛桃winpe的Bootice工具备份VHDX文件MBR分区表?...
  5. 计算机二级web题目(8.2)--基本操作题2
  6. c语言十六实验答案,《C语言》上机实验题及参考答案
  7. 关于移动端点击事件的问题
  8. 计算机科学论文吧,计算机科学毕业论文.doc
  9. mysql 表中中文不显示
  10. 在django项目中使用django-ckeditor
  11. mysql gtid 错误_MySQL 5.6 GTID常见错误解决一例
  12. MS SQL入门基础:创建和使用约束
  13. lbp算法 matlab,lbp算法(lbp特征提取算法)
  14. Nginx的keeplive
  15. lecture 16:DID双重差分方法
  16. 《走近心理学》第二章之心理学的生物学理论
  17. flex布局实现无缝滚动
  18. CLOB 和 BLOB
  19. 十一、MYSQL数据库备份还原
  20. 可视化第一部分(简单的图形)

热门文章

  1. Microbiome:宏蛋白质组揭示健康人肠道菌群的功能,离真相更近了一步
  2. 三线表是什么?R语言使用table1包绘制(生成)三线表、构建不分层的三线表
  3. R语言构建回归模型并进行模型诊断(线性关系不满足时)、进行变量变换(Transforming variables)、使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换
  4. R语言使用persp函数绘制三维图像实战(3D):自定义3D图、图像旋转、添加轴标签
  5. R语言聚类分析之基于划分的聚类KMeans实战:基于菌株数据
  6. R可视化删除ggplot2图中的网格线(Gridlines)
  7. R使用glm构建logistic回归模型
  8. 使用crontab自动化调度jupyter notebook定时运行
  9. ​相似算法比较:递归、分治、动态规划、贪心、回溯、分支限界​
  10. Numpy关于数组的基本使用