comparison python/cvutils.py @ 661:dc70d9e711f5

some method name change and new methods for features in objects (MovingObject) and methods to access indicator values in interactions
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 18 May 2015 13:53:25 +0200
parents 6668f541b915
children 15e244d2a1b5
comparison
equal deleted inserted replaced
660:994dd644f6ab 661:dc70d9e711f5
236 236
237 def imageBox(img, obj, frameNum, homography, width, height, px = 0.2, py = 0.2, pixelThreshold = 800): 237 def imageBox(img, obj, frameNum, homography, width, height, px = 0.2, py = 0.2, pixelThreshold = 800):
238 'Computes the bounding box of object at frameNum' 238 'Computes the bounding box of object at frameNum'
239 x = [] 239 x = []
240 y = [] 240 y = []
241 for f in obj.features: 241 if obj.hasFeatures():
242 if f.existsAtInstant(frameNum): 242 for f in obj.getFeatures():
243 projectedPosition = f.getPositionAtInstant(frameNum).project(homography) 243 if f.existsAtInstant(frameNum):
244 x.append(projectedPosition.x) 244 projectedPosition = f.getPositionAtInstant(frameNum).project(homography)
245 y.append(projectedPosition.y) 245 x.append(projectedPosition.x)
246 y.append(projectedPosition.y)
246 xmin = min(x) 247 xmin = min(x)
247 xmax = max(x) 248 xmax = max(x)
248 ymin = min(y) 249 ymin = min(y)
249 ymax = max(y) 250 ymax = max(y)
250 xMm = px * (xmax - xmin) 251 xMm = px * (xmax - xmin)
302 obj.projectedPositions = obj.positions 303 obj.projectedPositions = obj.positions
303 cvPlot(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant()) 304 cvPlot(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant())
304 if frameNum in boundingBoxes.keys(): 305 if frameNum in boundingBoxes.keys():
305 for rect in boundingBoxes[frameNum]: 306 for rect in boundingBoxes[frameNum]:
306 cv2.rectangle(img, rect[0].asint().astuple(), rect[1].asint().astuple(), cvRed) 307 cv2.rectangle(img, rect[0].asint().astuple(), rect[1].asint().astuple(), cvRed)
307 elif len(obj.features) != 0: 308 elif obj.hasFeatures():
308 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height) 309 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height)
309 cv2.rectangle(img, (xCropMin, yCropMin), (xCropMax, yCropMax), cvBlue, 1) 310 cv2.rectangle(img, (xCropMin, yCropMin), (xCropMax, yCropMax), cvBlue, 1)
310 objDescription = '{} '.format(obj.num) 311 objDescription = '{} '.format(obj.num)
311 if userTypeNames[obj.userType] != 'unknown': 312 if userTypeNames[obj.userType] != 'unknown':
312 objDescription += userTypeNames[obj.userType][0].upper() 313 objDescription += userTypeNames[obj.userType][0].upper()