Я использую OpenCV для создания видео из кадров. Я хочу, чтобы видео было медленным в начале, но быстрым к концу (низкий FPS в начале, но высокий к концу). Однако, когда я создаю экземпляр cv2.VideoWriter, я больше не могу изменить FPS. Что мне делать?
import numpy as np
import cv2, os
import matplotlib
image_size = 200
def create_image_array(image_size):
image_array = np.random.randn(image_size, image_size)
row = np.random.randint(0, image_size)
image_array[row, :] = 100
return image_array
frame_numbers = 200
for i in range(frame_numbers):
image_array = create_image_array(image_size)
matplotlib.image.imsave(f'./shots/frame_{i:03d}.png', image_array)
def make_a_video(shots_folder, video_path):
shots_folder = 'shots'
fps = 25
images = [img for img in os.listdir(shots_folder) if img.endswith(".png")]
images = sorted(images)[:]
frame = cv2.imread(os.path.join(shots_folder, images[0]))
height, width, layers = frame.shape
video = cv2.VideoWriter(video_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (width, height))
for image in images:
video.write(cv2.imread(os.path.join(shots_folder, image)))
cv2.destroyAllWindows()
video.release()
shots_folder = 'shots'
video_path = 'video.mp4'
make_a_video(shots_folder, video_path)