comparison trafficintelligence/cvutils.py @ 1125:b358bed29ab4

updates and bugs
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 30 Jan 2020 10:17:07 -0500
parents 956a66096e91
children 7eb972942f22
comparison
equal deleted inserted replaced
1118:234e2228fd30 1125:b358bed29ab4
264 xmax = max(x) 264 xmax = max(x)
265 ymin = min(y) 265 ymin = min(y)
266 ymax = max(y) 266 ymax = max(y)
267 xMm = px * (xmax - xmin) 267 xMm = px * (xmax - xmin)
268 yMm = py * (ymax - ymin) 268 yMm = py * (ymax - ymin)
269 a = max(ymax - ymin + (2 * yMm), xmax - (xmin + 2 * xMm)) 269 a = max(ymax - ymin + (2 * yMm), xmax - xmin + (2 * xMm))
270 yCropMin = int(max(0, .5 * (ymin + ymax - a))) 270 yCropMin = int(max(0, .5 * (ymin + ymax - a)))
271 yCropMax = int(min(height - 1, .5 * (ymin + ymax + a))) 271 yCropMax = int(min(height - 1, .5 * (ymin + ymax + a)))
272 xCropMin = int(max(0, .5 * (xmin + xmax - a))) 272 xCropMin = int(max(0, .5 * (xmin + xmax - a)))
273 xCropMax = int(min(width - 1, .5 * (xmin + xmax + a))) 273 xCropMax = int(min(width - 1, .5 * (xmin + xmax + a)))
274 return yCropMin, yCropMax, xCropMin, xCropMax 274 return yCropMin, yCropMax, xCropMin, xCropMax
275 275
276 def imageBox(img, obj, frameNum, width, height, px = 0.2, py = 0.2, minNPixels = 800): 276 def imageBox(img, obj, frameNum, width, height, px = 0.2, py = 0.2, minNPixels = 800):
277 'Computes the bounding box of object at frameNum' 277 'Computes the bounding box of object at frameNum'
278 yCropMin, yCropMax, xCropMin, xCropMax = imageBoxSize(obj, frameNum, width, height, px, py) 278 yCropMin, yCropMax, xCropMin, xCropMax = imageBoxSize(obj, frameNum, width, height, px, py)
279 if yCropMax != yCropMin and xCropMax != xCropMin and (yCropMax - yCropMin) * (xCropMax - xCropMin) > minNPixels: 279 if yCropMax > yCropMin and xCropMax > xCropMin and (yCropMax - yCropMin) * (xCropMax - xCropMin) > minNPixels:
280 return img[yCropMin : yCropMax, xCropMin : xCropMax] 280 return img[yCropMin : yCropMax, xCropMin : xCropMax]
281 else: 281 else:
282 return None 282 return None
283 283
284 def tracking(configFilename, grouping, videoFilename = None, dbFilename = None, homographyFilename = None, maskFilename = None, undistort = False, intrinsicCameraMatrix = None, distortionCoefficients = None, dryRun = False): 284 def tracking(configFilename, grouping, videoFilename = None, dbFilename = None, homographyFilename = None, maskFilename = None, undistort = False, intrinsicCameraMatrix = None, distortionCoefficients = None, dryRun = False):