Esempio n. 1
0
def drift_vector_from_drift_matrix(drift_matrix):
    ''' Returns a list of tuples that represents the optimized drift vector.
    :param drift_matrix: A NxN matrix that contains the measured drift between N images.
    '''
    barycenters = [tools.mean_of_list_of_tuples(row) for row in drift_matrix]
    # print 'List of centers: ', centers
    mod_matrix = [[tuple(map(operator.sub, cell, barycenters[i]))
                   for cell in row]
                  for i, row in enumerate(drift_matrix)]
    # print 'Modified drift matrix:'
    # pprint.pprint(mod_matrix)
    rot_matrix = [list(x) for x in zip(*mod_matrix)]
    # print 'Rotated matrix:'
    # pprint.pprint(rot_matrix)
    drift_vector = [tup
                    for tup in [tools.mean_of_list_of_tuples(row)
                                for row in rot_matrix
                               ]
                   ]
    return drift_vector