作者 | 小F

来源 | 法纳斯特(公众号id:walker398)

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

原视频如下,直接抖音下载的,妥妥的水印。

不过并不影响本次的操作。

01 视频转图片

在Pycharm上直接安装cv2库是成功不了的,具体什么原因我也不清楚。经过我的实践,发现只需在Pycharm的虚拟环境下。运行下面这个命令,即可成功安装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张图片。

呆萌呆萌的××熊,我是不知道什么品种的熊...

02 图片转字符

普通图片转字符图片主要使用了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张。

 03 字符转视频

接下来使用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()

最后成功生成字符视频,这里没有去添加原来的BGM。据说眯眼看,效果更佳。

(本文为Python大本营转载文章,转载请联系原作者)

4 月13日-4 月14日,CSDN 将在北京主办“Python 开发者日( 2019 )”,汇聚十余位来自阿里巴巴IBM英伟达等国内外一线科技公司的Python技术专家,还有数百位来自各行业领域的Python开发者。目前购票通道已开启,早鸟票限量发售中,3 月15日之前可享受优惠价 299 元(售完即止)。

推荐阅读:

  • 人生苦短,Python之父要解开这个困惑

  • 数据分析奥斯卡女神们,谁是你心中的No.1?

  • 如何用Python开发自己的协同工作系统

  • 300道Python面试题,备战春招!

  • 70个NumPy分级练习题:用Python一举搞定机器学习矩阵运算

  • 在家想远程公司电脑?Python+微信一键连接!

  • GitHub上7000+Star的Python常用代码合集,值得收藏!

  • 我用Python分析了翟天临的论文,学术还是要认真做啊!

  • Java帝国对Python的渗透能成功吗?

  • 用Python分析《工作细胞》的一万多条评论后,非漫迷也要入番了

Python大本营“号内搜”功能全新升级

搜索功能更强大,请在公众号菜单栏体验

用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 制作字符视频_用Python生成抖音字符视频!

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

  6. Python实战案例,CV2模块,Python实现抖音字符视频

    前言 利用Python实现抖音字符视频.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: cv2模块: PIL模块: numpy模块: 以及一些Python自带 ...

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

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

  8. python3 爬虫实战:mitmproxy 对接 python 下载抖音小视频

    From:https://blog.csdn.net/Fan_shui/article/details/81461253 一.前言 前面我们已经用 appium 爬取了微信朋友圈,今天我们学习下 mi ...

  9. python好用 appium fiddler_python3 爬虫实战:mitmproxy 对接 python 下载抖音小视频

    一.前言 前面我们已经用 appium 爬取了微信朋友圈,今天我们学习下 mitmproxy,mitmproxy 是干什么的呢,它跟 charles 和 fiddler类似,是一个抓包工具,以控制台的 ...

最新文章

  1. TensorRT 7.2.1开发初步
  2. ORACLE 培训 -相克军
  3. 5、Python函数
  4. 130108还原临时表空间
  5. linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager
  6. Android 应用开发(28)----APP功耗测试方法
  7. Android 8.0 学习(24)---Android8.0 WiFi热点适配
  8. php 正则匹配中文标点,JavaScript_js实现正则匹配中文标点符号的方法,本文实例讲述了js正则匹配中 - phpStudy...
  9. Java 多线程 4:wait() 和 notify()/notifyAll()
  10. java 二进制置位,重置
  11. python编程100例讲解_【python】编程语言入门经典100例--4
  12. Meclipse乱码解决方案
  13. ELK+filebeat+redis 日志分析平台
  14. perl中uc,lc,ucfirst,lcfirst的用法(转载)
  15. 霍夫变换(Hough)
  16. FPGA学习-基于FPGA的高速串行通信GTX知识梳理
  17. Java基础项目——基于文本家庭简易收支记账程序
  18. 单元格颜色公式之明细数据项隔行底纹
  19. stormzhang的自我介绍
  20. C13-COBOL 文件处理动词

热门文章

  1. Hibernate入门第三讲——Hibernate的常见配置
  2. springboot使用nacos
  3. Docker三剑客之swarm
  4. 再放QQ微博邀请码(4)-2010/06/04
  5. 软件设计师十二(磁盘管理)
  6. 金山烈火工作室并入西山居 五大产品关停并转
  7. MySQL列转行函数
  8. Element-UI实现Tree 树形控件节点添加图标
  9. 剧本翻译之メンアットワーク!4 ~ハンター達よ永遠に~猎人们的永远(序章1)
  10. 以凡人之躯,比肩神明:“ I am iron man ”