实战 | 抖音百万点赞:视频的字符化

1.项目介绍

在聊视频的字符化处理之前,我们先看一下图像的字符化处理。

什么是图像的字符化,我们可以先看一下下面的两幅图,原图和字符化之后的图像:

2.pillow模块介绍

想要完成这个应用我们需要安装一个python工具包,pillow。

安装方式为:

pip install pillow

pillow是python中一个常用的图像处理工具包,一些pillow的基本操作如下:

# 导入模块

from PIL import Image

# 读取文件

img = Image.open('test.jpg')

# 保存文件

img.save(filename,"JPEG")

# 获取图片大小

(width,height) = img.size

# 获取图片的源格式

img_format = img.format

# 图片模式的转换,转化成灰度图像

img = img.convert("L")  

# 获取每个坐标的像素点的RGB值

r,g,b = img.getpixel((j,i))

# 重设图片大小

img = img.resize(width,height)

3.图像字符化程序

把图像字符化实际上就是先把图像灰度化,把彩色图片变为灰度图,然后获取到每个像素点的数值,然后不同数值的像素对应不同的ACSII码字符。我封装了一个convert函数,只要传入图片路径就可以返回生成的字符化的数据,得到图片字符化之后的数据可以保存到文本文件中。

# 导入模块

from PIL import Image

    # 转换函数

    def convert(img):

    # 要索引的字符列表

    ascii_char =

    list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~            <>i!lI;:,\"^`'. ")

    # 字符长度

    length = len(ascii_char)

    # 读取图像文件

    img = Image.open(img)    

    # 获得图片的宽和高

    (width,height) = img.size

    # 对图像进行一定缩小

    img = img.resize

    ((int(width*0.16),int(height*0.08)))

    # 转为灰度图像

    img = img.convert("L")  

    txt = ""

    for i in range(img.size[1]):

        for j in range(img.size[0]):

            # 获取每个坐标像素点的灰度

            gray = img.getpixel((j, i))  

            # 获取对应坐标的字符值

            unit = 256.0 / length

            txt += ascii_char[int(gray / unit)] 

        txt += '\n'

    return  txt



# 传入需要转换的原始图片

txt = convert('test.jpg')

# 把转换后的字符存入txt文件

f = open("convert.txt","w")

f.write(txt)            

f.close()

4.更进一步,视频图像字符化

既然图像可以字符化,那么视频是由一帧一帧的图像组成的,自然也可以实现字符化的效果。

可以使用opencv不断读取一帧一帧的视频内容,然后转换为字符串,接下来通过命令行不断打印出转换后得到的字符串,最后再配上对应的音乐,就可以发抖音啦!

下面是我对抖音一个千万次点赞视频做的简单的字符化处理,可以看下。

(微信后台上传视频被压缩,不太清晰,见谅)
抖音超火字符化视频

项目打包

关注公众号:X人工智能学院
后台回复 :1109 领取项目资料包(可直接运行)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qin_bf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值