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)