From: Tomas Musil Date: Sat, 19 Jul 2014 11:58:17 +0000 (+0200) Subject: measuring performance X-Git-Url: http://git.tomasm.cz/imago.git/commitdiff_plain/33b793fe326a2706173b38d2fc4b454982fbf900 measuring performance --- diff --git a/src/gridf3.py b/src/gridf3.py index 6f6f386..105b78f 100644 --- a/src/gridf3.py +++ b/src/gridf3.py @@ -172,7 +172,6 @@ def score(lines, points): def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger): - logger("finding the grid") new_lines1 = map(lambda l: Line.from_ad(l, size), lines[0]) new_lines2 = map(lambda l: Line.from_ad(l, size), lines[1]) for l1 in new_lines1: @@ -191,6 +190,7 @@ def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger): return sqrt(x * x + y * y) for n_tries in xrange(3): + logger("finding the diagonals") model = Diagonal_model(points) diag_lines = ransac.ransac_multi(6, points, 2, 800, model=model) diag_lines = [l[0] for l in diag_lines] @@ -227,6 +227,7 @@ def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger): image_p = Image.fromstring('RGB', size_f, buff, 'raw') do_something(image_p, "finding diagonals") + logger("finding the grid") data = sum(points, []) # TODO what if lines are missing? sc = float("inf") diff --git a/src/imago.py b/src/imago.py index 93f2f3f..0dd970a 100755 --- a/src/imago.py +++ b/src/imago.py @@ -79,8 +79,19 @@ def main(): 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 @@ -122,7 +133,9 @@ 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) + board = intrsc.board(image, lines, show_all, do_something, logger) + + logger("finished") if len(args.files) == 1: @@ -143,7 +156,7 @@ def main(): print >> sys.stderr, "Opening", f if image.mode == 'P': image = image.convert('RGB') - board = intrsc.board(image, lines, show_all, do_something) + board = intrsc.board(image, lines, show_all, do_something, logger) if args.sgf_output: game.addMove(board) else: diff --git a/src/intrsc.py b/src/intrsc.py index 7455d0c..3c736d9 100644 --- a/src/intrsc.py +++ b/src/intrsc.py @@ -26,10 +26,11 @@ def dst_sort(lines): lines.sort(key=itemgetter(1)) return lines -def board(image, lines, show_all, do_something): +def board(image, lines, show_all, do_something, logger): """Compute intersections, find stone colors and return board situation.""" # TODO refactor show_all, do_something # TODO refactor this into smaller functions + logger("finding the stones") lines = [dst_sort(l) for l in lines] an0 = (sum([l[0] for l in lines[0]]) / len(lines[0]) - pi / 2) an1 = (sum([l[0] for l in lines[1]]) / len(lines[1]) - pi / 2)