Mercurial Hosting > traffic-intelligence
view python/moving.py @ 4:6509f5b1d795
updated and added makefile to compile C++ code using opencv in its directory, whipped up simple test to read the pixels in BW images
author | Nicolas Saunier <nico@confins.net> |
---|---|
date | Fri, 23 Oct 2009 00:26:47 -0400 |
parents | de5642925615 |
children | 597d61c1eebe |
line wrap: on
line source
#! /usr/bin/env python '''Libraries for moving objects, trajectories...''' import utils; __metaclass__ = type #class MovingObject: class TimeInterval: '''Temporal interval''' def __init__(self, first=0, last=-1): self.first=first self.last=last def __str__(self): return '%d %d'%(self.first, self.last) def empty(self): ''' >>> TimeInterval().empty() True >>> TimeInterval(0,1).empty() False ''' return self.first > self.last def length(self): '''Returns the length of the interval >>> TimeInterval(0,1).length() 2 >>> TimeInterval(10,8).length() 0 ''' return max(0,self.last-self.first+1) def getList(self): return [self.first, self.last] def contains(self, instant): return (self.first<=instant and self.last>=instant) def inside(self, interval2): 'indicates if the temporal interval of self is comprised in interval2' return (self.first >= interval2.first) and (self.last <= interval2.last) def union(self, interval2): '''Largest interval comprising self and interval2''' return TimeInterval(min(self.first, interval2.first), max(self.last, interval2.last)) def intersection(self, interval2): '''Largest interval comprising self and interval2''' return TimeInterval(max(self.first, interval2.first), min(self.last, interval2.last)) class STObject: '''Class for spatio-temporal object i.e. with temporal and spatial existence (time interval and bounding polygon for positions (e.g. rectangle)''' def __init__(self, timeInterval = TimeInterval(), boundingPolygon = None, num = None): self.timeInterval = timeInterval self.boundingPolygon = boundingPolygon self.num = num def empty(self): return self.timeInterval.empty() def getFirstInstant(self): return self.timeInterval.first() def getLastInstant(self): return self.timeInterval.first() # return bounding box, and generic polygon, that defaults to box class Track(STObject): '''Class for trajectories i.e. sequence of positions''' pass if __name__ == "__main__": import doctest import unittest #suite = doctest.DocFileSuite('tests/ubc_utils.txt') suite = doctest.DocTestSuite() unittest.TextTestRunner().run(suite) #doctest.testmod() #doctest.testfile("example.txt")