Я думаю, что ваша проблема в неправильном использовании fnmatch.filter()
, который не получает имена файлов из папки, а используется только для проверки соответствия имени файла.
См. Пример из fnmatch
import fnmatch
import os
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.txt'):
print(file)
С вашим кодом я всегда получаю пустой список, поэтому позже он не может добавить изображение к видео, и я не могу отобразить это видео.
Но вы можете использовать glob.glob()
для этого
image_list = glob.glob('./sample/images/*.png')
Этот код работает для меня
import cv2
import glob
image_list = glob.glob('./sample/images/*.png')
image_list.sort()
#print(image_list)
codec = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
video = cv2.VideoWriter('./movieT.avi', codec, 20, (289, 289))
for img_name in image_list:
img = cv2.imread(img_name)
img = cv2.resize(img, (289, 289))
video.write(img)
video.release()