INNER CODE UNIT · Python
generate_overlay
chonyy/ML-auto-baseball-pitching-overlay · src/generate_overlay.py:9
def generate_overlay(video_frames, width, height, fps, outputPath):
print("Saving overlay result to", outputPath)
codec = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter(outputPath, codec, fps / 2, (width, height))
frame_lists = sorted(video_frames, key=len, reverse=True)
balls_in_curves = [[] for i in range(len(frame_lists))]
shifts = {}
# Take the longest frames as background
for idx, base_frame in enumerate(frame_lists[0]):
# Overlay frames
background_frame = base_frame.frame.copy()
for list_idx, frameList in enumerate(frame_lists[1:]):
if idx < len(frameList):
overlay_frame = frameList[idx]
else:
overlay_frame = frameList[len(frameList) - 1]