def process_and_save_images(source_dir, dest_dir): for number, name, image in iterate_images_folder(source_dir): processed = binarize_image(image) save_dir = root(dest_dir, number) if not os.path.exists(save_dir): os.makedirs(save_dir) processed.save(root(save_dir, name))
def get_average_images(dirname): dirname = root(dirname) averages = {} for number, name, image in iterate_images_folder(dirname): averages[number] = image return averages
def execute_test_set(trainning_patterns_dir, test_set_dir): averages = get_average_images(trainning_patterns_dir) confusion = numpy.zeros(shape=(10,10)) for test_number, name, image in iterate_images_folder(test_set_dir): recognized = recognize_number_in_image(image, averages) confusion[int(test_number)][int(recognized)] += 1 probabilities = create_probabilities_matrix(confusion) return confusion, probabilities
def process_and_save_averages(source_dir, dest_dir): images_dict = {} for number, name, image in iterate_images_folder(source_dir): if not number in images_dict: images_dict[number] = [] images_dict[number].append(image) averages = calculate_image_averages(images_dict) for key in averages: save_dir = root(dest_dir, key) if not os.path.exists(save_dir): os.makedirs(save_dir) averages[key].save(root(save_dir, key + '.jpg'))
def execute_test_set(trainning_patterns_dir, test_set_dir): averages = get_average_images(trainning_patterns_dir) results = {} for test_number, name, image in iterate_images_folder(test_set_dir): recognized = recognize_number_in_image(image, averages) if not test_number in results: results[test_number] = {} results[test_number]['success'] = 0 results[test_number]['error'] = 0 if recognized == test_number: results[test_number]['success'] += 1 else: results[test_number]['error'] += 1 return results