X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/3fa492032fb6f72fc8d153c0d11ad61155e8c1b9..2b3e40c0c1702b8519531cd76df28c6ec207ac33:/imago.py diff --git a/imago.py b/imago.py index a0eabfd..3fa4f6b 100755 --- a/imago.py +++ b/imago.py @@ -17,12 +17,13 @@ import im_debug import linef import manual import intrsc +import gridf def main(): """Main function of the program.""" parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('file', metavar='file', nargs=1, + parser.add_argument('files', metavar='file', nargs='+', help="image to analyse") parser.add_argument('-w', type=int, default=640, help="scale image to the specified width before analysis") @@ -40,7 +41,7 @@ def main(): verbose = args.verbose try: - image = Image.open(args.file[0]) + image = Image.open(args.files[0]) except IOError, msg: print >> sys.stderr, msg return 1 @@ -52,7 +53,7 @@ def main(): image.size[1])), Image.ANTIALIAS) do_something = im_debug.show if args.saving: - do_something = imsave("saved/" + args.file[0][:-4] + "_" + + do_something = imsave("saved/" + args.files[0][:-4] + "_" + str(image.size[0]) + "/").save if args.manual_mode: @@ -62,13 +63,33 @@ def main(): #TODO ask user to try again return 1 else: - lines = linef.find_lines(image, show_all, do_something, verbose) + lines, l1, l2, bounds, hough = linef.find_lines(image, show_all, do_something, verbose) + grid, lines = gridf.find(lines, image.size, l1, l2, bounds, hough, do_something) + if show_all: + im_g = image.copy() + draw = ImageDraw.Draw(im_g) + for l in grid[0] + grid[1]: + draw.line(l, fill=(64, 255, 64), width=1) + do_something(im_g) board = intrsc.board(image, lines, show_all, do_something) #simple ASCII output: for line in board: print ' '.join(line) + + if len(args.files) > 1: + for f in args.files[1:]: + try: + image = Image.open(f) + except IOError, msg: + print >> sys.stderr, msg + continue + if image.mode == 'P': + image = image.convert('RGB') + board = intrsc.board(image, lines, show_all, do_something) + for line in board: + print ' '.join(line) return 0