import linef
import manual
import intrsc
+import gridf
def main():
"""Main function of the program."""
parser = argparse.ArgumentParser(description=__doc__)
- parser.add_argument('file', metavar='file', nargs=1,
+ parser.add_argument('files', metavar='file', nargs='+',
help="image to analyse")
parser.add_argument('-w', type=int, default=640,
help="scale image to the specified width before analysis")
verbose = args.verbose
try:
- image = Image.open(args.file[0])
+ image = Image.open(args.files[0])
except IOError, msg:
print >> sys.stderr, msg
return 1
image.size[1])), Image.ANTIALIAS)
do_something = im_debug.show
if args.saving:
- do_something = imsave("saved/" + args.file[0][:-4] + "_" +
+ do_something = imsave("saved/" + args.files[0][:-4] + "_" +
str(image.size[0]) + "/").save
if args.manual_mode:
#TODO ask user to try again
return 1
else:
- lines = linef.find_lines(image, show_all, do_something, verbose)
+ lines, l1, l2, bounds, hough = linef.find_lines(image, show_all, do_something, verbose)
+ grid, lines = gridf.find(lines, image.size, l1, l2, bounds, hough, do_something)
+ if show_all:
+ im_g = image.copy()
+ draw = ImageDraw.Draw(im_g)
+ for l in grid[0] + grid[1]:
+ draw.line(l, fill=(64, 255, 64), width=1)
+ do_something(im_g)
board = intrsc.board(image, lines, show_all, do_something)
#simple ASCII output:
for line in board:
print ' '.join(line)
+
+ if len(args.files) > 1:
+ for f in args.files[1:]:
+ try:
+ image = Image.open(f)
+ except IOError, msg:
+ print >> sys.stderr, msg
+ continue
+ if image.mode == 'P':
+ image = image.convert('RGB')
+ board = intrsc.board(image, lines, show_all, do_something)
+ for line in board:
+ print ' '.join(line)
return 0