【Python】视频转彩色字符动画

本文介绍如何使用Python将视频转换为彩色字符动画。参考了csdn上的文章和pygame官方文档,通过cv2模块读取视频帧,然后将每一帧转换为彩色字符并在pygame窗口中渲染显示。整个过程包括声明初始化、视频转图片、图片转彩色字符以及窗口渲染等步骤。
摘要由CSDN通过智能技术生成

序言

参考了博文:https://blog.csdn.net/qq_39687901/article/details/83347915的思路。参考pygame官方文档:https://www.pygame.org/docs/。和之前的图片转字符画不同,用颜色来区分,所以字符集没有特殊要求。


目标

如题,实现视频转彩色字符动画。


步骤

声明以及初始化
WIN_SIZE = (1280, 720)  # 720p
VIDEO_PATH = './video/test02.mp4'
VIDEO_WIDTH = 80
VIDEO_HEIGHT = 45
VIDEO_SIZE = (VIDEO_WIDTH, VIDEO_HEIGHT)
FONT_SIZE = 16
CHARS = 'ERROR'
CHARS_LEN = len(CHARS)

先声明一些需要用到的常量,WIN_SIZEVIDEO_WIDTHVIDEO_HEIGHTFONT_SIZE是乘积的对应关系。

WIN_SIZE = (VIDEO_WIDTH * FONT_SIZE, VIDEO_HEIGHT * FONT_SIZE)

pygame.init()  # 初始化模块
win_sur = pygame.display.set_mode(WIN_SIZE)  # 创造图形窗口
视频转换成图片
def video2images(video_path, video_size):
    imgs = []
    video_cap = cv2.VideoCapture(video_path)  # 打开视频

    while video_cap.isOpened():
        ret, frame = video_cap.read()  # 按帧读取
        if ret:
            img = cv2.resize(frame, video_size, interpolation=cv2.INTER_AREA)  # 调整尺寸,像素重采样
            imgs.append(img)
        else:
            break

    video_cap.release()

    return imgs

这里用到cv2模块打开并按帧读取视频,之后将帧存放到数组中。

图片转换成彩色字符
def images2chars(imgs):
    sur_list = []
    font = pygame.font.SysFont('fangsong', FONT_SIZE)  # 从系统字库创建Font对象
    font.set_bold(True)  # 加粗

    for img in imgs:
        surface = pygame.Surface(WIN_SIZE)  # 创建图
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值