Mercurial > hg > nsaunier > traffic-intelligence
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 13:30559b2cf7a9 | 14:e7bbe8465591 |
|---|---|
| 43 return filename[:i] | 43 return filename[:i] |
| 44 else: | 44 else: |
| 45 return filename | 45 return filename |
| 46 | 46 |
| 47 def listfiles(dirname, extension, remove = False): | 47 def listfiles(dirname, extension, remove = False): |
| 48 '''Returns the list of files with the extension in the directory dirname''' | 48 '''Returns the list of files with the extension in the directory dirname |
| 49 If remove is True, the filenames are stripped from the extension''' | |
| 49 from os import listdir | 50 from os import listdir |
| 50 tmp = [f for f in listdir(dirname) if f.endswith(extension)] | 51 tmp = [f for f in listdir(dirname) if f.endswith(extension)] |
| 51 tmp.sort() | 52 tmp.sort() |
| 52 if remove: | 53 if remove: |
| 53 return [removeExtension(f, extension) for f in tmp] | 54 return [removeExtension(f, extension) for f in tmp] |
| 54 else: | 55 else: |
| 55 return tmp | 56 return tmp |
| 56 | 57 |
| 58 def removeFile(filename): | |
| 59 '''Deletes the file while avoiding raising an error | |
| 60 if the file does not exist''' | |
| 61 if (os.path.exists(filename)): | |
| 62 os.remove(filename) | |
| 63 | |
| 64 def invertHomography(homography): | |
| 65 'Returns an inverted homography' | |
| 66 invH = inv(homography) | |
| 67 invH /= invH[2,2] | |
| 68 return invH | |
| 69 | |
| 70 def project(homography, p): | |
| 71 '''Returns the coordinates of the projection of the point p | |
| 72 through homography''' | |
| 73 from numpy.core._dotblas import dot | |
| 74 from numpy.core.multiarray import array | |
| 75 from numpy.lib.function_base import insert | |
| 76 if (homography!=None) and (len(homography)>0): | |
| 77 pAugmented = insert(array(p), [2],[1], axis=0) | |
| 78 projected = dot(homography, pAugmented) | |
| 79 projected[0] /= projected[2] | |
| 80 projected[1] /= projected[2] | |
| 81 else: | |
| 82 projected = p | |
| 83 return projected[:2] | |
| 57 | 84 |
| 58 | 85 |
| 59 | 86 |
| 60 if __name__ == "__main__": | 87 if __name__ == "__main__": |
| 61 import doctest | 88 import doctest |
