Mercurial Hosting > traffic-intelligence
diff scripts/display-trajectories.py @ 901:753a081989e2
factorized some argument handling code
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 22 Jun 2017 12:02:34 -0400 |
parents | 95e7622b11be |
children | c69a8defe5c3 |
line wrap: on
line diff
--- a/scripts/display-trajectories.py Wed Jun 21 17:49:58 2017 -0400 +++ b/scripts/display-trajectories.py Thu Jun 22 12:02:34 2017 -0400 @@ -4,7 +4,7 @@ import storage, cvutils, utils -from numpy.linalg.linalg import inv +from numpy.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.') @@ -18,48 +18,24 @@ parser.add_argument('--undistorted-multiplication', dest = 'undistortedImageMultiplication', help = 'undistorted image multiplication', type = float) parser.add_argument('-u', dest = 'undistort', help = 'undistort the video (because features have been extracted that way)', action = 'store_true') parser.add_argument('-f', dest = 'firstFrameNum', help = 'number of first frame number to display', type = int) +parser.add_argument('-l', dest = 'lastFrameNum', help = 'number of last frame number to save (for image saving, no display is made)', type = int) parser.add_argument('-r', dest = 'rescale', help = 'rescaling factor for the displayed image', default = 1., type = float) parser.add_argument('-s', dest = 'nFramesStep', help = 'number of frames between each display', default = 1, type = int) parser.add_argument('-n', dest = 'nObjects', help = 'number of objects to display', type = int) parser.add_argument('--save-images', dest = 'saveAllImages', help = 'save all images', action = 'store_true') -parser.add_argument('--last-frame', dest = 'lastFrameNum', help = 'number of last frame number to save (for image saving, no display is made)', type = int) args = parser.parse_args() -if args.configFilename is not None: # consider there is a configuration file - params = storage.ProcessParameters(args.configFilename) - videoFilename = params.videoFilename - databaseFilename = params.databaseFilename - if params.homography is not None: - homography = inv(params.homography) - else: - homography = None - intrinsicCameraMatrix = params.intrinsicCameraMatrix - distortionCoefficients = params.distortionCoefficients - undistortedImageMultiplication = params.undistortedImageMultiplication - undistort = params.undistort - firstFrameNum = params.firstFrameNum -else: - homography = None - undistort = False - intrinsicCameraMatrix = None - distortionCoefficients = [] - undistortedImageMultiplication = None - firstFrameNum = 0 +params, videoFilename, databaseFilename, invHomography, intrinsicCameraMatrix, distortionCoefficients, undistortedImageMultiplication, undistort, firstFrameNum = storage.processVideoArguments(args) -if args.configFilename is None and args.videoFilename is not None: - videoFilename = args.videoFilename -if args.configFilename is None and args.databaseFilename is not None: - databaseFilename = args.databaseFilename -if args.configFilename is None and args.homographyFilename is not None: - homography = inv(loadtxt(args.homographyFilename)) -if args.configFilename is None and args.intrinsicCameraMatrixFilename is not None: +if args.homographyFilename is not None: + invHomography = inv(loadtxt(args.homographyFilename)) +if args.intrinsicCameraMatrixFilename is not None: intrinsicCameraMatrix = loadtxt(args.intrinsicCameraMatrixFilename) -if args.configFilename is None and args.distortionCoefficients is not None: +if args.distortionCoefficients is not None: distortionCoefficients = args.distortionCoefficients -if args.configFilename is None and args.undistortedImageMultiplication is not None: +if args.undistortedImageMultiplication is not None: undistortedImageMultiplication = args.undistortedImageMultiplication - if args.firstFrameNum is not None: firstFrameNum = args.firstFrameNum if args.nObjects is not None: @@ -69,4 +45,4 @@ objects = storage.loadTrajectoriesFromSqlite(databaseFilename, args.trajectoryType, nObjects) boundingBoxes = storage.loadBoundingBoxTableForDisplay(databaseFilename) -cvutils.displayTrajectories(videoFilename, objects, boundingBoxes, homography, firstFrameNum, args.lastFrameNum, rescale = args.rescale, nFramesStep = args.nFramesStep, saveAllImages = args.saveAllImages, undistort = (undistort or args.undistort), intrinsicCameraMatrix = intrinsicCameraMatrix, distortionCoefficients = distortionCoefficients, undistortedImageMultiplication = undistortedImageMultiplication) +cvutils.displayTrajectories(videoFilename, objects, boundingBoxes, invHomography, firstFrameNum, args.lastFrameNum, rescale = args.rescale, nFramesStep = args.nFramesStep, saveAllImages = args.saveAllImages, undistort = (undistort or args.undistort), intrinsicCameraMatrix = intrinsicCameraMatrix, distortionCoefficients = distortionCoefficients, undistortedImageMultiplication = undistortedImageMultiplication)