五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

字符畫轉(zhuǎn)視頻[Termux,Python]

2023-08-08 18:10 作者:真雷神托兒  | 我要投稿


import CV2,sys,os
import numpy as np
from tqdm import tqdm
from PIL import Image,ImageDraw,ImageFont
from multiprocessing import Process,Queue,Manager

########################################
#最終比例
P2 = 10

#圖片比例縮放(0.05-0.2),原視頻單幀圖像尺寸越大,值越小;反之,值越大
P1 = 0.05

#是否二值化
TH = True

#二值化閾值,大于閾值設(shè)為白色,其他黑色
THRESH = 125

#處理圖片用到的CPU個數(shù)
IMG2STR_CPU_COUNT = 4
########################################

img_str = Manager().dict()
cap_list = Queue(100)
END = Queue(1)
FPS = Queue(2)

pix =''' .'`^",:;Il!i><~+_-?][}{1)(|\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@'''
pixgray2str= lambda p: pix[(255 - p) * 68 //255]

def cap_while(cap_list,mv_path,END,FPS) :
 ? ?cap = CV2.VideoCapture(mv_path) 
 ? ?if not FPS.full() :
 ? ? ? ?FPS.put(cap.get(CV2.CAP_PROP_FPS))
 ? ? ? ?FPS.put(int(cap.get(CV2.CAP_PROP_FRAME_COUNT)))
 ? ?b = 0
 ? ?while True :
 ? ? ? ?a = cap.read()
 ? ? ? ?if a[0] == True:
 ? ? ? ? ? ?cap_list.put((b,a[1]))
 ? ? ? ? ? ?b += 1
 ? ? ? ?else :
 ? ? ? ? ? ?for _ in range(IMG2STR_CPU_COUNT) :
 ? ? ? ? ? ? ? ?cap_list.put(False)
 ? ? ? ? ? ?END.put(b)
 ? ? ? ? ? ?cap.release()
 ? ? ? ? ? ?break 

def img2str(cap_list,img_str) :
 ? ?while True :
 ? ? ? ?if len(img_str) >= 500 :
 ? ? ? ? ? ?continue
 ? ? ? ?A = cap_list.get()
 ? ? ? ?if A :
 ? ? ? ? ? ?img = A[1]
 ? ? ? ? ? ?gray_img = CV2.cvtColor(img,CV2.COLOR_RGB2GRAY)
 ? ? ? ? ? ?if TH :
 ? ? ? ? ? ? ? ?_,gray_img = CV2.threshold(gray_img,THRESH,255,CV2.THRESH_BINARY)
 ? ? ? ? ? ?Y,X = gray_img.shape
 ? ? ? ? ? ?s_img = CV2.resize(gray_img,(int(X*P1),int(Y*P1)),interpolation=CV2.INTER_AREA)
 ? ? ? ? ? ?y,x = s_img.shape
 ? ? ? ? ? ?txt = ''
 ? ? ? ? ? ?for i in s_img :
 ? ? ? ? ? ? ? ?for p in i :
 ? ? ? ? ? ? ? ? ? ?txt += pixgray2str(p)*2
 ? ? ? ? ? ? ? ?txt += '\n'
 ? ? ? ? ? ?font = ImageFont.load_default()
 ? ? ? ? ? ?bg_color = 'black'
 ? ? ? ? ? ?#bg_color = 'white'
 ? ? ? ? ? ?im_out = Image.new('L',(x*P2,y*P2), bg_color)
 ? ? ? ? ? ?draw = ImageDraw.Draw(im_out)
 ? ? ? ? ? ?draw.text((0,0),txt,fill=(255),font=font)
 ? ? ? ? ? ?img_new_str = np.asarray(im_out)
 ? ? ? ? ? ?img_str[A[0]] = img_new_str
 ? ? ? ?else :
 ? ? ? ? ? ?break
 ? ? ? ?
def videowriter() :
 ? ?os.system('clear')
 ? ?fps = FPS.get()
 ? ?frames = FPS.get()
 ? ?pbar = tqdm(total=frames)
 ? ?while True :
 ? ? ? ?if 0 in img_str :
 ? ? ? ? ? ?WH = img_str[0].shape
 ? ? ? ? ? ?break
 ? ?width_height = (WH[1],WH[0])
 ? ?fourcc = CV2.VideoWriter_fourcc(*'mp4v')
 ? ?video = CV2.VideoWriter(sys.path[0]+'/out.mp4',fourcc,fps,width_height,isColor=False)
 ? ?K = 0
 ? ?end = None
 ? ?while True :
 ? ? ? ?if END.full() :
 ? ? ? ? ? ?end = END.get()
 ? ? ? ?if K == end :
 ? ? ? ? ? ?video.release()
 ? ? ? ? ? ?print('文件保存在 :',sys.path[0]+'/out.mp4')
 ? ? ? ? ? ?break
 ? ? ? ?if K in img_str :
 ? ? ? ? ? ?video.write(img_str[K])
 ? ? ? ? ? ?del img_str[K]
 ? ? ? ? ? ?K+=1
 ? ? ? ? ? ?pbar.update(1)

if __name__ == '__main__' :
 ? ?mv_path = input('要處理的視頻 :')
 ? ?#獲取每一幀
 ? ?P=Process(target=cap_while,daemon=True,args=(cap_list,mv_path,END,FPS))
 ? ?P.start()
 ? ?#處理每一幀
 ? ?for _ in range(IMG2STR_CPU_COUNT) :
 ? ? ? ?Process(target=img2str,daemon=True,args=(cap_list,img_str)).start()
 ? ?#合成
 ? ?videowriter()


字符畫轉(zhuǎn)視頻[Termux,Python]的評論 (共 條)

分享到微博請遵守國家法律
连城县| 镇坪县| 台前县| 嘉黎县| 合阳县| 阜城县| 观塘区| 乌海市| 商水县| 易门县| 静宁县| 本溪| 施秉县| 和田县| 芒康县| 武定县| 东阿县| 万荣县| 大关县| 溧阳市| 东乌珠穆沁旗| 澄迈县| 乌苏市| 长泰县| 吉安市| 明光市| 徐水县| 甘谷县| 苗栗市| 鄂伦春自治旗| 南雄市| 同德县| 武冈市| 兴山县| 高淳县| 丹巴县| 平乐县| 永康市| 永兴县| 吉木萨尔县| 柯坪县|