#!/usr/bin/env python
"""Usage: imago.py file"""

import sys
import Image
import im_debug
import filter
import hough

class UsageError(Exception):
    def __init__(self, msg):
        self.msg = msg

def main(*argv):
    """Main function of the program."""
    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 file error
    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_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")

    return 0

if __name__ == '__main__':
    sys.exit(main())
