一个视频/图像转字符画小程序

在B站看到一个百万播放量的视频,内容是用字符画播放了一个鬼畜视频

在这里插入图片描述

于是就自己动手用Python实现了一个小视频/图片转字符画小程序。 原理很简单,就是将一张图片像素的灰度值(0~255)映射到一组字符串中,较黑时(>>0)对应密一些的字符,较白(>>255)则对应疏字符。

for row in img_gray_resize:
    for pixel in row:
        chars += ascii_char[int(pixel / 256 * char_len)]

而对于视频,就将视频的每一帧画面都转为字符画,输出->清屏就能达到动态的效果。

while True:
    flag, frame = video.read()
    if flag:
        toChar_print(frame, VIDEO_W_THUMB, VIDEO_H_THUMB)
    time.sleep(VIDEO_FLASH_TIME)

通过使用opencv这一强大的开源库可以很方便地做到。 看一下效果图:

在这里插入图片描述 在这里插入图片描述 离远看,越远越清晰。

手机拍摄 用于映射的字符串组合是随便找的,所以如果你能由密到疏找到合适的组合,汉字、符号等等只要能显示的都可以,那转换后的效果会非常好。(转换质量也完全取决于此) 如果你能找到合适的字符组合,欢迎分享~

还有,一般电脑屏幕分辨率都是千级别的,而windows下cmd默认的字符大概宽10像素,所以图片的宽度在一两百的话正好,不过程序会默认转为宽140px。

代码地址: https://github.com/amchii/video2char

即使你没学过Python也可以轻易使用,只要官网下载安装Python,目录下 pip install -r requirements.txt 以后运行直接 python VideoToChar.py 就可以了。 config.py里可以修改一些默认参数,保存生效。


0 Comments latest

No comments.