import cv2
import numpy as np
import os
import random
from os.path import isfile, join
def OKI(n):
try:
n=int(n)
except:
n=OKI(input("Caracter no valido: ")) return n
def ns(c):
while c!=("s") and c!=("n"): print(chr(7));c=input("Escribe solo \'n\' o \'s\' según su opción: ") return(c)
def define_name():
count = 0
for i in os.listdir():
if "glitchVid" in i:
count+=1
if count>0:
filename="glitchVid"+str(count)+".mp4"
else:
filename="glitchVid.mp4"
return filename
def convertToVideo(pathIn, pathOut, fps, time):
if len(lista_frames) > 0:
print("\nCREATING VIDEO...\n") frame_array = []
files = [f for f in lista_frames if isfile(join(pathIn, f)) and not 'glichtVid' in f]
files.sort(key=lambda x: int((x.split(".")[0]).split(" ")[1]))#REORDENA FRAMES for i in range(len(files)):
filename = pathIn+files[i]
print(filename)
img=cv2.imread(filename)
height, width, layers = img.shape
size = (width,height)
for k in range (time):
frame_array.append(img)
out = cv2.VideoWriter(pathOut, cv2.VideoWriter_fourcc(*'mp4v'), fps, size)
for i in range(len(frame_array)):
out.write(frame_array[i])
out.release()
print("TASK COMPLETED") else:
print("\nNO SE GENERÓ VIDEO")
def create_frames(d):
global lista_frames
os.chdir(d)
frame_rate = OKI(input("Introduce Frame Rate: ")) fr_range = int(((OKI(input("Duración en segundos: ")))*frame_rate)/2) width = validate_size("Ancho imagen: ") height = validate_size("Alto imagen: ") blu_rang = validate_range("Rango azul: ").split(",") gre_rang = validate_range("Rango verde: ").split(",") red_rang = validate_range("Rango rojo: ").split(",")
if fr_range > 0:
print("\nWRITTING "+str(fr_range)+" FRAMES...\n") for i in range(0,fr_range):
img = np.zeros((height,width,3),np.uint8)#900,1600
for x in range(height):#900
for y in range(width):#1600
img[x,y] = [random.randint(int(blu_rang[0]),int(blu_rang[1])),random.randint(int(gre_rang[0]),
int(gre_rang[1])),random.randint(int(red_rang[0]),int(red_rang[1]))]#0,256
name = "ima "+str(i)+".png"
cv2.imwrite(name,img)
print("DONE: ",name) lista_frames.append(name)
print("TASK COMPLETED") return frame_rate
else:
print("\n0 FRAMES GENERADOS")
def validate_size(st):
while True:
size = OKI(input(st))
if size > 0:
break
else:
print("El valor introducido debe ser mayor de 0") return size
def validate_dir():
while True:
dire = input("Introduce directorio válido(ej:C:/Users/..): ") if os.path.isdir(dire):
break
return dire
def validate_range(q):
while True:
c = (input(q))
tup= c.split(",") if len(tup) == 2:
elem1 = tup[0]
elem2 = tup[1]
if str(elem1).isdigit() and str(elem2).isdigit() and int(elem1) < int(elem2):
break
return c
while True:
print("") print("_____________________________") print("| |") print("| --GLITCH MAKER-- |") print("|___________________________|") print("")
lista_frames=[]
directory = validate_dir()
#directory = 'C:/Users/Antonio/Documents/videos/imas'
fps = create_frames(directory)
pathIn = directory + '/'
fileName=define_name()
pathOut=pathIn + fileName
time = 2
convertToVideo(pathIn, pathOut, fps, time)
if len(lista_frames) > 0:
elim = ns(input("¿Eliminar frames generados?(n/s): ")) if elim == "s":
for i in lista_frames:
os.remove(i)
conti = ns(input("¿Continuar?(n/s): ")) if conti == "n":
break
Comentarios sobre la versión: 1.1 (0)
No hay comentarios