Mercurial Hosting > traffic-intelligence
changeset 266:aba9711b3149
small modificatons and reorganization
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 27 Jul 2012 10:29:24 -0400 |
parents | 7a3bf04cf016 |
children | 32e88b513f5c |
files | python/cvutils.py python/extrapolation.py python/utils.py |
diffstat | 3 files changed, 31 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/python/cvutils.py Thu Jul 26 19:46:36 2012 -0400 +++ b/python/cvutils.py Fri Jul 27 10:29:24 2012 -0400 @@ -156,7 +156,9 @@ draw(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant()) cv2.putText(img, '{0}'.format(obj.num), obj.projectedPositions[frameNum-obj.getFirstInstant()].asint().astuple(), cv2.FONT_HERSHEY_PLAIN, 1, cvRed) cv2.imshow('frame', img) - key = cv2.waitKey(50) + key = cv2.waitKey() + if key == 115: + cv2.imwrite('image.png', img) frameNum += 1 def printCvMat(cvmat, out = stdout):
--- a/python/extrapolation.py Thu Jul 26 19:46:36 2012 -0400 +++ b/python/extrapolation.py Fri Jul 27 10:29:24 2012 -0400 @@ -63,8 +63,12 @@ return moving.NormAngle(self.accelerationDistribution(),self.steeringDistribution()) class ExtrapolationParameters: - def __init__(self, name): + def __init__(self, name, maxSpeed): self.name = name + self.maxSpeed = maxSpeed + + def __str__(self): + return '{0} {1}'.format(self.name, self.maxSpeed) def createExtrapolatedTrajectories(extrapolationParameters, obj, instant): '''extrapolationParameters specific to each method (in name field) ''' @@ -102,16 +106,20 @@ self.probability = probability self.indicator = indicator -def saveSafetyPoints(out, objNum1, objNum2, instant, points): - for p in points: - out.write('{0} {1} {2} {3} {4} {5} {6}\n'.format(objNum1, objNum2, instant, p.x, p.y, p.probability, p.indicator)) + @staticmethod + def save(out, points, objNum1, objNum2, instant): + for p in points: + out.write('{0} {1} {2} {3} {4} {5} {6}\n'.format(objNum1, objNum2, instant, p.x, p.y, p.probability, p.indicator)) def computeExpectedIndicator(points): from numpy import sum return sum([p.indicator*p.probability for p in points])/sum([p.probability for p in points]) -def computeCrossingsCollisionsAtInstant(extrapolatedTrajectories1, extrapolatedTrajectories2, collisionDistanceThreshold, timeHorizon): +def computeCrossingsCollisionsAtInstant(i, obj1, obj2, extrapolationParameters, collisionDistanceThreshold, timeHorizon): '''returns the lists of collision points and crossing zones ''' + extrapolatedTrajectories1 = createExtrapolatedTrajectories(extrapolationParameters, obj1, i) + extrapolatedTrajectories2 = createExtrapolatedTrajectories(extrapolationParameters, obj2, i) + collisionPoints = [] crossingZones = [] for et1 in extrapolatedTrajectories1: @@ -155,16 +163,13 @@ commonTimeInterval = obj1.commonTimeInterval(obj2) for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors print(obj1.num, obj2.num, i) - extrapolatedTrajectories1 = createExtrapolatedTrajectories(extrapolationParameters, obj1, i) - extrapolatedTrajectories2 = createExtrapolatedTrajectories(extrapolationParameters, obj2, i) - - collisionPoints[i], crossingZones[i] = computeCrossingsCollisionsAtInstant(extrapolatedTrajectories1, extrapolatedTrajectories2, collisionDistanceThreshold, timeHorizon) + collisionPoints[i], crossingZones[i] = computeCrossingsCollisionsAtInstant(i, obj1, obj2, extrapolationParameters, collisionDistanceThreshold, timeHorizon) # if len(collisionPoints[i]) > 0: # TTCs[i] = extrapolation.computeExpectedIndicator(collisionPoints[i]) # if len(crossingZones[i]) > 0: # pPETs[i] = extrapolation.computeExpectedIndicator(crossingZones[i]) - saveSafetyPoints(outCP, obj1.num, obj2.num, i, collisionPoints[i]) - saveSafetyPoints(outCZ, obj1.num, obj2.num, i, crossingZones[i]) + SafetyPoint.save(outCP, collisionPoints[i], obj1.num, obj2.num, i) + SafetyPoint.save(outCZ, crossingZones[i], obj1.num, obj2.num, i) if debug: from matplotlib.pyplot import figure, axis, title
--- a/python/utils.py Thu Jul 26 19:46:36 2012 -0400 +++ b/python/utils.py Fri Jul 27 10:29:24 2012 -0400 @@ -300,7 +300,7 @@ def cleanFilename(s): 'cleans filenames obtained when contatenating figure characteristics' - return s.replace(' ','-').replace('.','') + return s.replace(' ','-').replace('.','').replace('/','-') def listfiles(dirname, extension, remove = False): '''Returns the list of files with the extension in the directory dirname @@ -313,11 +313,22 @@ else: return tmp +def mkdir(dirname): + 'Creates a directory if it does not exist' + import os + if not os.path.exists(dirname): + os.mkdir(dirname) + else: + print(dirname+' already exists') + def removeFile(filename): '''Deletes the file while avoiding raising an error if the file does not exist''' + import os if (os.path.exists(filename)): os.remove(filename) + else: + print(filename+' does not exist') def plotPolygon(poly, options = ''): from numpy.core.multiarray import array