通过python绘制华强买瓜的字符画视频 您所在的位置:网站首页 威联通怎么连接到虚拟交换机 通过python绘制华强买瓜的字符画视频

通过python绘制华强买瓜的字符画视频

2024-02-19 18:14| 来源: 网络整理| 查看: 265

文章目录 读取视频转为字符动画

已经11月了,不知道还有没有人看华强买瓜。。。要把华强卖瓜做成字符视频,总共分为三步

读取视频把每一帧转为字符画把字符画表现出来 读取视频

通过imageio读取视频,除了pip install imageio之外,还需要pip install imageio-ffmpeg。

由于视频中的图像都是彩色的,故而需要将rgb三色转为单一的强度,并将转化后的图像装入一个列表中。

import imageio import numpy as np import matplotlib.pyplot as plt video = imageio.get_reader('test.mp4') imgs = [] for img in video: imgs.append(np.mean(img,2)) plt.imshow(imgs[0]) plt.show()

效果如下,看到了如此亲切的画面,华强骑着他心爱的小摩托,背后原因让人暖心。

在这里插入图片描述

转为字符

这个视频虽然已被压缩,但对于字符画而言还是太大了,所以转字符画之前需对其进一步压缩。这里采取最简单的方法——即对相邻的像素取平均值。

from itertools import product #用于循环嵌套 def resizeImg(img,w,h=None): m,n = img.shape if npip install "curses-2.2.1+utf8-cp310-cp310-win_amd64.whl"

然后就可以在python中调用了。由于视频太大,所以这里只演示一小段,效果如下

在这里插入图片描述

主程序的代码如下

if __name__ == "__main__": video = imageio.get_reader('test.mp4') txts = [] # 生成字符画 for img in video: im = resizeImg(np.mean(img,2),120,30) txts.append(im2txt(im)) scr = curses.initscr() scr.timeout(40) #scr. for txt in cycle(txts): scr.addstr(0,0,txt) scr.border(0) scr.refresh() #curses.delay_output(25) if scr.getch()==27: #如果按下`esc`则退出` break

其中scr在初始化之后,将每次等待键盘输入的时间为了40ms。

完整代码



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有