comparison python/moving.py @ 982:51d8406b2489

corrected bug when not using a homography and using a mask for CLEAR MOT metrics
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 27 Feb 2018 16:45:46 -0500
parents 184f1dd307f9
children f026ce2af637
comparison
equal deleted inserted replaced
981:c3e690c5536e 982:51d8406b2489
1194 restricted to time interval inter''' 1194 restricted to time interval inter'''
1195 intersection = TimeInterval.intersection(inter, self.getTimeInterval()) 1195 intersection = TimeInterval.intersection(inter, self.getTimeInterval())
1196 if not intersection.empty(): 1196 if not intersection.empty():
1197 trajectoryInterval = TimeInterval(intersection.first-self.getFirstInstant(), intersection.last-self.getFirstInstant()) 1197 trajectoryInterval = TimeInterval(intersection.first-self.getFirstInstant(), intersection.last-self.getFirstInstant())
1198 obj = MovingObject(self.num, intersection, self.positions.getTrajectoryInInterval(trajectoryInterval), self.geometry, self.userType) 1198 obj = MovingObject(self.num, intersection, self.positions.getTrajectoryInInterval(trajectoryInterval), self.geometry, self.userType)
1199 if self.velocities: 1199 if self.velocities is not None:
1200 obj.velocities = self.velocities.getTrajectoryInInterval(trajectoryInterval) 1200 obj.velocities = self.velocities.getTrajectoryInInterval(trajectoryInterval)
1201 return obj 1201 return obj
1202 else: 1202 else:
1203 print('The object does not exist at {}'.format(inter)) 1203 print('The object does not exist at {}'.format(inter))
1204 return None 1204 return None
1210 self.projectedPositions = self.positions.homographyProject(homography) 1210 self.projectedPositions = self.positions.homographyProject(homography)
1211 else: 1211 else:
1212 self.projectedPositions = self.positions 1212 self.projectedPositions = self.positions
1213 def inMask(positions, i, mask): 1213 def inMask(positions, i, mask):
1214 p = positions[i] 1214 p = positions[i]
1215 return mask[p.y, p.x] != 0. 1215 return mask[int(p.y), int(p.x)] != 0.
1216 1216
1217 #subTimeIntervals self.getFirstInstant()+i 1217 #subTimeIntervals self.getFirstInstant()+i
1218 filteredIndices = [inMask(self.projectedPositions, i, mask) for i in range(int(self.length()))] 1218 filteredIndices = [inMask(self.projectedPositions, i, mask) for i in range(int(self.length()))]
1219 # 'connected components' in subTimeIntervals 1219 # 'connected components' in subTimeIntervals
1220 l = 0 1220 l = 0