-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathcompute_flow.py
67 lines (52 loc) · 1.5 KB
/
compute_flow.py
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
#! /usr/bin/env python2
import numpy as np
import os,sys
# To read images
from scipy.misc import imread,imsave
from pcaflow import PCAFlow
from pcaflow.utils.viz_flow import viz_flow
from pcaflow.utils.flow_io import flow_read,flow_write
def main():
if len(sys.argv) < 4:
print('\tUSAGE: compute_flow.py [PARAMETER] IMAGE1 IMAGE2 OUTFILE.')
print('\t\tSee readme.md for details.')
sys.exit(1)
if '-kitti' in sys.argv:
use_dataset = 'kitti'
else:
use_dataset = 'sintel'
if '-pcaflow' in sys.argv:
use_algorithm = 'pcaflow'
else:
use_algorithm = 'pcalayers'
preset = '{}_{}'.format(use_algorithm,use_dataset)
outfile = sys.argv[-1]
img2 = sys.argv[-2]
img1 = sys.argv[-3]
PATH_PC_U = 'data/PC_U.npy'
PATH_PC_V = 'data/PC_V.npy'
if use_dataset == 'sintel':
PATH_COV = 'data/COV_SINTEL.npy'
PATH_COV_SUBLAYER = 'data/COV_SINTEL_SUBLAYER.npy'
else:
PATH_COV = 'data/COV_KITTI.npy'
PATH_COV_SUBLAYER = None
P = PCAFlow.PCAFlow(
pc_file_u=PATH_PC_U,
pc_file_v=PATH_PC_V,
covfile=PATH_COV,
covfile_sublayer=PATH_COV_SUBLAYER,
preset=preset,
)
I1 = imread(img1)
I2 = imread(img2)
# Compute flow
P.push_back(I1)
P.push_back(I2)
u,v = P.compute_flow()
# Save output files
I_flow = viz_flow(u,v)
flow_write(outfile,u,v)
imsave(outfile + '.png', I_flow)
if __name__ == '__main__':
main()