프로그래밍/python

[python] 파이썬으로 gif / 영상 만들기

Hithero 2023. 8. 20. 21:47

1. Celluloid 패키지 활용 (in ipynb)

설치

  • pip install celluloid

사용 예시 - ipynb 내부에서 보기

from celluloid import Camera # getting the camera
from IPython.display import HTML
import matplotlib.pyplot as plt
import numpy as np
import os
fig, ax = plt.subplots() # make it bigger
camera = Camera(fig)# the camera gets our figure
for img in os.listdir("NST/epochs"):
    img_obj = plt.imread(os.path.join("NST/epochs"), img) # reading
    ax.imshow(img_obj) # plotting
    camera.snap()
animation = camera.animate()
HTML(animation.to_html5_video())
  • 설명
    • ax.imshow() 를 통해 이미지를 보여준다음,
    • camera.snap을 통해서 해당 plt 이미지를 저장해준다.
    • 저장해준 이미지들을 camera.animate()을 통해 애니메이션으로 변환하고,
    • (마지막줄) HTML(animation.to_html5_video()) 을통해 ipynb에서 시각화한다.

2. ImageIO 사용 (in ipynb, py)

설치

  • pip install imageio

사용 예시 - 파일로 저장

import imageio
import cv2
frames = []
for t in time:
    image = cv2.imread(f'./img/img_{t}.png')
    frames.append(image)
imageio.mimsave('./example.gif', # output gif
                frames,          # array of input frames
                fps = 2.5)         # optional: frames per second
  • 설명
    • frames 라는 리스트에 영상으로 만들 이미지를 추가해준 다음,
    • (마지막줄) imageio.mimsave를 통해 gif 파일 생성.
    • fps 는 이미지 하나당 보여주는 시간을 의미한다. 짧을 수록 빠르게 넘어감

Reference

How to Create a GIF from Matplotlib Plots in Python : A data visualization technique for 2-dimensional time series data using imageio

파이썬(Python)으로 이미지 파일을 모아서 gif 파일 만들기

728x90
반응형