Spaces:
No application file
No application file
File size: 1,497 Bytes
6755a2d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
from typing import Sequence
from numpy import ndarray
import cv2
try:
import imageio
except ImportError:
imageio = None
def create_video(frames: Sequence[ndarray], out: str, fourcc: int, fps: int,
size: tuple) -> None:
"""Create a video to save the optical flow.
## from mmflow
Args:
frames (list, tuple): Image frames.
out (str): The output file to save visualized flow map.
fourcc (int): Code of codec used to compress the frames.
fps (int): Framerate of the created video stream.
size (tuple): Size of the video frames.
"""
# init video writer
video_writer = cv2.VideoWriter(out, fourcc, fps, size, True)
for frame in frames:
video_writer.write(frame)
video_writer.release()
def create_gif(frames: Sequence[ndarray],
gif_name: str,
duration: float = 0.1) -> None:
"""Create gif through imageio.
## from mmflow
Args:
frames (list[ndarray]): Image frames.
gif_name (str): Saved gif name
duration (int): Display interval (s). Default: 0.1.
"""
frames_rgb = []
for frame in frames:
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
frames_rgb.append(frame_rgb)
if imageio is None:
raise RuntimeError('imageio is not installed,'
'Please use “pip install imageio” to install')
imageio.mimsave(gif_name, frames_rgb, 'GIF', duration=duration)
|