h2 = (h2[0] + z * dh, h2[1] + z)
return (distance(im_l, get_grid([v1, v2], [h1, h2], size), size))
-def find(lines, size, l1, l2, bounds, hough, show_all, do_something):
+def find(lines, size, l1, l2, bounds, hough, show_all, do_something, logger):
+ logger("finding the grid")
+
l1 = line_from_angl_dist(l1, size)
l2 = line_from_angl_dist(l2, size)
v1 = V(*l1[0]) - V(*l1[1])
else:
do_something = im_debug.show
+ if verbose:
+ def logger(m):
+ print >> sys.stderr, m
+ else:
+ def logger(m):
+ pass
+
if args.manual_mode:
try:
lines = manual.find_lines(image)
lines, l1, l2, bounds, hough = pickle.load(open(filename))
print >> sys.stderr, "using cached results"
else:
- lines, l1, l2, bounds, hough = linef.find_lines(image, show_all, do_something, verbose)
+ lines, l1, l2, bounds, hough = linef.find_lines(image, do_something, logger)
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 = linef.find_lines(image, do_something, verbose)
+ lines, l1, l2, bounds, hough = linef.find_lines(image, do_something, logger)
grid, lines = gridf.find(lines, image.size, l1, l2, bounds, hough,
- show_all, do_something)
+ show_all, do_something, logger)
if show_all:
im_g = image.copy()
draw = ImageDraw.Draw(im_g)
return im_h2
-def find_lines(image, show_image, verbose):
+def find_lines(image, show_image, logger):
"""Find lines in the *image*."""
# TODO refactor into smaller functions
- if verbose:
- def logger(m):
- print >> sys.stderr, m
- else:
- def logger(m):
- pass
-
logger("preprocessing")
show_image(image, "original image")
im_h3 = filters.components(im_h3)
show_image(im_h3, "half centers")
- logger("finding the grid")
+ logger("finding the lines")
lines_m = hough2.all_lines_h(im_h3)
lines = []