一个视频/图像转字符画小程序
在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/Exmlyshy/Video2Char
即使你没学过Python也可以轻易使用,只要官网下载安装Python,目录下
pip install -r requirements.txt
以后运行直接
python VideoToChar.py
就可以了。
config.py里可以修改一些默认参数,保存生效。