generating test footage video owrks

This commit is contained in:
Askill 2020-09-19 15:21:07 +02:00
parent 7470513019
commit 2d960c91b7
4 changed files with 43 additions and 22 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
generate test footage/images/

BIN
1.mp4

Binary file not shown.

View File

@ -2,6 +2,9 @@
import math
from PIL import Image, ImageDraw
import random
import imageio
import glob
import os
def getRandomColorString():
@ -11,15 +14,18 @@ fps = 30
xmax = 1920
ymax = 1080
# in minutes
length = 1
length = .1
numberOfEvents = 3
dirname = os.path.dirname(__file__)
imagesPath = os.path.join(dirname, 'images')+"/"
outputPath = os.path.join(dirname, 'out.mp4')
# creating new Image object
img = Image.new("RGB", (xmax, ymax))
for i in range(numberOfEvents):
def genImages():
counter = 0
for i in range(numberOfEvents):
objectWidth = (5 + random.randint(0, 5)) * xmax / 100
objectHeight = (10 + random.randint(-5, 5)) * ymax / 100
@ -27,23 +33,36 @@ for i in range(numberOfEvents):
objectX = random.randint(0, xmax)
objectY = random.randint(0, ymax)
objectSpeedX = random.randint( -int(objectWidth) - 1, int(objectWidth) + 1)
objectSpeedY = random.randint( -int(objectWidth) - 1, int(objectWidth) + 1)
objectSpeedX = random.randint( 1 ,5 )
objectSpeedY = random.randint( 1, 5 )
color = getRandomColorString()
for j in range(int(fps*length*60 / numberOfEvents)):
counter+=1
objectX -= objectSpeedX
objectY -= objectSpeedY
objectShape = [(objectX, objectY), (objectX + objectWidth, objectY + objectHeight)]
img = Image.new("RGB", (xmax, ymax))
# create rectangle image
img1 = ImageDraw.Draw(img)
img1.rectangle(objectShape, fill = color)
img.save( imagesPath + str(counter).zfill(6) + ".png")
img.show()
def makeVideo():
fileList = []
for file in sorted(os.listdir(imagesPath)):
complete_path = imagesPath + file
fileList.append(complete_path)
writer = imageio.get_writer(outputPath, fps=fps)
for im in fileList:
writer.append_data(imageio.imread(im))
writer.close()
genImages()
makeVideo()

Binary file not shown.