Mercurial Hosting > traffic-intelligence
view 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 |
line wrap: on
line source
#! /usr/bin/env python import sys, argparse import storage, cvutils, utils from numpy.linalg.linalg import inv from numpy import loadtxt 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.') parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file') parser.add_argument('-d', dest = 'databaseFilename', help = 'name of the Sqlite database file') parser.add_argument('-i', dest = 'videoFilename', help = 'name of the video file') parser.add_argument('-t', dest = 'trajectoryType', help = 'type of trajectories to display', choices = ['feature', 'object'], default = 'feature') parser.add_argument('-o', dest = 'homography', help = 'name of the image to world homography') parser.add_argument('-f', dest = 'firstFrameNum', help = 'number of first frame number to display', default = 0, type = int) parser.add_argument('-r', dest = 'rescale', help = 'rescaling factor for the displayed image', default = 1., type = float) args = parser.parse_args() homography = None if args.configFilename: # consider there is a configuration file params = utils.TrackingParameters() params.loadConfigFile(args.configFilename) videoFilename = params.videoFilename databaseFilename = params.databaseFilename homography = inv(params.homography) firstFrameNum = params.firstFrameNum if args.videoFilename != None: videoFilename = args.videoFilename if args.databaseFilename != None: databaseFilename = args.databaseFilename if args.homography != None: homography = inv(loadtxt(args.homography)) if args.firstFrameNum != None: firstFrameNum = args.firstFrameNum objects = storage.loadTrajectoriesFromSqlite(databaseFilename, args.trajectoryType) boundingBoxes = storage.loadBoundingBoxTable(databaseFilename) cvutils.displayTrajectories(videoFilename, objects, boundingBoxes, homography, firstFrameNum, rescale = args.rescale)