程序员挑战龙拳|用代码实现刘畊宏龙拳,代码VS刘畊宏
hi
这是 dhl
的第 64 篇原创文章个人微信: hi-dhl
Hi 大家好,我是 DHL。公众号:ByteCode ,分享有用、有趣的硬核原创内容,Kotlin、Jetpack、性能优化、系统源码、算法及数据结构、动画、大厂面经
程序员来挑战龙拳了,我用代码实现了刘畊宏的龙拳,对比原版,来看看字符版龙拳怎么样。
我相信有很多小伙伴会好奇,视频中的字符是如何做出来的。难道是程序员一个一个字符敲出来的?
No,No,No,这肯定不是一个一个字符敲出来的,如果真是一个一个字符敲出来的,那么不吃不喝也得花好几年的时间,如果不是敲出来的那么肯定是通过某些软件或者技术实现的。我们先来看看如何实现一个字符视频。大概分为三步。
将视频的每一帧转成图片
将生成图片转成 ASCII 图形(字符化)
最后将步骤 2 生成的图片作为序列帧,一帧一帧播放
想要实现上面三步,大概有两种方式:
通用方式,通过软件实现(适合所有人)
通过代码实现(适合程序员)
通用方式,通过软件实现字符视频
这里需要用到两款软件 Adobe Premiere Pro
、Ascgen2
首先使用
Adobe Premiere Pro
将视频每一帧转成图片然后通过 Ascgen2 将上一步生成的图片转换为 ASCII 文本图形(字符化),如下图所示
最后将生成的 ASCII 文本图形,通过
Adobe Premiere Pro
以序列帧的方式导入
这种方式适用于所有人,但是费电脑,因为 Adobe Premiere Pro
对电脑的配置有要求,另外 Adobe Premiere Pro
是收费软件,如果对这种方式感兴趣的小伙伴,可以在后台回复,我会在出一期教程。今天这篇文章主要介绍如何通过代码实现字符视频。
Adobe Premiere Pro 破解版仅供学习使用,如果需要的小伙伴,可以在公众号:ByteCode 后台回复 "pr", 即可下载
通过代码实现字符视频
这里我直接使用开源库中的 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
,执行下面的命令即可安装。
opencv-python
安装成功之后,执行下面命令,运行 python
脚本即可。
我将安装过程中遇到的错误,做了一个汇总,如果你在安装过程中遇到了其他问题,可以在评论区分享,一起讨论。
安装 opencv-python 遇到的错误
错误一
ERROR: No matching distribution found for numpy出现这个问题,我猜测是因为国内网络环境的原因,通过 -i
指定 aliyun
的仓库下载即可。
错误二
ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly上面的错误,是因为没有指定 opencv-python
版本号,默认使用最新版本导致的,执行下面命令即可解决。
推荐阅读:
Stack Overflow 上最热门的 10 个 Kotlin 问题?
全文到这里就结束了,如果这篇文章对你有帮助,欢迎 在看、点赞、收藏、分享 给身边的朋友。
公众号:ByteCode ,分享有用、有趣的硬核原创内容,Kotlin、Jetpack、性能优化、系统源码、算法及数据结构、动画、大厂面经
👇🏻 真诚推荐你关注我👇🏻
因微信公众号更改了推送机制
可能无法及时看到最新文章
将公众号设为 星标
或常为文章点 在看
即可及时收到最新文章
欢迎前往 博客 查看更多 Kotlin、Jetpack 、动画算法图解、系统源码分析等等文章。以及开源项目、LeetCode / 剑指 offer / 国内外大厂面试题 / 多线程 题解。
https://www.hi-dhl.com