def collect_base(): tmp_folder = r'D:\coding\senderbot\grabbed_once' for img in Grabber.get_list_of_files(tmp_folder, '.jpg'): base_directory = os.path.join(os.path.dirname(__file__), 'base') table = compare_to_base(img) img_file = os.path.join(tmp_folder, img) locate_probable(table, base_directory, img_file)
def test_all_rms(): #img = Image.open(r'C:\tempme\data\6cfabbc7b2a1f6fc9734b0cc2fffdb30.jpg') #c = ImageComparer.resize_to_grayscale(img, size=20) #c.save(r'C:\tempme\res.jpg') for f1 in Grabber.get_list_of_files(r'C:\tempme\data', '.jpg'): #print(f1, '----------') lst = [] for f2 in Grabber.get_list_of_files(r'C:\tempme\grabbed_once', '.jpg'): ff1 = Image.open(f1) ff2 = Image.open(f2) c1 = ImageComparer.resize_to_grayscale(ff1, size=30) c2 = ImageComparer.resize_to_grayscale(ff2, size=30) icmp = ImageComparer(c1, c2) lst.append(icmp.compare()) k = sorted(lst) print(k)
def try_to_guess(): tmp_folder = r'D:\coding\senderbot\try' counter = 0 newc = 0 for img in Grabber.get_list_of_files(tmp_folder, '.jpg'): img_file = os.path.join(tmp_folder, img) print 'Analyzing file: %s' % img tbl = compare_to_base(img_file) tbl2 = copy.deepcopy(tbl) tbl2 = normalize(tbl2) min_coef = 100 min_avg = 100 index = None for key in tbl: min_tmp = min(tbl[key]) min_avg_tmp = tbl2[key] if min_tmp < min_coef and min_avg_tmp < min_avg: index = key min_coef = min_tmp min_avg = min_avg_tmp with open(img_file, 'rb') as f: image_file = f.read() img_hash = hashlib.md5(image_file).hexdigest() nfl = '{0}.jpg'.format(img_hash) # new file name if min_coef < 15 and min_avg < 30: log.info('Probably: %s with min: %s and average: %s' % (index, min_coef, min_avg)) base_directory = os.path.join(os.path.dirname(__file__), 'base') result_folder = os.path.join(base_directory, index) shutil.move(img_file, os.path.join(result_folder, nfl)) counter += 1 else: log.info('Maybe new, because: %s and avg: %s' % (min_coef, min_avg)) folder_for_new_unique = r'D:\coding\senderbot\new_unique' shutil.move(img_file, os.path.join(folder_for_new_unique, nfl)) newc += 1 log.info('added already known pictures to base: %s' % counter) log.info('unique pictures here: %s' % newc)