首页 > 编程语言 >程序员 PK 刘畊宏 | 我用代码实现刘畊宏龙拳

程序员 PK 刘畊宏 | 我用代码实现刘畊宏龙拳

时间:2022-12-12 10:33:07浏览次数:41  
标签:字符 mirrors python 刘畊宏 刘畊宏龙拳 opencv aliyun PK com

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

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

​​播放地址:https://www.bilibili.com/video/BV1hr4y1J7At?spm_id_from=333.880.my_history.page.click​​

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

程序员 PK 刘畊宏 | 我用代码实现刘畊宏龙拳_前端

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

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

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

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

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

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

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

程序员 PK 刘畊宏 | 我用代码实现刘畊宏龙拳_Adobe_02

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

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

通过代码实现字符视频

这里我直接使用开源库中的 ​​python​​​ 脚本 ​​video2chars.py​​ 。

​​git.1024dhl.com/https://git…​​

PS:前缀 ​​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,分享有趣硬核原创内容

标签:字符,mirrors,python,刘畊宏,刘畊宏龙拳,opencv,aliyun,PK,com
From: https://blog.51cto.com/u_13238266/5929144

相关文章

  • webtest mobile + android apk test
    s常见的apk专项测试,主要有几类(主要指项目中经常用到的)1、稳定性2、安全性3、兼容性4、版本升级5、流量测试6、Crash问题(死机);7、设备兼容问题;8、流量占用率的问题;9、App在......
  • Android插件化动态加载APK
    什么是插件化动态加载apk?支付宝是万能的,既可以淘票票看电影,又可以买车票,还可以开共享单车,这些都是支付宝的开发人员开发维护的么?显然不是,那么他是怎么做到的呢?是使用了动态......
  • 您上传的 APK 或 Android App Bundle 内含活动、活动别名、服务或广播接收器,这些项目
    您上传的APK或AndroidAppBundle内含活动、活动别名、服务或广播接收器,这些项目有intent过滤器,但没有“android:exported”属性设置。此文件无法在Android12或更......
  • 软件工程心理学之3---甲方项目负责人 PK 乙方
    (注意:本写列文章,未经本人同意,谢绝转载,版权所有,如需转载,请与本人联系,谢谢)      上周的系列之二(主要是闲聊了关于甲方项目负责人如何和甲方的领......
  • MacOS通过adb命令安装apk
    下载adb程序,解压即可。手机打开开发者模式手机通过数据线连接电脑电脑查看已连接的手机./adbdevicesListofdevicesattached4402f27f device将apk放......
  • 算法练习:TopK_1
    问题描述求一维数组中最小的K个数。 方法一:排序先把数组从小到大排序,取前K个数。时间复杂度为O(nlogn)。如果数组过大,机器内存无法同时容纳整个数组,则需要使用外部排序。以......
  • Centos7 strongswan configure.ac PKG_CHECK_VAR
    在configure.ac前边添加以下内容:#backwardscompatwitholderpkg-config#-pullinAC_DEFUNfrompkg.m4m4_ifndef([PKG_CHECK_VAR],[#PKG_CHECK_VAR(VARIABLE......
  • Ubuntu:Could not get lock /var/lib/dpkg/lock
     看意思是上一次使用apt-get时异常退出了,锁住了,google了下解决方案如下:1、先判断是否有apt-get进程在跑,同一时刻只能有一个apt-get进程在跑,查看命令:ps-aux|grepapt-ge......
  • 零信任厂商大PK
    ▼ 上图,来自IDC最新出品的报告《中国零信任网络访问解决方案,2022厂商评估》这份报告,基本上囊括了在国内在ZTNA(零信任网络访问)领域比较活跃的中国本土厂商 ......
  • 转:PKG_CONFIG_PATH 环境变量配置
    摘自:https://www.fujieace.com/kali-linux/pkg_config_path.htmlhttps://www.cnblogs.com/LiuYanYGZ/p/14198977.html由于最近在瞎搞KaliLinuxNetHunter,需要用上“p......