Movie-Barcode-Generator/Barcode_Generator.py

38 lines
1009 B
Python

import cv2
import numpy as np
from PIL import Image
movie = cv2.VideoCapture("movie.mp4") # VideoCapture take as argument any video files, image sequences or cameras.
# Returns the vectorized mean of the argument (an image).
def frame_avg(img):
scaled = img.astype('uint32')
squared = scaled**2
avgsq = np.average(squared, axis=0)
return np.sqrt(avgsq).astype('uint8')
# Returns a multi-dimensional array (ndarray) cointaining a column for every frame taken from the argument (image sequence).
def collect_frames(movie):
res = []
s, i = movie.read()
while s:
res.append(frame_avg(i))
s, i = movie.read()
for i in range(30): # The argument of range() is the number of skipped frames for every iteration.
if s:
s, i = movie.read()
return res
complete = collect_frames(movie)
c = np.array(complete)
cc = c.swapaxes(0, 1)
i = Image.fromarray(cc, mode='RGB')
i.save('barcode.jpg') # Name of your output