if __name__ == "__main__": args = parse_args() grid = Image.open(args.image) cell_w, cell_h = dims.celldims(grid.size, args.rows, args.cols) answer = [] gold = yaml.load(open(args.gold)) for name, mean_img in gold.items(): if 'path' in mean_img: gold[name] = Image.open(mean_img['path']) else: gold[name] = Image.open(mean_img) if args.split: gold[name] = as_black_and_white(gold[name], args.split, contrast=True) class_errs = [[gold_classify(gold, grid.crop(bounding_box( j * cell_w, i * cell_h, cell_w, cell_h))) for j in range(args.cols)] for i in range(args.rows)] output = [[min(class_errs[i][j])[1] for j in range(args.cols)] for i in range(args.rows)] map_list = [] if args.intended_csv: diff = 0 with open(args.intended_csv) as f: intended = csv.reader(f) for answer, guess in zip(intended, output): map_list.append(answer)
if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('mean_file_yml') parser.add_argument('output') parser.add_argument('-split', type=int) args = parser.parse_args() meta_data = yaml.load(open(args.mean_file_yml)) rows = 0 max_w = 0 max_h = 0 for name, data in meta_data.items(): rows += 1 data['image'] = Image.open(data['path']) data['template'] = Image.open(data['template_path']) if args.split: data['image'] = as_black_and_white(data['image'], args.split, contrast=True) data['template'] = as_black_and_white(data['template'], args.split, contrast=True) max_w = max(max_w, data['template'].size[0]) max_h = max(max_h, data['template'].size[1]) max_w = max(max_w, data['image'].size[0]) max_h = max(max_h, data['image'].size[1]) width = max_w * 2 height = rows * max_h pad = 5 out = Image.new('RGBA', (width + 2 * pad, height + 2 * pad), "white") for i, (name, data) in enumerate(meta_data.items()): out.paste(data['template'], bb(pad, pad + i * max_h, max_w, max_h)) out.paste(data['image'], bb(max_w + pad, pad + i * max_h, max_w, max_h))
def cal_align(image): image = black_and_white.as_black_and_white(image) black = pixel_distribution.black_points(image) return pixel_distribution.stats(black)