程序员挑战龙拳 | 用代码实现刘畊宏龙拳

开发 新闻
我用代码实现了刘畊宏的龙拳,对比原版,来看看字符版龙拳怎么样。

Hi 大家好,我是 DHL。分享有用、有趣的硬核原创内容,Kotlin、Jetpack、性能优化、系统源码、算法及数据结构、动画、大厂面经。

程序员来挑战龙拳了,我用代码实现了刘畊宏的龙拳,对比原版,来看看字符版龙拳怎么样。

我相信有很多小伙伴会好奇,视频中的字符是如何做出来的。难道是程序员一个一个字符敲出来的?

No,No,No,这肯定不是一个一个字符敲出来的,如果真是一个一个字符敲出来的,那么不吃不喝也得花好几年的时间,如果不是敲出来的那么肯定是通过某些软件或者技术实现的。我们先来看看如何实现一个字符视频。大概分为三步。

  1. 将视频的每一帧转成图片
  2. 将生成图片转成 ASCII 图形(字符化)
  3. 最后将步骤 2 生成的图片作为序列帧,一帧一帧播放

想要实现上面三步,大概有两种方式:

  • 通用方式,通过软件实现(适合所有人)
  • 通过代码实现(适合程序员)

通用方式,通过软件实现字符视频

这里需要用到两款软件 Adobe Premiere Pro​  、Ascgen2

  • 首先,使用  Adobe Premiere Pro  将视频每一帧转成图片
  • 然后,通过 Ascgen2 将上一步生成的图片转换为 ASCII 文本图形(字符化),如下图所示:

  • 最后将生成的 ASCII 文本图形,通过 Adobe Premiere Pro 以序列帧的方式导入

这种方式适用于所有人,但是费电脑,因为 Adobe Premiere Pro​ 对电脑的配置有要求,另外 Adobe Premiere Pro 是收费软件,如果对这种方式感兴趣的小伙伴,可以在后台回复,我会在出一期教程。今天这篇文章主要介绍如何通过代码实现字符视频。

通过代码实现字符视频

这里我直接使用开源库中的 python​ 脚本 video2chars.py,如果下面的地址下载不了,可以在公众号:ByteCode 后台回复 "video", 即可下载

​https://git.1024dhl.com/https://github.com/ryan4yin/video2chars/blob/v0.3/src/video2chars.py​

PS:前缀 ​https://git.1024dhl.com​ 是 GitHub 的加速器,在 GitHub 地址前面添加这个前缀,提高 GitHub 访问速度和下载速度,我会在后面的文章和视频中介绍

想要运行上面的 python​ 脚本,还需要安装 opencv-python,执行下面的命令即可安装。

pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

opencv-python​ 安装成功之后,执行下面命令,运行 python 脚本即可。

pthton3 video2chars.py

我将安装过程中遇到的错误,做了一个汇总,如果你在安装过程中遇到了其他问题,可以在评论区分享,一起讨论。

安装 opencv-python 遇到的错误

错误一

ERROR: No matching distribution found for numpy

出现这个问题,我猜测是因为国内网络环境的原因,通过 -i​ 指定 aliyun 的仓库下载即可。

pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

错误二

ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly

上面的错误,是因为没有指定 opencv-python 版本号,默认使用最新版本导致的,执行下面命令即可解决。

pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com


责任编辑:张燕妮 来源: ByteCode
相关推荐

2011-10-26 10:46:07

数据中心高性能计算服务器

2013-08-27 09:56:51

程序员

2014-01-06 14:47:41

2014-12-05 10:41:22

2020-12-31 05:32:08

分布式CAP 理论

2014-07-06 14:05:22

IBMWebSphere数字经济

2018-12-11 12:48:36

2011-10-31 09:26:07

惠普转型云计算

2022-04-22 13:54:29

智能健身人工智能物联网

2011-09-18 14:27:58

2015-10-20 19:08:28

华三通信

2011-09-26 11:28:51

信息防泄漏溢信科技

2021-07-02 10:10:55

SecurityJWT系统

2019-03-01 08:40:00

万年历CTO程序员

2013-06-28 13:28:09

2009-11-10 16:08:41

2010-04-30 11:25:35

龙芯超龙计划

2025-02-07 11:32:20

点赞
收藏

51CTO技术栈公众号