# HG changeset patch # User Nicolas Saunier # Date 1258243366 18000 # Node ID e7bbe8465591bb928abc7fc4c50abdd3f6fd1bab # Parent 30559b2cf7a91eaf8b1392a2a71290ca7b4b13e1 homography and other utils diff -r 30559b2cf7a9 -r e7bbe8465591 python/moving.py --- a/python/moving.py Fri Nov 13 19:29:01 2009 -0500 +++ b/python/moving.py Sat Nov 14 19:02:46 2009 -0500 @@ -101,6 +101,15 @@ from matplotlib.pylab import plot plot(self.positions[0], self.positions[1]) + def xBounds(self): + # look for function that does min and max in one pass + return [min(self.positions[0]), max(self.positions[0])] + + def yBounds(self): + # look for function that does min and max in one pass + return [min(self.positions[1]), max(self.positions[1])] + + class MovingObject(STObject): '''Class for moving objects i.e. with a trajectory and a geometry (volume) diff -r 30559b2cf7a9 -r e7bbe8465591 python/utils.py --- a/python/utils.py Fri Nov 13 19:29:01 2009 -0500 +++ b/python/utils.py Sat Nov 14 19:02:46 2009 -0500 @@ -45,7 +45,8 @@ return filename def listfiles(dirname, extension, remove = False): - '''Returns the list of files with the extension in the directory dirname''' + '''Returns the list of files with the extension in the directory dirname + If remove is True, the filenames are stripped from the extension''' from os import listdir tmp = [f for f in listdir(dirname) if f.endswith(extension)] tmp.sort() @@ -54,6 +55,32 @@ else: return tmp +def removeFile(filename): + '''Deletes the file while avoiding raising an error + if the file does not exist''' + if (os.path.exists(filename)): + os.remove(filename) + +def invertHomography(homography): + 'Returns an inverted homography' + invH = inv(homography) + invH /= invH[2,2] + return invH + +def project(homography, p): + '''Returns the coordinates of the projection of the point p + through homography''' + from numpy.core._dotblas import dot + from numpy.core.multiarray import array + from numpy.lib.function_base import insert + if (homography!=None) and (len(homography)>0): + pAugmented = insert(array(p), [2],[1], axis=0) + projected = dot(homography, pAugmented) + projected[0] /= projected[2] + projected[1] /= projected[2] + else: + projected = p + return projected[:2]