Mercurial Hosting > traffic-intelligence
changeset 851:07fb949ff98f
added display of object id
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 13 Sep 2016 15:30:51 -0400 |
parents | c724a51d4f5f |
children | 45a53542e046 |
files | python/moving.py |
diffstat | 1 files changed, 23 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/python/moving.py Sun Jul 31 03:52:25 2016 -0400 +++ b/python/moving.py Tue Sep 13 15:30:51 2016 -0400 @@ -6,7 +6,7 @@ from math import sqrt, atan2, cos, sin from numpy import median, array, zeros, hypot, NaN, std, floor, float32 -from matplotlib.pyplot import plot +from matplotlib.pyplot import plot, text from scipy.stats import scoreatpercentile from scipy.spatial.distance import cdist @@ -732,27 +732,29 @@ self.positions[1].append(self.positions[1][-1]) @staticmethod - def _plot(positions, options = '', withOrigin = False, lastCoordinate = None, timeStep = 1, **kwargs): + def _plot(positions, options = '', withOrigin = False, lastCoordinate = None, timeStep = 1, objNum = None, **kwargs): if lastCoordinate is None: plot(positions[0][::timeStep], positions[1][::timeStep], options, **kwargs) elif 0 <= lastCoordinate <= len(positions[0]): plot(positions[0][:lastCoordinate:timeStep], positions[1][:lastCoordinate:timeStep], options, **kwargs) if withOrigin: plot([positions[0][0]], [positions[1][0]], 'ro', **kwargs) - + if objNum is not None: + text(positions[0][0], positions[1][0], '{}'.format(objNum)) + def project(self, homography): return Trajectory(cvutils.projectTrajectory(homography, self.positions).tolist()) - def plot(self, options = '', withOrigin = False, timeStep = 1, **kwargs): - Trajectory._plot(self.positions, options, withOrigin, None, timeStep, **kwargs) + def plot(self, options = '', withOrigin = False, timeStep = 1, objNum = None, **kwargs): + Trajectory._plot(self.positions, options, withOrigin, None, timeStep, objNum, **kwargs) - def plotAt(self, lastCoordinate, options = '', withOrigin = False, timeStep = 1, **kwargs): - Trajectory._plot(self.positions, options, withOrigin, lastCoordinate, timeStep, **kwargs) + def plotAt(self, lastCoordinate, options = '', withOrigin = False, timeStep = 1, objNum = None, **kwargs): + Trajectory._plot(self.positions, options, withOrigin, lastCoordinate, timeStep, objNum, **kwargs) - def plotOnWorldImage(self, nPixelsPerUnitDistance, options = '', withOrigin = False, timeStep = 1, **kwargs): + def plotOnWorldImage(self, nPixelsPerUnitDistance, options = '', withOrigin = False, timeStep = 1, objNum = None, **kwargs): imgPositions = [[x*nPixelsPerUnitDistance for x in self.positions[0]], [x*nPixelsPerUnitDistance for x in self.positions[1]]] - Trajectory._plot(imgPositions, options, withOrigin, None, timeStep, **kwargs) + Trajectory._plot(imgPositions, options, withOrigin, None, timeStep, objNum, **kwargs) def getXCoordinates(self): return self.positions[0] @@ -1301,16 +1303,23 @@ def getYCoordinates(self): return self.positions.getYCoordinates() - def plot(self, options = '', withOrigin = False, timeStep = 1, withFeatures = False, **kwargs): + def plot(self, options = '', withOrigin = False, timeStep = 1, withFeatures = False, withIds = False, **kwargs): + if withIds: + objNum = self.getNum() + else: + objNum = None if withFeatures and self.hasFeatures(): for f in self.getFeatures(): f.positions.plot('r', True, timeStep, **kwargs) - self.positions.plot('bx-', True, timeStep, **kwargs) + self.positions.plot('bx-', True, timeStep, objNum, **kwargs) else: - self.positions.plot(options, withOrigin, timeStep, **kwargs) + self.positions.plot(options, withOrigin, timeStep, objNum, **kwargs) - def plotOnWorldImage(self, nPixelsPerUnitDistance, options = '', withOrigin = False, timeStep = 1, **kwargs): - self.positions.plotOnWorldImage(nPixelsPerUnitDistance, options, withOrigin, timeStep, **kwargs) + def plotOnWorldImage(self, nPixelsPerUnitDistance, options = '', withOrigin = False, timeStep = 1, withIds = False, **kwargs): + if withIds: + self.positions.plotOnWorldImage(nPixelsPerUnitDistance, options, withOrigin, timeStep, self.getNum(), **kwargs) + else: + self.positions.plotOnWorldImage(nPixelsPerUnitDistance, options, withOrigin, timeStep, None, **kwargs) def play(self, videoFilename, homography = None, undistort = False, intrinsicCameraMatrix = None, distortionCoefficients = None, undistortedImageMultiplication = 1.): cvutils.displayTrajectories(videoFilename, [self], homography = homography, firstFrameNum = self.getFirstInstant(), lastFrameNumArg = self.getLastInstant(), undistort = undistort, intrinsicCameraMatrix = intrinsicCameraMatrix, distortionCoefficients = distortionCoefficients, undistortedImageMultiplication = undistortedImageMultiplication)