def compare(target): target = handle_name(target) image_png = Image.open(READ_CAPTCHA_PATH + target + '.png') matched_diff = sys.maxsize match = '' match_pos = None for i, (captcha_name, captcha_image) in enumerate( break_captcha(READ_CAPTCHA_PATH, target, image_png)): for name, image in list_individual_images(PATH_EXISTENT): if target not in handle_name(name): continue captcha_part = READ_CAPTCHA_PATH + captcha_name + '_' + str( i) + '.png' existent_image_path = PATH_EXISTENT + name diff = compare_image(existent_image_path, captcha_part) if diff < matched_diff: matched_diff = diff match = existent_image_path match_pos = i return match_pos
'tv', 'ventilador', ] captchas = set([i.split('_')[0] for i in os.listdir(READ_PATH)]) [captchas.add(c) for c in SOLVED] def completer(text, state): options = [i for i in captchas if i.startswith(text)] if state < len(options): return options[state] else: return None readline.parse_and_bind("tab: complete") readline.set_completer(completer) if __name__ == "__main__": pieces = sorted(list_individual_images(READ_PATH)) total = len(pieces) for i, (name, image) in enumerate(pieces): print(name, image) print('Count:', i, total) os.system(f'imgcat "{READ_PATH}{name}"') new_name = input('>') if new_name: new_filename = f"{SAVE_PATH}{new_name}_{random.randint(10000, 99999)}.png" image.save(new_filename)
# coding: utf-8 from PIL import Image import math import os from utils import list_individual_images, break_captcha, save_candidate_name READ_PATH = './src/images/' SAVE_PATH = './src/images_tmp/' if __name__ == '__main__': for name, image in list_individual_images(READ_PATH): lst = enumerate(break_captcha(READ_PATH, name, image)) for i, (icon_name, captcha_image) in lst: save_candidate_name(SAVE_PATH, captcha_image, icon_name, i)
if __name__ == '__main__': try: target = sys.argv[1] except IndexError: print('You need to specify a target') print('python3 compare_images.py <icon-name>') sys.exit() image_png = Image.open('./images/' + target + '.png') matched_diff = sys.maxsize match = '' match_pos = None for i, (captcha_name, captcha_image) in enumerate( break_captcha(READ_CAPTCHA_PATH, target, image_png)): for name, image in list_individual_images(PATH_EXISTENT): if remove_accents(target) not in remove_accents(name): continue captcha_part = READ_CAPTCHA_PATH + captcha_name + '_' + str( i) + '.png' existent_image_path = PATH_EXISTENT + name diff = compare_image(existent_image_path, captcha_part) if diff < matched_diff: matched_diff = diff match = existent_image_path match_pos = i # print(matched_diff, match, match_pos) print(match_pos)