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():