Поскольку вы заявили, что ваши фреймы не в порядке, это означает, что когда вы получаете их через os.listdir
, они приходят не по порядку. Вы также указали, что их имена похожи на a0, a1 и т. Д., Поэтому вы можете сделать это:
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
for i in range(len(images)):
image_name = 'a' + str(i) + '.jpg'
video.write(cv2.imread(os.path.join(image_folder, image_name)))
EDIT
Вы поместили свой видеомагнитофон внутрь l oop, поэтому он воссоздается каждый раз. На этот раз я приложил полный код, который должен работать.
import cv2
import os
image_folder = 'images'
video_name = 'video.avi'
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
video = cv2.VideoWriter(video_name, 0, 1, (width, height))
for i in range(len(images)):
image_name = 'a' + str(i) + '.jpg'
video.write(cv2.imread(os.path.join(image_folder, image_name)))
cv2.destroyAllWindows()
video.release()