Mercurial > hg > nsaunier > traffic-intelligence
annotate scripts/display-trajectories.py @ 398:3399bd48cb40
Ajout d'une méthode pour obtenir le nombre de FPS
Méthode de capture des trames vidéos plus résistante aux erreur
Utilisation d'un dictionnaire pour les fichier de configuration afin de garder le nom des sections
| author | Jean-Philippe Jodoin <jpjodoin@gmail.com> |
|---|---|
| date | Mon, 29 Jul 2013 13:46:07 -0400 |
| parents | eaf7765221d9 |
| children | d337bffd7283 |
| rev | line source |
|---|---|
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
3 import sys, argparse |
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 |
|
333
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
5 import storage, cvutils, utils |
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 |
|
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 from numpy.linalg.linalg import inv |
|
239
93c26e45efd8
modified functions to read velocities from sqlite database
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
236
diff
changeset
|
8 from numpy import loadtxt |
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
10 parser = argparse.ArgumentParser(description='The program displays feature or object trajectories overlaid over the video frames.', epilog = 'Either the configuration filename or the other parameters (at least video and database filenames) need to be provided.') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
11 parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
12 parser.add_argument('-d', dest = 'databaseFilename', help = 'name of the Sqlite database file') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
13 parser.add_argument('-i', dest = 'videoFilename', help = 'name of the video file') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
14 parser.add_argument('-t', dest = 'trajectoryType', help = 'type of trajectories to display', choices = ['feature', 'object'], default = 'feature') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
15 parser.add_argument('-o', dest = 'homography', help = 'name of the image to world homography') |
|
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
16 parser.add_argument('-f', dest = 'firstFrameNum', help = 'number of first frame number to display', default = 0, type = int) |
|
385
1917db662aa7
added rescaling options to scripts play-video and display-trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
364
diff
changeset
|
17 parser.add_argument('-r', dest = 'rescale', help = 'rescaling factor for the displayed image', default = 1., type = float) |
|
304
20f9cd972dde
added capability to parse cfg file for display-trajectories.py
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
239
diff
changeset
|
18 |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
19 args = parser.parse_args() |
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 |
|
364
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
21 homography = None |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
22 if args.configFilename: # consider there is a configuration file |
|
333
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
23 params = utils.TrackingParameters() |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
24 params.loadConfigFile(args.configFilename) |
|
333
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
25 videoFilename = params.videoFilename |
|
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
26 databaseFilename = params.databaseFilename |
|
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
27 homography = inv(params.homography) |
|
c9201f6b143a
moved the config parser to utils
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
304
diff
changeset
|
28 firstFrameNum = params.firstFrameNum |
|
364
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
29 |
|
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
30 if args.videoFilename != None: |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
31 videoFilename = args.videoFilename |
|
364
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
32 if args.databaseFilename != None: |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
33 databaseFilename = args.databaseFilename |
|
364
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
34 if args.homography != None: |
|
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
35 homography = inv(loadtxt(args.homography)) |
|
a50a69e04c2a
script modification so that command line arguments take precedence over config file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
347
diff
changeset
|
36 if args.firstFrameNum != None: |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
37 firstFrameNum = args.firstFrameNum |
|
236
eb4525853030
added script to display trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
38 |
|
347
7b865f4174aa
updated script to display trajectories with argparse module
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
337
diff
changeset
|
39 objects = storage.loadTrajectoriesFromSqlite(databaseFilename, args.trajectoryType) |
|
393
eaf7765221d9
added code to create bounding boxes and display them (inc scripts)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
385
diff
changeset
|
40 boundingBoxes = storage.loadBoundingBoxTable(databaseFilename) |
|
eaf7765221d9
added code to create bounding boxes and display them (inc scripts)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
385
diff
changeset
|
41 cvutils.displayTrajectories(videoFilename, objects, boundingBoxes, homography, firstFrameNum, rescale = args.rescale) |
