国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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]的評論 (共 條)

分享到微博請遵守國家法律
西平县| 朝阳市| 安阳县| 清涧县| 常山县| 桓台县| 新绛县| 隆化县| 惠来县| 宁夏| 台东县| 永福县| 莱阳市| 莱西市| 广东省| 定州市| 成都市| 珲春市| 霸州市| 益阳市| 教育| 嘉荫县| 海宁市| 博野县| 宜都市| 泸州市| 沙田区| 余干县| 阿勒泰市| 图们市| 响水县| 仁寿县| 惠州市| 吉隆县| 迁西县| 南通市| 竹北市| 新源县| 伊宁县| 平湖市| 玉屏|