使用Python将视频文件转换为在控制台中跳动的字符

本文介绍如何使用Python的OpenCV和PIL库将视频转换为控制台中动态显示的字符艺术。通过读取视频帧,缩放并灰度化,然后映射到ASCII字符,实现视频到字符动画的转换。

使用Python将视频文件转换为在控制台中跳动的字符


之前在抖音里看到,正好想学习python,就搜索了一些资料,开始写。
使用opencv+pil

if __name__ == '__main__':
    cap = cv2.VideoCapture('3.mp4')
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        im=Image.fromarray(frame)
        im = im.resize((WIDTH,HEIGHT),Image.NEAREST)

        txt=""

        for i in range(HEIGHT):
            for j in range(WIDTH):
                txt += get_char(*im.getpixel((j, i)))
            txt +='\n'
        os.system('cls')
        print(txt)
        if cv2.waitKey(30) & 0xFF == ord('q'):
            break

    cap.release()

采用opencv打开视频文件,最好是背景单纯为白色的那种。例如:
在这里插入图片描述

整体思路为:
读入视频 > 缩放 > 根据每个像素点进行灰度化,然后按照比例从ascii_char数组中按照灰度值取出对应的字符(字符按照人眼看到的黑白进行排列) > 将一张图片的所有像素及换行符存在一个字符变量中 > 对控制台清屏后打印该字符串,这样就可以看到动态的效果了。

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

效果如下:
在这里插入图片描述
完整代码路径,求一个Star,谢谢~:
Github_Video2Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值