En este artículo veremos cómo creamos animaciones en MoviePy usando matplotlib. MoviePy es un módulo de Python para la edición de videos, que se puede usar para operaciones básicas en videos y GIF. El video está formado por los cuadros, la combinación de cuadros crea un video, cada cuadro es una imagen individual. Matplotlib es una biblioteca de gráficos para el lenguaje de programación Python y su extensión matemática numérica NumPy. Proporciona una API orientada a objetos para incrustar gráficos en aplicaciones utilizando kits de herramientas GUI de uso general como Tkinter, wxPython, Qt o GTK+.
Para hacer esto, tenemos que hacer lo siguiente
1. Importar módulos matplotlib
2. Importar módulos moviepy
3. Crear una array numpy
4. Crear una subtrama usando matplotlib
5. Crear un archivo de clip de video llamando al método make_frame
6. Dentro del método make frame
7. Borre el gráfico y cree un nuevo gráfico utilizando métodos de trigonometría de acuerdo con el tiempo de fotograma
8. Devuelva el gráfico después de convertirlo en una imagen numpy.
A continuación se muestra la implementación.
Python3
# importing matplot lib import matplotlib.pyplot as plt import numpy as np # importing movie py libraries from moviepy.editor import VideoClip from moviepy.video.io.bindings import mplfig_to_npimage # numpy array x = np.linspace(-2, 2, 200) # duration of the video duration = 2 # matplot subplot fig, ax = plt.subplots() # method to get frames def make_frame(t): # clear ax.clear() # plotting line ax.plot(x, np.sinc(x**2) + np.sin(x + 2 * np.pi / duration * t), lw = 3) ax.set_ylim(-1.5, 2.5) # returning numpy image return mplfig_to_npimage(fig) # creating animation animation = VideoClip(make_frame, duration = duration) # displaying animation with auto play and looping animation.ipython_display(fps = 20, loop = True, autoplay = True)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Otro ejemplo
Python3
# importing matplot lib import matplotlib.pyplot as plt import numpy as np # importing movie py libraries from moviepy.editor import VideoClip from moviepy.video.io.bindings import mplfig_to_npimage # numpy array x = np.linspace(-5, 5, 100) # duration of the video duration = 2 # matplot subplot fig, ax = plt.subplots() # method to get frames def make_frame(t): # clear ax.clear() # plotting line ax.plot(x, np.sinc(x**2) + np.cos(x + 10 * np.pi / duration * t), lw = 3) ax.set_ylim(-1.5, 2.5) # returning numpy image return mplfig_to_npimage(fig) # creating animation animation = VideoClip(make_frame, duration = duration) # displaying animation with auto play and looping animation.ipython_display(fps = 20, loop = True, autoplay = True)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA