抖音流行的字符视频如何实现

2023-05-16

前几天,有个朋友给我分享了一个抖音短视频链接,是以代古拉k跳舞视频为原型的字符视频,朋友问我:“这个你知道怎么做吗?”。


我们都知道视频是由一帧一帧的静态图片组合而成的,所以当我们把原视频的每一帧变成对应的字符画时,字符视频就出来了。


所以将一个视频变成字符视频只需以下两步:

    1.提取视频中的每一帧。

    2.将每一帧的静态图片变成字符画。


关于第一步的具体实现,小编就不多加赘述了,我觉得应该不难吧,懂视频编辑的应该会做,下面小编着重说下第二步怎么做。


先附上效果图。



   


字符画是一系列字符的组合,而原图是一系列像素点的组合,我们可以将颜色相近的像素点替换为同一种字符就能实现原图转字符画。


实现原图转字符画也只需两步:

    ​1.原图的颜色模型为RGB,通过灰度化转为灰度图。

    ​2.将灰度值相近的像素点替换为同一种字符即可,最后将所有字符保存在txt中。


from PIL import Image

#定义一个ascii的列表,其实就是让图片上的灰度与字符对应
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 将256灰度映射到70个字符上
def get_char(r, g, b, alpha = 256):
    if alpha == 0:  #如果灰度是0,说明这里没有图片
        return ' '
    length = len(ascii_char)  # 计算这些字符的长度
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)  # 把图片的RGB值转换成灰度值
    unit = (256.0 + 1) / length  # 257/length
    return ascii_char[int(gray / unit)]  # 这个相当于是选出了灰度与哪个字符对应。

im = Image.open('1.png')   #加载图片
width = im.size[0]        #图片的宽
height = im.size[1]       #图片的高
txt = ""
for i in range(height): #i代表纵坐标
        for j in range(width): #j代表横坐标
            txt += get_char(*im.getpixel((j,i))) #把图片按照横纵坐标解析成r,g,b以及alpha这几个参数,然后调用get_char函数,把对应的图片转换成灰度值,把对应值得字符存入txt中
        txt += '\n' #每行的结尾处,自动换行

fobj=open('1.txt','w')
fobj.write(txt)
fobj.close()





   


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抖音流行的字符视频如何实现 的相关文章

  • 【WSL】WSL迁移教程

    写在前面 如果我们是通过Windows Store进行安装的 xff0c 就会默认安装到C盘 在使用过程中 xff0c WSL占用空间会越来越大 xff0c 很容易让C盘爆满 xff0c 所以我们需要将其迁移到其他非C盘的地方 终止正在运行
  • 【WSA】Win11 安卓子系统配置上网方法

    搜索系统环境变量 xff1a 在里面添加ADB的安装路径 xff1a 在终端里输入adb version xff0c 测试adb是否正常工作 xff1a 在终端里输入ipconfig xff0c 查看安卓子系统IP地址 xff1a 在终端输
  • 【WSA】Win11安卓子系统提示VirtWifi的连接受限的解决方法

    问题描述 每次WSA启动时都会有如下提示 xff1a 虽说不影响使用 xff0c 但是看着实在是闹心 解决方案 1 下载ADB工具 xff1a Platform tools下载 Platform tools 安卓调试工具包 官方版下载 系统
  • Centos CA自签证书服务器及自签证书配置手册

    Centos CA自签证书服务器及自签证书配置手册 1 准备工作1 1 系统版本信息1 2 创建必要的目录和文件 2 创建CA2 1 生成CA私钥文件 Key 2 2 生成CA自签名证书2 3 生成自签名证书 拓展部分 2 4 etc pk
  • AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘

    问题原因 pandas版本0 20 0及其以后版本中 xff0c ix已经不被推荐使用 问题解决 使用loc和iloc替换 loc loc gets rows or columns with particular labels from t
  • 使用OLS摘要解释线性回归的结果

    下面是一个回归过程 xff0c 用于拟合收入和教育情况 span class token function import span pandas as pd span class token function import span mat
  • 夏皮罗-威尔克检验(Shapiro–Wilk test)

    1介绍 夏皮罗 威尔克检验是一种在频率上统计检验中检验正态性的方法 它在1965年由夏皮罗和威尔克发表 2 理论 Shapiro Wilk检验检验了样本x 1 xff0c xff0c x n来自正态分布总体的原假设 该检验统计量是 3 解解
  • KS检验

    1 KS 检验 xff08 Kolmogorov Smirnov test xff09 Kolmogorov Smirnov是比较一个频率分布f x 与理论分布g x 或者两个观测值分布的检验方法 其原假设H0 两个数据分布一致或者数据符合
  • git status 命令详解

    git status命令表示 xff1a 文件 xff0c 文件夹在工作区 xff0c 暂存区的状态 xff0c 下图就是文件 xff0c 文件夹三种状态 xff1a Changes to be committed use git rest
  • PyTorch 中的乘法:mul()、multiply()、matmul()、mm()、mv()、dot()

    torch mul 函数功能 xff1a 逐个对 input 和 other 中对应的元素相乘 本操作支持广播 xff0c 因此 input 和 other 均可以是张量或者数字 span class token keyword impor
  • Adblock Plus Rules 自用 2021

    Adblock Plus Rules obsolete ZhihuCSDNBilibiliBaidu 64 64 static zhihu com heifetz lib js 64 64 static zhihu com heifetz
  • pandas函数 apply、iterrows、iteritems、groupyby

    apply DataFrame span class token punctuation span span class token builtin apply span span class token punctuation span
  • PyTorch中 tensor.detach() 和 tensor.data 的区别

    以 a data a detach 为例 xff1a 两种方法均会返回和a相同的tensor xff0c 且与原tensor a 共享数据 xff0c 一方改变 xff0c 则另一方也改变 所起的作用均是将变量tensor从原有的计算图中分
  • 解决Typora的测试版已过期问题 This beta version of Typora is expired, please download and install a newer versio

    错误提示 xff1a The beta version of typora span class token keyword is span expired span class token punctuation span please
  • WSL2 配置SSH 设置开机自启

    WSL2 配置SSH 设置开机自启 WSL2 配置SSH 设置开机自启先说结论完整wsl help WSL2 配置SSH 设置开机自启 尝试了很多博客上的方法没有找到理想的解决方案 xff0c 看了wsl help之后才知道这些方法确实十分
  • Undo Log学习

    一 Undo Log的作用 数据库故障恢复机制的前世今生中提到过 xff0c Undo Log用来记录每次修改之前的历史值 xff0c 配合Redo Log用于故障恢复 这也就是InnoDB中Undo Log的第一个作用 xff1a 1 事
  • 慢SQL解决方案

    一 全表扫描 1 案例 span class token keyword SELECT span span class token function count span span class token punctuation span
  • JAVA17新特性

    2022 年 7 月底 xff0c 甲骨文正式停止对Java SE 7的扩展支持 xff0c 一个有着近 11 年历史的 Java 标准版本迎来生命周期结束 目前最新版本的 Java18 于今年 3 月正式发布 xff0c 并将于 2022
  • 测试——单元测试,集成测试,系统测试,白盒,黑盒

    一 单元测试 1 何为单元测试 单元测试 xff08 unit testing xff09 xff0c 是指对软件中的最小可测试单元进行检查和验证 单元测试通常和白盒测试联系到一起 xff0c 如果单从概念上来讲两者是有区别的 xff0c

随机推荐