Mercurial > hg > nsaunier > traffic-intelligence
comparison scripts/polytracktopdtv.py @ 636:3058e00887bc
removed all issues because of tests with None, using is instead of == or !=
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Tue, 24 Mar 2015 18:11:28 +0100 |
| parents | 4dd68b0765b1 |
| children | 933670761a57 |
comparison
equal
deleted
inserted
replaced
| 635:6ae68383071e | 636:3058e00887bc |
|---|---|
| 33 ... and other type if the objects_type table is defined in SQLite''' | 33 ... and other type if the objects_type table is defined in SQLite''' |
| 34 typeDict = dict() | 34 typeDict = dict() |
| 35 cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='objects_type'") | 35 cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='objects_type'") |
| 36 data = cursor.fetchone() | 36 data = cursor.fetchone() |
| 37 | 37 |
| 38 if(data == None): | 38 if(data is None): |
| 39 typeDict["0"] = "unknown" | 39 typeDict["0"] = "unknown" |
| 40 typeDict["1"] = "car" | 40 typeDict["1"] = "car" |
| 41 typeDict["2"] = "pedestrians" | 41 typeDict["2"] = "pedestrians" |
| 42 typeDict["3"] = "motorcycle" | 42 typeDict["3"] = "motorcycle" |
| 43 typeDict["4"] = "bicycle" | 43 typeDict["4"] = "bicycle" |
| 57 deltaTimestamp = 1000.0/float(fps); | 57 deltaTimestamp = 1000.0/float(fps); |
| 58 time+=datetime.timedelta(microseconds=firstFrameNum*deltaTimestamp*1000) | 58 time+=datetime.timedelta(microseconds=firstFrameNum*deltaTimestamp*1000) |
| 59 | 59 |
| 60 inc = 1000 #How many frame we fetch in the video at a time | 60 inc = 1000 #How many frame we fetch in the video at a time |
| 61 | 61 |
| 62 if lastFrameNum != None: | 62 if lastFrameNum is not None: |
| 63 delta = lastFrameNum-firstFrameNum | 63 delta = lastFrameNum-firstFrameNum |
| 64 if delta < inc: | 64 if delta < inc: |
| 65 inc = delta | 65 inc = delta |
| 66 | 66 |
| 67 currentIdx = firstFrameNum | 67 currentIdx = firstFrameNum |
| 72 for f in frameList: | 72 for f in frameList: |
| 73 cv2.imwrite(os.path.join(framePath,time.strftime("%Y%m%d-%H%M%S.%f")[:-3]+'.jpg'), f) | 73 cv2.imwrite(os.path.join(framePath,time.strftime("%Y%m%d-%H%M%S.%f")[:-3]+'.jpg'), f) |
| 74 time += datetime.timedelta(microseconds=deltaTimestamp*1000) | 74 time += datetime.timedelta(microseconds=deltaTimestamp*1000) |
| 75 currentIdx = currentIdx + inc | 75 currentIdx = currentIdx + inc |
| 76 | 76 |
| 77 if lastFrameNum != None: | 77 if lastFrameNum is not None: |
| 78 delta = lastFrameNum-currentIdx | 78 delta = lastFrameNum-currentIdx |
| 79 if delta < inc: | 79 if delta < inc: |
| 80 inc = delta | 80 inc = delta |
| 81 if inc: | 81 if inc: |
| 82 frameList = cvutils.getImagesFromVideo(videoFile, firstFrameNum = currentIdx, nFrames = inc) | 82 frameList = cvutils.getImagesFromVideo(videoFile, firstFrameNum = currentIdx, nFrames = inc) |
| 94 videoFolderExist specifiy if we want to reextract the video frame or if they already exist at workdir/videoframes/ | 94 videoFolderExist specifiy if we want to reextract the video frame or if they already exist at workdir/videoframes/ |
| 95 firstFrameNum is the first frame we want to extract | 95 firstFrameNum is the first frame we want to extract |
| 96 lastFrameNum is the last frame we want to extract (or None if we want to extract everything) | 96 lastFrameNum is the last frame we want to extract (or None if we want to extract everything) |
| 97 ''' | 97 ''' |
| 98 error = False | 98 error = False |
| 99 if sceneFilename != None: | 99 if sceneFilename is not None: |
| 100 scene = utils.SceneParameters.loadConfigFile(os.path.join(workDirname, sceneFilename)) | 100 scene = utils.SceneParameters.loadConfigFile(os.path.join(workDirname, sceneFilename)) |
| 101 time = scene[sectionName].date | 101 time = scene[sectionName].date |
| 102 inputDb = os.path.join(workDirname, scene[sectionName].databaseFilename) | 102 inputDb = os.path.join(workDirname, scene[sectionName].databaseFilename) |
| 103 videoFile = os.path.join(workDirname, scene[sectionName].videoFilename) | 103 videoFile = os.path.join(workDirname, scene[sectionName].videoFilename) |
| 104 | 104 |
| 105 if databaseFilename != None: | 105 if databaseFilename is not None: |
| 106 inputDb = os.path.join(workDirname, databaseFilename) | 106 inputDb = os.path.join(workDirname, databaseFilename) |
| 107 if videoFilename != None: | 107 if videoFilename is not None: |
| 108 videoFile = os.path.join(workDirname, videoFilename) | 108 videoFile = os.path.join(workDirname, videoFilename) |
| 109 # elif videoFolderExist == False: | 109 # elif videoFolderExist == False: |
| 110 # print('No video path specified') | 110 # print('No video path specified') |
| 111 # error = True | 111 # error = True |
| 112 | 112 |
| 113 videoFolderPath = os.path.join(workDirname, "videoframes/") | 113 videoFolderPath = os.path.join(workDirname, "videoframes/") |
| 114 fileName = sectionName | 114 fileName = sectionName |
| 115 | 115 |
| 116 if videoFile != None: | 116 if videoFile is not None: |
| 117 fps = cvutils.getFPS(videoFile) | 117 fps = cvutils.getFPS(videoFile) |
| 118 print('Video should run at ' + str(fps) + ' fps') | 118 print('Video should run at ' + str(fps) + ' fps') |
| 119 deltaTimestamp = 1000.0/float(fps); | 119 deltaTimestamp = 1000.0/float(fps); |
| 120 if videoFolderExist == False: | 120 if videoFolderExist == False: |
| 121 if os.path.exists(videoFolderPath): | 121 if os.path.exists(videoFolderPath): |
| 145 print('Zipping files...') | 145 print('Zipping files...') |
| 146 if not os.path.exists(inputZipVideoName) or not videoFolderExist: | 146 if not os.path.exists(inputZipVideoName) or not videoFolderExist: |
| 147 zipFolder(videoFolderPath, inputZipVideoName) | 147 zipFolder(videoFolderPath, inputZipVideoName) |
| 148 print('Zipping files...Done.') | 148 print('Zipping files...Done.') |
| 149 #We generate the structure for ZipVideo | 149 #We generate the structure for ZipVideo |
| 150 if cameraCalibrationFilename != None: | 150 if cameraCalibrationFilename is not None: |
| 151 calibrationFile = cameraCalibrationFilename | 151 calibrationFile = cameraCalibrationFilename |
| 152 else: | 152 else: |
| 153 calibrationFile = 'calib.json' | 153 calibrationFile = 'calib.json' |
| 154 zipVideo = ZipVideo(video_zip_file=inputZipVideoName, | 154 zipVideo = ZipVideo(video_zip_file=inputZipVideoName, |
| 155 time_offset=0.0, time_scale=1.0, master_timestamps=masterTimestampList, calibration_file=calibrationFile) | 155 time_offset=0.0, time_scale=1.0, master_timestamps=masterTimestampList, calibration_file=calibrationFile) |
| 187 trackset.append(t) | 187 trackset.append(t) |
| 188 print('Reading boundingbox table') | 188 print('Reading boundingbox table') |
| 189 #3) We read the bounding box table | 189 #3) We read the bounding box table |
| 190 cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='bounding_boxes'") | 190 cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='bounding_boxes'") |
| 191 data = cursor.fetchone() | 191 data = cursor.fetchone() |
| 192 if data == None: | 192 if data is None: |
| 193 print('No bounding box table. Maybe it was not generated ?') | 193 print('No bounding box table. Maybe it was not generated ?') |
| 194 else: | 194 else: |
| 195 cursor.execute("SELECT object_id, frame_number, x_top_left, y_top_left, x_bottom_right, y_bottom_right FROM bounding_boxes") | 195 cursor.execute("SELECT object_id, frame_number, x_top_left, y_top_left, x_bottom_right, y_bottom_right FROM bounding_boxes") |
| 196 for row in cursor: | 196 for row in cursor: |
| 197 objectId = row[0] | 197 objectId = row[0] |
