diff python/utils.py @ 14:e7bbe8465591

homography and other utils
author Nicolas Saunier <nico@confins.net>
date Sat, 14 Nov 2009 19:02:46 -0500
parents ffddccfab7f9
children 9d6831cfe675
line wrap: on
line diff
--- 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]