File size: 2,724 Bytes
f670afc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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)