X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/adb3df32314977f59a091897da1f826662853f87..9d16a67037b7082ab9d0587817e5e075d904a5da:/src/imago.py?ds=sidebyside diff --git a/src/imago.py b/src/imago.py index 2d225e5..18e7bba 100755 --- a/src/imago.py +++ b/src/imago.py @@ -11,16 +11,15 @@ import argparse import pickle try: - import Image, ImageDraw + from PIL import Image, ImageDraw except ImportError, msg: print >> sys.stderr, msg sys.exit(1) -import im_debug import linef import manual import intrsc -import gridf2 as gridf +import gridf3 as gridf import output def argument_parser(): @@ -76,11 +75,23 @@ def main(): do_something = Imsave("saved/" + args.files[0][:-4] + "_" + str(image.size[0]) + "/").save else: + import im_debug do_something = im_debug.show if verbose: - def logger(m): - print >> sys.stderr, m + import time + class Logger: + def __init__(self): + self.t = 0 + + def __call__(self, m): + t_n = time.time() + if self.t > 0: + print >> sys.stderr, "\t" + str(t_n - self.t) + print >> sys.stderr, m + self.t = t_n + logger = Logger() + else: def logger(m): pass @@ -108,6 +119,10 @@ def main(): d_file.close() else: lines, l1, l2, bounds, hough = linef.find_lines(image, do_something, logger) + #d_file = open('lines09.pickle', 'wb') + #pickle.dump(lines, d_file) + #d_file.close() #TODO delete this + grid, lines = gridf.find(lines, image.size, l1, l2, bounds, hough, show_all, do_something, logger) @@ -118,8 +133,12 @@ def main(): draw.line(l, fill=(64, 255, 64), width=1) do_something(im_g, "grid", name="grid") - board = intrsc.board(image, lines, show_all, do_something) + intersections = intrsc.b_intersects(image, lines, show_all, do_something, logger) + board = intrsc.board(image, intersections, show_all, do_something, logger) + logger("finished") + + # TODO! refactor this mess: if len(args.files) == 1: if args.sgf_output: @@ -139,7 +158,10 @@ def main(): print >> sys.stderr, "Opening", f if image.mode == 'P': image = image.convert('RGB') - board = intrsc.board(image, lines, show_all, do_something) + if image.size[0] > args.w: + image = image.resize((args.w, int((float(args.w)/image.size[0]) * + image.size[1])), Image.ANTIALIAS) + board = intrsc.board(image, intersections, show_all, do_something, logger) if args.sgf_output: game.addMove(board) else: @@ -156,14 +178,15 @@ class Imsave(): self.saving_num = 0 def save(self, image, title='', name=None): + im_format = ('.png', 'PNG') if name: - filename = self.saving_dir + name + '.jpg' + filename = self.saving_dir + name + im_format[0] else: - filename = self.saving_dir + "{0:0>2}".format(self.saving_num) + '.jpg' + filename = self.saving_dir + "{0:0>2}".format(self.saving_num) + im_format[0] self.saving_num += 1 if not os.path.isdir(self.saving_dir): os.makedirs(self.saving_dir) - image.save(filename, 'JPEG') + image.save(filename, im_format[1]) if __name__ == '__main__': try: