changeset 218:b5772df11b37

corrected bugs to load objects and display trajectories over videos
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 21 Jun 2012 18:04:11 -0400
parents ba71924cadf5
children 841a1714f702
files python/cvutils.py python/storage.py
diffstat 2 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/python/cvutils.py	Thu Jun 21 15:18:41 2012 -0400
+++ b/python/cvutils.py	Thu Jun 21 18:04:11 2012 -0400
@@ -129,16 +129,18 @@
         capture = cv2.VideoCapture(videoFilename)
         if capture.isOpened():
             key = -1
-            frameNum = 1
+            frameNum = 0
             while key!= 113: # 'q'
                 ret, img = capture.read()
                 if ret:
                     print(frameNum)
                     for obj in objects:
                         if obj.existsAtInstant(frameNum):
-                            #obj.getTimeInterval()
-                            if homography != None and obj.getFirstInstant() == frameNum:
-                                obj.projectedPositions = obj.positions.project(homography)
+                            if obj.getFirstInstant() == frameNum:
+                                if homography != None:
+                                    obj.projectedPositions = obj.positions.project(homography)
+                                else:
+                                    obj.projectedPositions = obj.positions
                             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)
--- a/python/storage.py	Thu Jun 21 15:18:41 2012 -0400
+++ b/python/storage.py	Thu Jun 21 18:04:11 2012 -0400
@@ -81,18 +81,18 @@
             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')
+                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:
+                    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 OF.object_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 OF.object_id in ('+', '.join([str(n) for n in objectNumbers])+') group by object_id, frame_number')
         else:
             print('no trajectory type was chosen')
     except sqlite3.OperationalError as err: