X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/6adc93a079b4b252b2047c0d59f51e5973a9c469..591bcf6fd934c08f45826c0c3c93156348b0b614:/imago_pack/imago.py diff --git a/imago_pack/imago.py b/imago_pack/imago.py index c0e6202..806ddcc 100755 --- a/imago_pack/imago.py +++ b/imago_pack/imago.py @@ -18,6 +18,7 @@ import linef import manual import intrsc import gridf +import output def argument_parser(): parser = argparse.ArgumentParser(description=__doc__) @@ -35,6 +36,8 @@ def argument_parser(): help="save images instead of displaying them") parser.add_argument('-c', '--cache', dest='l_cache', action='store_true', help="use cached lines") + parser.add_argument('-S', '--sgf', dest='sgf_output', action='store_true', + help="output in SGF") parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', help="report progress") return parser @@ -79,16 +82,15 @@ def main(): if os.path.exists(filename): lines, l1, l2, bounds, hough = pickle.load(open(filename)) print >> sys.stderr, "using cached results" - im_h = None else: - lines, l1, l2, bounds, hough, im_h = linef.find_lines(image, show_all, do_something, verbose) + lines, l1, l2, bounds, hough = linef.find_lines(image, show_all, do_something, verbose) if not os.path.isdir(cache_dir): os.makedirs(cache_dir) d_file = open(filename, 'wb') pickle.dump((lines, l1, l2, bounds, hough), d_file) d_file.close() else: - lines, l1, l2, bounds, hough, im_h = 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, show_all, do_something) @@ -101,22 +103,33 @@ def main(): board = intrsc.board(image, lines, show_all, do_something) - #simple ASCII output: - for line in board: - print ' '.join(line) + if len(args.files) == 1: + + if args.sgf_output: + print board.asSGFsetPos() + else: + print board - if len(args.files) > 1: + else: + game = output.Game(19, board) #TODO size parameter for f in args.files[1:]: try: image = Image.open(f) except IOError, msg: print >> sys.stderr, msg continue + if verbose: + print >> sys.stderr, "Opening", f if image.mode == 'P': image = image.convert('RGB') board = intrsc.board(image, lines, show_all, do_something) - for line in board: - print ' '.join(line) + if args.sgf_output: + game.addMove(board) + else: + print board + + if args.sgf_output: + print game.asSGF() return 0 @@ -139,5 +152,5 @@ if __name__ == '__main__': try: sys.exit(main()) except KeyboardInterrupt: #TODO does this work? - print "Interrupted." + print >> sys.stderr, "Interrupted." sys.exit(1)