From: Tomas Musil Date: Tue, 1 Jul 2014 19:32:55 +0000 (+0200) Subject: fix bug in gridf2 X-Git-Url: http://git.tomasm.cz/imago.git/commitdiff_plain/2ce682559a6257f5822ebfc545b4f07b43a42ce7?ds=sidebyside fix bug in gridf2 --- diff --git a/src/gridf2.py b/src/gridf2.py index ce50be7..4f276fd 100644 --- a/src/gridf2.py +++ b/src/gridf2.py @@ -29,7 +29,6 @@ def nearest(lines, point): def nearest2(lines, point): return min(map(lambda l: dst(point, points_to_line(*l)), lines)) -size = (520, 390) def generate_models(sgrid, lh): for f in [0, 1, 2, 3, 5, 7, 8, 11, 15, 17]: @@ -68,6 +67,7 @@ def test(): import matplotlib.pyplot as pyplot import time + size = (520, 390) points = pickle.load(open('edges.pickle')) lines = pickle.load(open('lines.pickle')) @@ -134,11 +134,11 @@ def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger): l1s = random.sample(l1, 2) l1s.sort(key=lambda l: l[1]) sgrid = map(lambda l:linef.line_from_angl_dist(l, size), l1s) - middle = lambda m: ((m, 0),(m, 390)) + middle = lambda m: ((m, 0),(m, size[1])) middle = middle(gm.intersection((sgrid[0][0], sgrid[1][1]), (sgrid[0][1], sgrid[1][0]))[0]) lh = (gm.intersection(sgrid[0], middle), gm.intersection(sgrid[1], middle)) - sc1_n, gridv_n = min(map(lambda g: (score(g, l1, 210), g), generate_models(sgrid, lh))) + sc1_n, gridv_n = min(map(lambda g: (score(g, l1, size[1] / 2 + 15), g), generate_models(sgrid, lh))) if sc1_n < sc1: sc1, gridv = sc1_n, gridv_n @@ -147,11 +147,11 @@ def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger): l2s = random.sample(l2, 2) l2s.sort(key=lambda l: l[1]) sgrid = map(lambda l:linef.line_from_angl_dist(l, size), l2s) - middle = lambda m: ((0, m),(520, m)) + middle = lambda m: ((0, m),(size[0], m)) middle = middle(gm.intersection((sgrid[0][0], sgrid[1][1]), (sgrid[0][1], sgrid[1][0]))[1]) lh = (gm.intersection(sgrid[0], middle), gm.intersection(sgrid[1], middle)) - sc2_n, gridh_n = min(map(lambda g: (score(g, l2, 275), g), generate_models(sgrid, lh))) + sc2_n, gridh_n = min(map(lambda g: (score(g, l2, size[0] / 2 + 15), g), generate_models(sgrid, lh))) if sc2_n < sc2: sc2, gridh = sc2_n, gridh_n gridv, gridh = lines2grid(gridv, gridh), lines2grid(gridh, gridv) diff --git a/src/intrsc.py b/src/intrsc.py index 355468c..6f78f8d 100644 --- a/src/intrsc.py +++ b/src/intrsc.py @@ -162,6 +162,8 @@ def stone_color_raw(image, (x, y)): except IndexError: pass norm = float(len(points)) + if norm == 0: + return 0, 0, 0 #TODO trow exception here color = (sum(p[0] for p in points) / norm, sum(p[1] for p in points) / norm, sum(p[2] for p in points) / norm) diff --git a/test/errors.py b/test/errors.py new file mode 100755 index 0000000..d5dc73c --- /dev/null +++ b/test/errors.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +import sys +import pickle + +res = pickle.load(open(sys.argv[1], 'r')) + +for (name, time, output, error, r_code) in res: + if r_code > 0: + print error diff --git a/test/html_results.py b/test/html_results.py old mode 100644 new mode 100755