Mercurial Hosting > traffic-intelligence
comparison python/cvutils.py @ 398:3399bd48cb40
Ajout d'une méthode pour obtenir le nombre de FPS
Méthode de capture des trames vidéos plus résistante aux erreur
Utilisation d'un dictionnaire pour les fichier de configuration afin de garder le nom des sections
author | Jean-Philippe Jodoin <jpjodoin@gmail.com> |
---|---|
date | Mon, 29 Jul 2013 13:46:07 -0400 |
parents | 167f6ec44ec5 |
children | f29204e68aab |
comparison
equal
deleted
inserted
replaced
397:b36b00dd27c3 | 398:3399bd48cb40 |
---|---|
138 def getImagesFromVideo(videoFilename, firstFrameNum = 0, nFrames = 1, saveImage = False, outputPrefix = 'image'): | 138 def getImagesFromVideo(videoFilename, firstFrameNum = 0, nFrames = 1, saveImage = False, outputPrefix = 'image'): |
139 '''Returns nFrames images from the video sequence''' | 139 '''Returns nFrames images from the video sequence''' |
140 from math import floor, log10 | 140 from math import floor, log10 |
141 images = [] | 141 images = [] |
142 capture = cv2.VideoCapture(videoFilename) | 142 capture = cv2.VideoCapture(videoFilename) |
143 nDigits = int(floor(log10(capture.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))))+1 | 143 if capture.isOpened(): |
144 if capture.isOpened(): | 144 nDigits = int(floor(log10(capture.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))))+1 |
145 ret = False | 145 ret = False |
146 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) | 146 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) |
147 imgNum = 0 | 147 imgNum = 0 |
148 while imgNum<nFrames: | 148 while imgNum<nFrames: |
149 ret, img = capture.read() | 149 ret, img = capture.read() |
156 imgNumStr = format(firstFrameNum+imgNum, '0{}d'.format(nDigits)) | 156 imgNumStr = format(firstFrameNum+imgNum, '0{}d'.format(nDigits)) |
157 cv2.imwrite(outputPrefix+imgNumStr+'.png', img) | 157 cv2.imwrite(outputPrefix+imgNumStr+'.png', img) |
158 else: | 158 else: |
159 images.append(img) | 159 images.append(img) |
160 imgNum +=1 | 160 imgNum +=1 |
161 capture.release() | |
162 else: | |
163 print('Video capture failed') | |
161 return images | 164 return images |
165 | |
166 | |
167 def getFPS(videoFilename): | |
168 capture = cv2.VideoCapture(videoFilename) | |
169 if capture.isOpened(): | |
170 fps = capture.get(cv2.cv.CV_CAP_PROP_FPS) | |
171 capture.release() | |
172 return fps | |
173 else: | |
174 print 'Cannot load file ' + videoFilename | |
175 return None | |
162 | 176 |
163 def displayTrajectories(videoFilename, objects, boundingBoxes, homography = None, firstFrameNum = 0, lastFrameNumArg = None, printFrames = True, rescale = 1.): | 177 def displayTrajectories(videoFilename, objects, boundingBoxes, homography = None, firstFrameNum = 0, lastFrameNumArg = None, printFrames = True, rescale = 1.): |
164 '''Displays the objects overlaid frame by frame over the video ''' | 178 '''Displays the objects overlaid frame by frame over the video ''' |
165 capture = cv2.VideoCapture(videoFilename) | 179 capture = cv2.VideoCapture(videoFilename) |
166 if capture.isOpened(): | 180 if capture.isOpened(): |