measuring performance
authorTomas Musil <tomik.musil@gmail.com>
Sat, 19 Jul 2014 11:58:17 +0000 (13:58 +0200)
committerTomas Musil <tomik.musil@gmail.com>
Sat, 19 Jul 2014 11:58:17 +0000 (13:58 +0200)
src/gridf3.py
src/imago.py
src/intrsc.py

index 6f6f386..105b78f 100644 (file)
@@ -172,7 +172,6 @@ def score(lines, points):
 
 
 def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger):
 
 
 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:
     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):
         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]
         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")
 
             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")
         data = sum(points, [])
         # TODO what if lines are missing?
         sc = float("inf")
index 93f2f3f..0dd970a 100755 (executable)
@@ -79,8 +79,19 @@ def main():
         do_something = im_debug.show
 
     if verbose:
         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
     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")
 
                 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:
 
 
     if len(args.files) == 1:
 
@@ -143,7 +156,7 @@ def main():
                 print >> sys.stderr, "Opening", f
             if image.mode == 'P':
                 image = image.convert('RGB')
                 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:
             if args.sgf_output:
                 game.addMove(board)
             else:
index 7455d0c..3c736d9 100644 (file)
@@ -26,10 +26,11 @@ def dst_sort(lines):
     lines.sort(key=itemgetter(1))
     return 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
     """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)
     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)