another high pass
[imago.git] / imago.py
index 1d364a5..bfa4c7a 100755 (executable)
--- a/imago.py
+++ b/imago.py
@@ -1,22 +1,50 @@
 #!/usr/bin/env python
 """Usage: imago.py file"""
 
+import sys
 import Image
 import im_debug
-import sys
+import filter
+import hough
 
-def main(argv=None):
+class UsageError(Exception):
+    def __init__(self, msg):
+        self.msg = msg
+
+def main(*argv):
     """Main function of the program."""
-    if argv is None:
-        argv = sys.argv[1]
+    try:
+        if argv is ():
+            argv = sys.argv[1:]
+            if argv == []:
+                raise UsageError('Missing filename')
+        if "--help" in argv:
+                print __doc__
+                return 0    
+    except UsageError, err:
+        print >>sys.stderr, err.msg, "(\"imago.py --help\" for help)"
+        return 2
 
-    #TODO exception on empty argument
     #TODO exception on file error
-    image = Image.open(argv)
-    im_debug.show(image, "Original image")
+    image = Image.open(argv[0])
+    #im_debug.show(image, "original image")
 
     im_l = image.convert('L')
-    im_debug.show(im_l, "ITU-R 601-2 luma transform")
+    #im_debug.show(im_l, "ITU-R 601-2 luma transform")
+
+    im_edges = filter.edge_detection(im_l)
+    #im_debug.show(im_edges, "edge detection")
+
+    im_h = filter.high_pass(im_edges, 80)
+    #im_debug.show(im_h, "high pass filter")
+
+    im_hough = hough.transform(im_h)
+    #im_debug.show(im_hough, "hough transform")
+
+    im_h2 = filter.high_pass(im_hough, 120)
+    im_debug.show(im_h2, "high pass filter")
+
+    return 0
 
 if __name__ == '__main__':
-    main()
+    sys.exit(main())