刘畊宏老师健身视频火了,带动了不少运动爱好者,今天我们也带动一下Python编程爱好者,利用Python实现把刘畊宏老师的健身视频转换为字符并且生成HTML文件显示。
实际上原理很简单,就是利用opencv模块,把视频的每一帧作为一张图片,利用opencv读取图片并转换成字符,最后写入到文件。
第一步:安装opencv模块
pip install opencv-python
第二步:代码
# -*- coding:utf-8 -*-
import json
import os
import subprocess
from pathlib import Path
from cv2 import cv2
import numpy as np
from time import time
import webbrowser
play_chars_js = '''
let i = 0;
window.setInterval(function(){
let img = frames[i++];
let html = ""
for(let line of img){
for(let char of line){
let [[r,g,b], ch] = char;
html += '<span style="color:rgb(' + r + ', ' + g + ', '+ b + ');">'+ ch + '</span>'
// html += '<span style="background-color:rgb(' + r + ', ' + g + ', '+ b + ');">'+ ch + '</span>'
}
html += "<br>"
}
document.getElementsByClassName("video-panel")[0].innerHTML = html
}, 1000/fps);
document.getElementsByTagName("audio")[0].play();
'''
class VideoToHtml:
# 像素形状,因为颜色已经用rgb控制了,这里的pixels其实可以随意排
pixels = "$#@&%ZYXWVUTSRQPONMLKJIHGFEDCBA098765432?][}{/)(><zyxwvutsrqponmlkjihgfedcba*+1-."
def __init__(self, vi