def get_close_markers(markers,centroids=None, min_distance=20):
if centroids is None:
centroids = [m['centroid']for m in markers]
centroids = np.array(centroids)
ti = np.triu_indices(centroids.shape[0], 1)
def full_idx(i):
#get the pair from condensed matrix index
#defindend inline because ti changes every time
return np.array([ti[0][i], ti[1][i]])
#calculate pairwise distance, return dense distace matrix (upper triangle)
distances = pdist(centroids,'euclidean')
close_pairs = np.where(distances<min_distance)
return full_idx(close_pairs)
评论列表
文章目录