Mercurial Hosting > traffic-intelligence
annotate scripts/manual-video-analysis.py @ 889:4ea296ee1ae2
work in progress
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 24 Mar 2017 14:20:01 -0400 |
parents | d2eb8c93f7de |
children | 85bcc758ee5b |
rev | line source |
---|---|
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 import sys, argparse, cv2 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
5 parser = argparse.ArgumentParser(description=''''The program replays the video and allows to manually id vehicles and mark instants, eg when they cross given areas in the scene. Use this program in combination with a screen marker program (For example, Presentation Assistant) to draw multiple lines on the screen.''', |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
6 epilog = '''The output should give you a .csv file with the same name as your video file with columns in this format: |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
7 vehicle number, frame number |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
8 You can easily spot mistakes in the csv file for a line with number, SKIP. If this happens, just delete the previous vehicle observation.''', |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
9 formatter_class=argparse.RawDescriptionHelpFormatter) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 parser.add_argument('-i', dest = 'videoFilename', help = 'name of the video file', required = True) |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
11 parser.add_argument('-o', dest = 'outputFilename', help = 'name of the output file (csv file)') |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 parser.add_argument('-f', dest = 'firstFrameNum', help = 'number of first frame number to display', default = 0, type = int) |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 args = parser.parse_args() |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
15 |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
16 print('''Commands: |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
17 u: New vehicle crossing the first line |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
18 i: Vehicle crossing subsequent lines |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
19 o: Press o when you make a mistake in input |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
20 p: Press p for a new pedestrian event (eg crossing) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
21 d: Skip 100 frames |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
22 s: Skip 10 frames |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
23 c: Go back 100 frames |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
24 x: Go back 10 frames |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
25 Spacebar: Go forward one frame |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
26 l: Skip to frame number |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
27 q: Quit and end program''') |
889
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
28 # configuration of keys and user types (see moving) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
29 userTypeNames = ['unknown', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
30 'car', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
31 'pedestrian', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
32 'motorcycle', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
33 'bicycle', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
34 'bus', |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
35 'truck'] |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
36 class UserConfiguration(object): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
37 def __init__(self, name, keyNew, keyAddInstant): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
38 self.name = name |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
39 self.keyNew = ord(keyNew) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
40 self.keyAddInstant = ord(keyAddInstant) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
41 self.userNum = 0 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
42 self.userInstant = 0 |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
43 |
889
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
44 def isKeyNew(self, k): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
45 return (k == self.keyNew) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
46 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
47 def isKeyAddInstant(self, k): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
48 return (k == self.keyAddInstant) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
49 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
50 def isKey(self, k): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
51 return self.isKeyNew() or self.isKeyAddInstant() |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
52 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
53 @staticmethod |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
54 def isKey(configurations): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
55 for c in configurations: |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
56 if c.isKey(): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
57 return c |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
58 return None |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
59 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
60 userConfigurations = [UserConfiguration(userTypeNames[1],1,'u','i'), |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
61 UserConfiguration(userTypeNames[2],2,'j','k')] |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
62 |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
63 # start of program |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
64 cap = cv2.VideoCapture(args.videoFilename) |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
65 cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, args.firstFrameNum) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
66 cv2.namedWindow('Video', cv2.WINDOW_NORMAL) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
67 |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
68 # output filename |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
69 if args.outputFilename is None: |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
70 i = args.videoFilename.rfind('.') |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
71 if i>0: |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
72 outputFilename = args.videoFilename[:i]+'.csv' |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
73 else: |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
74 outputFilename = args.videoFilename+'.csv' |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
75 else: |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
76 outputFilename = args.outputFilename |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
77 vehNumber = 0 |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
78 lineNum = -1 |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
79 out = open(outputFilename, 'a') |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
80 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
81 while(cap.isOpened()): |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
82 ret, frame = cap.read() |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
83 frameNum = int(cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
84 cv2.putText(frame, str(frameNum), (1,20), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0,0)) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
85 cv2.imshow('Video',frame) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
86 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
87 key= cv2.waitKey(0) |
889
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
88 |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
89 if key == ord('q'): |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
90 break |
889
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
91 else: |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
92 config = UserConfiguration.isKey(userConfigurations) |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
93 if config is not None: |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
94 if c.isKeyNew(): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
95 pass # increment userNum |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
96 elif c.isKeyAddInstant(): |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
97 pass # increment userInstant |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
98 # print/write |
4ea296ee1ae2
work in progress
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
886
diff
changeset
|
99 |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
100 elif key == ord('u') or key == ord('i'): |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
101 if key == ord('u'): |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
102 vehNumber += 1 |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
103 lineNum = 0 |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
104 print('New Vehicle') |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
105 out.write('{},{}\n'.format(vehNumber,frameNum)) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
106 if vehNumber >= 1 and key == ord('i'): |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
107 lineNum = lineNum+1 |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
108 print('Line number {}'.format(lineNum)) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
109 elif key == ord('o'): |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
110 out.write('{},SKIP\n'.format(vehNumber)) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
111 print('SKIPPED') |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
112 elif key == ord('p'): |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
113 print("New Pedestrian") |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
114 out.write('Pedestrian,{}\n'.format(frameNum)) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
115 #Change the number of frames skipped or the keys in this section |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
116 elif key == ord('d'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
117 cap.set(1,frameNum+100) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
118 elif key == ord('s'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
119 cap.set(1,frameNum+10) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
120 elif key == ord('a'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
121 cap.set(1,frameNum+1) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
122 elif key == ord('x'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
123 cap.set(1,frameNum-10) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
124 elif key == ord('c'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
125 cap.set(1,frameNum-100) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
126 elif key == ord('l'): |
885
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
127 frameNum = int(raw_input("Please enter the frame number you would like to skip to\n")) |
7f61854fcc6d
first updated version of manual data collection script
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
884
diff
changeset
|
128 cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES,frameNum-5) |
884
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
129 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
130 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
131 cap.release() |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
132 cv2.destroyAllWindows() |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
133 |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
134 #97a |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
135 #115s |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
136 #100d |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
137 #102f |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
138 #103g |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
139 #104h |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
140 #106j |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
141 #107k |
ac4bcbcc9cda
added manual data collection script, thanks Philip Morse!
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
142 #108l |