コード例 #1
0
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))
コード例 #2
0
def get_average_images(dirname):
    dirname = root(dirname)

    averages = {}

    for number, name, image in iterate_images_folder(dirname):
        averages[number] = image

    return averages
コード例 #3
0
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
コード例 #4
0
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'))
コード例 #5
0
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