Opencv realizes multiple JPG to GIF

Found a magical python video processing library: moviepy

Found the magic Gif generation code:

import os
import cv2 as cv
import moviepy.editor as mpy
import numpy as np

def make_gif(images, fname, duration=2):

  def make_frame(t):
    try:
      x = images[int(len(images)/duration*t)]
    except:
      x = images[-1]

    return x.astype(np.uint8)

  clip = mpy.VideoClip(make_frame, duration=duration)
  clip.write_gif(fname, fps = len(images) / duration)

dir_list = os.listdir('E:\\[4]datasets\\FaceDatasets\\YTF\\YTF_FaceDetect\\Alison_Lohman\\5')

img_list=[]
for i in range(0,len(dir_list)):
    img = cv.imread('E:\\[4]datasets\\FaceDatasets\\YTF\\YTF_FaceDetect\\Alison_Lohman\\5\\' + dir_list[i])
    img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
    img_list.append(img)
make_gif(img_list, 'test.gif', duration=4)

enter

Output

Guess you like

Origin blog.csdn.net/XLcaoyi/article/details/108133224