Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import numpy as np | |
import imageio | |
from utils.camera_utils import generate_interpolated_path | |
def save_interpolate_pose(model_path, iter, n_views): | |
org_pose = np.load(model_path + f"pose/pose_{iter}.npy") | |
# visualizer(org_pose, ["green" for _ in org_pose], model_path + "pose/poses_optimized.png") | |
n_interp = int(10 * 30 / n_views) # 10second, fps=30 | |
all_inter_pose = [] | |
for i in range(n_views-1): | |
tmp_inter_pose = generate_interpolated_path(poses=org_pose[i:i+2], n_interp=n_interp) | |
all_inter_pose.append(tmp_inter_pose) | |
all_inter_pose = np.array(all_inter_pose).reshape(-1, 3, 4) | |
inter_pose_list = [] | |
for p in all_inter_pose: | |
tmp_view = np.eye(4) | |
tmp_view[:3, :3] = p[:3, :3] | |
tmp_view[:3, 3] = p[:3, 3] | |
inter_pose_list.append(tmp_view) | |
inter_pose = np.stack(inter_pose_list, 0) | |
# visualizer(inter_pose, ["blue" for _ in inter_pose], model_path + "pose/poses_interpolated.png") | |
np.save(model_path + "pose/pose_interpolated.npy", inter_pose) | |
def images_to_video(image_folder, output_video_path, fps=30): | |
""" | |
Convert images in a folder to a video. | |
Args: | |
- image_folder (str): The path to the folder containing the images. | |
- output_video_path (str): The path where the output video will be saved. | |
- fps (int): Frames per second for the output video. | |
""" | |
images = [] | |
for filename in sorted(os.listdir(image_folder)): | |
if filename.endswith(('.png', '.jpg', '.jpeg')): | |
image_path = os.path.join(image_folder, filename) | |
image = imageio.imread(image_path) | |
images.append(image) | |
imageio.mimwrite(output_video_path, images, fps=fps) |