if finder is None: finder = Finder(image_filename) print "matching {} in {}".format(cropped_image, image_filename) # match cropped_image in image_filename finder.findAll(cropped_image) matches = sorted((m for m in finder), key=lambda m:m.getScore()) l = len(matches) print "found {} matches".format(l) if l == 1: m = matches[0] name = splitext(basename(cropped_image))[0] image_dict[name] = { 'filename': relpath(cropped_image, getBundlePath()), 'source_filename': relpath(image_filename, getBundlePath()), 'source': image_basename, 'x': m.getX(), 'y': m.getY(), 'w': m.getW(), 'h': m.getH() } elif l > 1: print "ERROR: multiple matches" if finder is not None: finder.destroy() # release the natives pp(image_dict) json.dump(image_dict, json_file, indent=4)