很无聊地做了一个视频转字符图的Python代码,把最近火的一趟糊涂的蔡徐坤转成字符图像。
效果可以看这里
https://www.bilibili.com/video/av50295619/www.bilibili.com思路很简单,借助OpenCV读取视频提取图像,图像转灰度图,再量化,根据量化值取字符。
代码及注释如下:
import cv2
import time
import numpy as np
import curses
# pixel后面4位都是空格,代表像素值比较大的
# 近似白色背景
pixels = " .,-'`:!1+*% "
def get_images(video_name, size):
'''
视频帧分解
图像转灰度图,再缩放
:param video_name:
:param size:
:return: 灰度图列表
'''
img_list = []
cap = cv2.VideoCapture(video_name)
while cap.isOpened():
ret, frame = cap.read()
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
img = cv2.resize(gray, size, interpolation=cv2.INTER_AREA)
img_list.append(img)
else:
break
cap.release()
return img_list
def i