程序员 PK 刘畊宏,我用代码实现龙拳了
- 如果评论区没有及时回复,欢迎来公众号:ByteCode 咨询
- 公众号: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
,执行下面的命令即可安装。
pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com |
注意这里需要指定 opencv-python
版本号,如果不指定默认安装最新版本,最新版本无法正常编译。我将安装过程中遇到的错误,做了一个汇总,放在文末了,如果你在安装过程中遇到了问题,可以在评论区分享。
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,分享有趣硬核原创内容
最后推荐长期更新和维护的项目:
个人博客,将所有文章进行分类,欢迎前去查看 https://hi-dhl.com
KtKit 小巧而实用,用 Kotlin 语言编写的工具库,欢迎前去查看 KtKit
计划建立一个最全、最新的 AndroidX Jetpack 相关组件的实战项目以及相关组件原理分析文章,正在逐渐增加 Jetpack 新成员,仓库持续更新,欢迎前去查看 AndroidX-Jetpack-Practice
LeetCode / 剑指 offer / 国内外大厂面试题 / 多线程题解,语言 Java 和 kotlin,包含多种解法、解题思路、时间复杂度、空间复杂度分析
近期必读热门文章
- Android 11 提高 App 冷启动速度 5% 以上
- Stack Overflow 上最热门的 10 个 Kotlin 问题
- value class 完全代替 typealias?
- 容易被忽视的几个 Kotlin 细节, value class 执行效率竟然这么高
- Kotlin 宣布一个重磅特性
- Android 12 已来,你的 App 崩溃了吗?
- Google 宣布废弃 LiveData.observe 方法
- 使用 kotlin 需要注意的一个细节
- 影响性能的 Kotlin 代码(一)
- Jetpack Splashscreen 解析
- 为数不多的人知道的 Kotlin 技巧及解析(三)
- 揭秘 Kotlin 中的 == 和 ===
- 本文作者:hi-dhl
- 本文标题:程序员 PK 刘畊宏,我用代码实现龙拳了
- 本文链接:https://hi-dhl.com/2022/04/25/Note/09-longquan/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hi-dhl