Как сгладить и замедлить видео - PullRequest
2 голосов
/ 10 апреля 2019

Я использую этот код для преобразования серии изображений в видео: -

import cv2
import numpy as np
import glob

img_array = []
for filename in glob.glob('C:/New folder/Images/*.jpg'):
    img = cv2.imread(filename)
    height, width, layers = img.shape
    size = (width,height)
    img_array.append(img)


out = cv2.VideoWriter('project.avi',cv2.VideoWriter_fourcc(*'DIVX'), 15, size)

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

Проблема теперь в том, что, поскольку изображения не непрерывно снимаются, но имеют пропуски, следовательно, выходное видео очень и очень быстрое. Я хочу опцию в opencv для создания видео в замедленном режиме.

1 Ответ

1 голос
/ 10 апреля 2019

Похоже, вы устанавливаете FPS видео на 15, но вы по какой-то причине не получаете этого результата. Вы можете попробовать опустить 15 вниз, чтобы сказать 5 следующим образом:

out = cv2.VideoWriter('project.avi',cv2.VideoWriter_fourcc(*'DIVX'), 5, size)

Я полагаю, что вы уже пробовали это сделать, поэтому другой альтернативой будет запись каждого изображения в видео несколько раз. Например:

num_repeats = 5 

for img in img_array:
    for _ in range(num_repeats): 
        out.write(img)

Просто меняйте значение num_repeats, пока оно не достигнет желаемой скорости.

...