实战 | 手把手教你制作抖音百万赞视频

2018-11-10  本文已影响0人  X人工智能学院

最近我看到抖音上用了字符化的视频,都比较火,很多都有几百万赞。就想着自己也可以顺手做一个。(文末选了一个抖音很火的视频,作了简单的字符化处理)

1.项目介绍

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

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

原始图片中的像素变成了用ASCII码组成的图像

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函数,只要传入图片路径就可以返回生成的字符化的数据,得到图片字符化之后的数据可以保存到文本文件中。

# 导入模块

fromPIL importImage

# 转换函数

    defconvert(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 =""

forinrange(img.size[1]):

forinrange(img.size[0]):

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

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

           # 获取对应坐标的字符值

         unit =256.0/length

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

txt +='\n'

returntxt

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

txt = convert('test.jpg')

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

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

f.write(txt)

f.close()

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

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

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

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


视频字符化成果展示

具体领取项目代码可以关注我的公众号:X人工智能学院,后台回复1109即可领取项目包(可以直接运行)。

上一篇下一篇

猜你喜欢

热点阅读