Mercurial Hosting > traffic-intelligence
changeset 204:966c2cd2bd9f
added code to load object trajectories (average of features)
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 06 Mar 2012 18:44:03 -0500 |
parents | e2f31813ade6 |
children | aeaaf5579b46 |
files | python/cvutils.py python/storage.py |
diffstat | 2 files changed, 26 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/python/cvutils.py Tue Mar 06 18:10:19 2012 -0500 +++ b/python/cvutils.py Tue Mar 06 18:44:03 2012 -0500 @@ -133,6 +133,7 @@ if homography != None and obj.getFirstInstant() == frameNum: obj.projectedPositions = obj.positions.project(homography) draw(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant()) + cv2.putText(img, '{0}'.format(obj.num), obj.projectedPositions[frameNum-obj.getFirstInstant()].astuple(), cv2.FONT_HERSHEY_PLAIN, 1, cvRed) cv2.imshow('frame', img) key = cv2.waitKey(50) frameNum += 1
--- a/python/storage.py Tue Mar 06 18:10:19 2012 -0500 +++ b/python/storage.py Tue Mar 06 18:44:03 2012 -0500 @@ -8,26 +8,37 @@ ngsimUserTypes = {'twowheels':1, - 'car':2, - 'truck':3} + 'car':2, + 'truck':3} -def loadTrajectoriesFromSqlite(filename, objectNumbers = -1): +def loadTrajectoriesFromSqlite(filename, trajectoryType, objectNumbers = -1): '''Loads nObjects or the indices in objectNumbers from the database - TODO: load velocities''' + TODO: load velocities (replace table name 'positions' by 'velocities' + TODO: load features as well, other ways of averaging trajectories + ''' import sqlite3 connection = sqlite3.connect(filename) # add test if it open cursor = connection.cursor() - - if type(objectNumbers) == int: - if objectNumbers == -1: - cursor.execute('SELECT * from positions order by trajectory_id, frame_number') - else: - cursor.execute('SELECT * from positions where trajectory_id between 0 and {0} order by trajectory_id, frame_number'.format(objectNumbers)) - elif type(objectNumbers) == list: - cursor.execute('SELECT * from positions where trajectory_id in (' - +', '.join([str(n) for n in objectNumbers]) - +') order by trajectory_id, frame_number') + + if trajectoryType == 'feature': + if type(objectNumbers) == int: + if objectNumbers == -1: + cursor.execute('SELECT * from positions order by trajectory_id, frame_number') + else: + cursor.execute('SELECT * from positions where trajectory_id between 0 and {0} order by trajectory_id, frame_number'.format(objectNumbers)) + elif type(objectNumbers) == list: + cursor.execute('SELECT * from positions where trajectory_id in ('+', '.join([str(n) for n in objectNumbers])+') order by trajectory_id, frame_number') + elif trajectoryType == 'object': + if type(objectNumbers) == int: + if objectNumbers == -1: + cursor.execute('SELECT OF.object_id, P.frame_number, avg(P.x_coordinate), avg(P.y_coordinate) from positions P, objects_features OF where P.trajectory_id = OF.trajectory_id group by object_id, frame_number') + else: + cursor.execute('SELECT OF.object_id, P.frame_number, avg(P.x_coordinate), avg(P.y_coordinate) from positions P, objects_features OF where P.trajectory_id = OF.trajectory_id and trajectory_id between 0 and {0} group by object_id, frame_number'.format(objectNumbers)) + elif type(objectNumbers) == list: + cursor.execute('SELECT OF.object_id, P.frame_number, avg(P.x_coordinate), avg(P.y_coordinate) from positions P, objects_features OF where P.trajectory_id = OF.trajectory_id and trajectory_id in ('+', '.join([str(n) for n in objectNumbers])+') group by object_id, frame_number') + else: + print('no trajectory type was chosen') objId = -1 obj = None @@ -48,15 +59,6 @@ connection.close() return objects -def loadObjectsFromSqlite(filename, objectNumbers = -1): - '''Loads objects as averages of feature trajectories - TODO: load features as well, other ways of averaging trajectories - need to provide table name(s) ?''' - # elect frame_number, avg(x_coordinate), avg(y_coordinate) from positions where trajectory_id in (select trajectory_id from objects_features where object_id=12) group by frame_number; - - - - def loadTrajectoriesFromNgsimFile(filename, nObjects = -1, sequenceNum = -1): '''Reads data from the trajectory data provided by NGSIM project and returns the list of Feature objects'''