Spaces:
Runtime error
Runtime error
| import os | |
| import cv2 | |
| from PIL import Image | |
| def image_to_video(img_dir,image_names, media_path): | |
| fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V') | |
| fps = 20 | |
| image = Image.open(os.path.join( img_dir , image_names[0])) | |
| media_writer = cv2.VideoWriter(media_path, fourcc, fps, image.size) | |
| for image_name in image_names: | |
| im = cv2.imread(os.path.join(img_dir, image_name)) | |
| media_writer.write(im) | |
| print(image_name, 'combined') | |
| media_writer.release() | |
| print('end') | |
| def img_pair2vid(sat_list,grd_list,angle_list=None,media_path= 'output.mp4'): | |
| fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V') | |
| out = cv2.VideoWriter(media_path, fourcc, 12.0, (512, 256)) | |
| out_sat = cv2.VideoWriter(media_path.replace('.mp4','_sat.mp4'), fourcc, 12.0, (389, 389)) | |
| assert len(sat_list) == len(grd_list) | |
| for i in range(len(sat_list)): | |
| img1 = cv2.imread(os.path.join( img_dir , sat_list[i])) | |
| img2 = cv2.imread(os.path.join( img_dir , grd_list[i])) | |
| img3 = cv2.imread(os.path.join( img_dir , grd_list[i].replace('.png','_depth.png'))) | |
| if angle_list!=None: | |
| angle = angle_list[i] | |
| left_pixel = int((angle/180)*256) | |
| if angle<0: | |
| img2 = cv2.hconcat([img2[:,left_pixel:,:],img2[:,:left_pixel,:]]) | |
| img3= cv2.hconcat([img3[:,left_pixel:,:],img3[:,:left_pixel,:]]) | |
| else: | |
| img2 = cv2.hconcat([img2[:,left_pixel:,:],img2[:,:left_pixel,:]]) | |
| img3 = cv2.hconcat([img3[:,left_pixel:,:],img3[:,:left_pixel,:]]) | |
| merged_image = cv2.vconcat([img2,img3]) | |
| out.write(merged_image) | |
| out_sat.write(img1) | |
| out.release() | |
| out_sat.release() | |
| if __name__=='__main__': | |
| import csv | |
| img_dir = 'vis_video' | |
| img_list = sorted(os.listdir(img_dir)) | |
| sat_list = [] | |
| grd_list = [] | |
| for img in img_list: | |
| if '.png' in img: | |
| if 'satdepth' in img: | |
| continue | |
| if 'grdView_pano.png' in img: | |
| continue | |
| if 'grdView' in img: | |
| if '_depth.png' not in img: | |
| grd_list.append(img) | |
| elif 'satView' in img: | |
| sat_list.append(img) | |
| sat_list = sat_list[:-1] | |
| grd_list = grd_list[:-1] | |
| media_path = os.path.join(img_dir,'output_cat.mp4') | |
| angle_list = [] | |
| with open(os.path.join(img_dir,'pixels.csv') , 'r') as csvfile: | |
| reader = csv.DictReader(csvfile) | |
| for row in reader: | |
| angle = float(row['angle']) | |
| angle_list.append(angle) | |
| print(angle_list) | |
| img_pair2vid(sat_list,grd_list,angle_list,media_path= media_path) | |
| print('save 2 ',media_path) |