Переменный fps (кадр в секунду) в cv2Python

Программы на Python
Ответить
Anonymous
 Переменный fps (кадр в секунду) в cv2

Сообщение Anonymous »

Я использую cv2 для создания видео из разных имеющихся у меня кадров. Когда я создаю видео, я не могу изменить частоту кадров (кадров в секунду). Я хочу, чтобы видео было медленным в начале, но быстрым к концу, то есть с небольшими кадрами в секунду в начале и с большими к концу. Однако, когда я создаю экземпляр cv2.VideoWriter, я больше не могу изменить частоту кадров. Что мне делать?
Воспроизводимый код
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)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»