| import cv2 |
| import numpy as np |
| from PIL import Image |
| import json |
| from tqdm import tqdm |
| import os |
| from PIL import Image |
|
|
| |
| |
| save_image = "./VIPSeg_Video_Generation_Test/vis" |
|
|
|
|
| |
| |
| |
|
|
| image_path_root = "/mmu-ocr/weijiawu/MovieDiffusion/ShowAnything/data/VIPSeg/VIPSeg_Video_Generation_Test/Prediction_Model/DragAnything14frames_OriginalSize" |
| trajectory_root = "/mmu-ocr/weijiawu/MovieDiffusion/ShowAnything/data/VIPSeg/VIPSeg_Video_Generation_Test/Prediction_Model/trajectory_1024_CoTracker_DragAnything14frames_OriginalSize1" |
| save_image_root = "/mmu-ocr/weijiawu/MovieDiffusion/ShowAnything/data/VIPSeg/VIPSeg_Video_Generation_Test/trajectory_vis" |
|
|
|
|
|
|
| def sort_frames(frame_name): |
| return int(frame_name.split('.')[0]) |
|
|
| for video_name in os.listdir(image_path_root): |
| image_path = os.path.join(image_path_root,video_name) |
| trajectory = os.path.join(trajectory_root,video_name+".json") |
| save_image = os.path.join(save_image_root,video_name+".gif") |
| |
| with open(trajectory, 'r') as json_file: |
| data = json.load(json_file) |
|
|
| image_files = sorted(os.listdir(image_path), key=sort_frames) |
|
|
| pil_images = [] |
| for idx,images in enumerate(image_files): |
| image = cv2.imread(os.path.join(image_path,images)) |
| for line in data: |
| line_data = data[line][:(idx+1)] |
| print(line_data) |
| if len(line_data)>=2: |
| for i in range(len(line_data)-1): |
| cv2.line(image, line_data[i], line_data[i+1], (0, 255, 0), 3) |
|
|
| cv2.imwrite(os.path.join(save_image,images),image) |
| pil_images.append(Image.fromarray(image)) |
|
|
| pil_images[0].save(save_image, save_all=True, append_images=pil_images[1:], loop=0, duration=110) |
|
|