Mercurial Hosting > traffic-intelligence
comparison python/cvutils.py @ 429:2be846d36dec
reverted to stable OpenCV release 2.4.6
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 12 Nov 2013 00:38:47 -0500 |
parents | 8fdbc13dad8b |
children | 17185fe77316 |
comparison
equal
deleted
inserted
replaced
428:70accfa6692f | 429:2be846d36dec |
---|---|
120 capture = cv2.VideoCapture(filename) | 120 capture = cv2.VideoCapture(filename) |
121 if capture.isOpened(): | 121 if capture.isOpened(): |
122 key = -1 | 122 key = -1 |
123 ret = True | 123 ret = True |
124 frameNum = firstFrameNum | 124 frameNum = firstFrameNum |
125 capture.set(cv2.CAP_PROP_POS_FRAMES, firstFrameNum) | 125 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) |
126 while ret and not quitKey(key): | 126 while ret and not quitKey(key): |
127 ret, img = capture.read() | 127 ret, img = capture.read() |
128 if ret: | 128 if ret: |
129 if printFrames: | 129 if printFrames: |
130 print('frame {0}'.format(frameNum)) | 130 print('frame {0}'.format(frameNum)) |
131 frameNum+=1 | 131 frameNum+=1 |
132 if text != None: | 132 if text != None: |
133 cv2.putText(img, text, (10,50), cv2.FONT_HERSHEY_PLAIN, 1, cvRed) | 133 cv2.putText(img, text, (10,50), cv2.cv.CV_FONT_HERSHEY_PLAIN, 1, cvRed) |
134 cvImshow('frame', img, rescale) | 134 cvImshow('frame', img, rescale) |
135 key = cv2.waitKey(wait) | 135 key = cv2.waitKey(wait) |
136 cv2.destroyAllWindows() | 136 cv2.destroyAllWindows() |
137 | 137 |
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 if capture.isOpened(): | 143 if capture.isOpened(): |
144 nDigits = int(floor(log10(capture.get(cv2.CAP_PROP_FRAME_COUNT))))+1 | 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.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() |
150 i = 0 | 150 i = 0 |
151 while not ret and i<10: | 151 while not ret and i<10: |
164 return images | 164 return images |
165 | 165 |
166 def getFPS(videoFilename): | 166 def getFPS(videoFilename): |
167 capture = cv2.VideoCapture(videoFilename) | 167 capture = cv2.VideoCapture(videoFilename) |
168 if capture.isOpened(): | 168 if capture.isOpened(): |
169 fps = capture.get(cv2.CAP_PROP_FPS) | 169 fps = capture.get(cv2.cv.CV_CAP_PROP_FPS) |
170 capture.release() | 170 capture.release() |
171 return fps | 171 return fps |
172 else: | 172 else: |
173 print 'Cannot load file ' + videoFilename | 173 print 'Cannot load file ' + videoFilename |
174 return None | 174 return None |
203 def displayTrajectories(videoFilename, objects, boundingBoxes = {}, homography = None, firstFrameNum = 0, lastFrameNumArg = None, printFrames = True, rescale = 1.): | 203 def displayTrajectories(videoFilename, objects, boundingBoxes = {}, homography = None, firstFrameNum = 0, lastFrameNumArg = None, printFrames = True, rescale = 1.): |
204 '''Displays the objects overlaid frame by frame over the video ''' | 204 '''Displays the objects overlaid frame by frame over the video ''' |
205 from moving import userTypeNames | 205 from moving import userTypeNames |
206 | 206 |
207 capture = cv2.VideoCapture(videoFilename) | 207 capture = cv2.VideoCapture(videoFilename) |
208 width = int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)) | 208 width = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)) |
209 height = int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)) | 209 height = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)) |
210 if capture.isOpened(): | 210 if capture.isOpened(): |
211 key = -1 | 211 key = -1 |
212 ret = True | 212 ret = True |
213 frameNum = firstFrameNum | 213 frameNum = firstFrameNum |
214 capture.set(cv2.CAP_PROP_POS_FRAMES, firstFrameNum) | 214 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) |
215 if not lastFrameNumArg: | 215 if not lastFrameNumArg: |
216 from sys import maxint | 216 from sys import maxint |
217 lastFrameNum = maxint | 217 lastFrameNum = maxint |
218 else: | 218 else: |
219 lastFrameNum = lastFrameNumArg | 219 lastFrameNum = lastFrameNumArg |
237 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height) | 237 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height) |
238 cv2.rectangle(img, (xCropMin, yCropMin), (xCropMax, yCropMax), cvBlue, 1) | 238 cv2.rectangle(img, (xCropMin, yCropMin), (xCropMax, yCropMax), cvBlue, 1) |
239 objDescription = '{} '.format(obj.num) | 239 objDescription = '{} '.format(obj.num) |
240 if userTypeNames[obj.userType] != 'unknown': | 240 if userTypeNames[obj.userType] != 'unknown': |
241 objDescription += userTypeNames[obj.userType][0].upper() | 241 objDescription += userTypeNames[obj.userType][0].upper() |
242 cv2.putText(img, objDescription, obj.projectedPositions[frameNum-obj.getFirstInstant()].asint().astuple(), cv2.FONT_HERSHEY_PLAIN, 1, cvRed) | 242 cv2.putText(img, objDescription, obj.projectedPositions[frameNum-obj.getFirstInstant()].asint().astuple(), cv2.cv.CV_FONT_HERSHEY_PLAIN, 1, cvRed) |
243 cvImshow('frame', img, rescale) | 243 cvImshow('frame', img, rescale) |
244 key = cv2.waitKey() | 244 key = cv2.waitKey() |
245 if saveKey(key): | 245 if saveKey(key): |
246 cv2.imwrite('image.png', img) | 246 cv2.imwrite('image.png', img) |
247 frameNum += 1 | 247 frameNum += 1 |