In this Python OpenCV Tutorial, explain how to create a video using NumPy array and images.

Video From NumPy Array
import numpy as np
import cv2
import os
width = 1280
hieght = 720
channel = 3
fps = 30
sec = 5
# Syntax: VideoWriter_fourcc(c1, c2, c3, c4) # Concatenates 4 chars to a fourcc code
# cv2.VideoWriter_fourcc('M','J','P','G') or cv2.VideoWriter_fourcc(*'MJPG)
fourcc = cv2.VideoWriter_fourcc(*'MP42') # FourCC is a 4-byte code used to specify the video codec.
# A video codec is software or hardware that compresses and decompresses digital video.
# In the context of video compression, codec is a portmanteau of encoder and decoder,
# while a device that only compresses is typically called an encoder, and one that only
# decompresses is a decoder. Source - Wikipedia
#Syntax: cv2.VideoWriter( filename, fourcc, fps, frameSize )
video = cv2.VideoWriter('test.mp4', fourcc, float(fps), (width, hieght))
for frame_count in range(fps*sec):
img = np.random.randint(0,255, (hieght, width, channel), dtype = np.uint8)
video.write(img)
video.release()
Video from Images
import numpy as np
import cv2
import os
width = 1280
hieght = 720
channel = 3
fps = 10
sec = 5
fourcc = cv2.VideoWriter_fourcc(*'MP42')
video = cv2.VideoWriter('image_to_video.avi', fourcc, float(fps), (width, hieght))
directry = r'C:\Users\kashz\AI Life\AI Projects - IAIP, PTs (Web + Channel)\02 OpenCV\000 opencv tutorial\data\images'
img_name_list = os.listdir(directry)
for frame_count in range(fps*sec):
img_name = np.random.choice(img_name_list)
img_path = os.path.join(directry, img_name)
img = cv2.imread(img_path)
img_resize = cv2.resize(img, (width, hieght))
video.write(img_resize)
video.release()
Funktioniert nicht. Als Anfänger keine Ahnung was man da noch amchen soll. Float was? Wo wie warum? Was wird verlangt?
for frame_count in range(fps*sec):
TypeError: ‘float’ object cannot be interpreted as an integer
Schade sah viel versprechend aus, da auf anderem Wege die FPS nicht richtig behandelt werden, dachte ich das dies eine gute alternative wäre aber nö. Leider soll es wohl nicht sein.
Fehler kommt wenn ich den
“Video From NumPy Array”
verwende.