コード例 #1
0
def test_n_closest_points():

    labels = cle.push(
        np.asarray([[1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3],
                    [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2,
                                                             2]]))

    reference = cle.push(np.asarray([[0, 3, 3, 1]]))

    centroids = cle.centroids_of_labels(labels)
    distance_matrix = cle.generate_distance_matrix(centroids, centroids)

    max_float = np.finfo(np.float).max

    cle.set_where_x_equals_y(distance_matrix, max_float)
    cle.set_row(distance_matrix, 0, max_float)
    cle.set_column(distance_matrix, 0, max_float)

    n_closest_points = cle.n_closest_points(distance_matrix,
                                            n=1,
                                            ignore_background=False)

    a = cle.pull(n_closest_points)
    b = cle.pull(reference)

    print(a)
    print(b)

    assert (np.allclose(a, b, 0.01))
コード例 #2
0
def test_centroids_of_labels_3d():

    labels = cle.push(np.asarray([[
        [1, 1, 2],
    ], [
        [1, 2, 2],
    ], [[3, 3, 3]]]))

    reference = cle.push(
        np.asarray([
            #     CENTROID_X(25),
            [0.33333334, 1.6666666, 1.],
            #     CENTROID_Y(26),
            [0., 0., 0.],
            #     CENTROID_Z(27),
            [0.33333334, 0.6666667, 2.],
        ]))

    result = cle.centroids_of_labels(labels)

    a = cle.pull(result)
    b = cle.pull(reference)

    print(a)
    print(b)

    assert (np.allclose(a, b, 0.0001))
コード例 #3
0
    def _make_distance_matrix(self, labels, distance_matrix=None):
        if distance_matrix is None:
            import pyclesperanto_prototype as cle
            centroids = cle.centroids_of_labels(labels)
            distance_matrix = cle.generate_distance_matrix(
                centroids, centroids)
            cle.set_column(distance_matrix, 0, 0)
            cle.set_row(distance_matrix, 0, 0)

        return distance_matrix
コード例 #4
0
def test_to_networkx():
    import pyclesperanto_prototype as cle
    labels = cle.push(np.asarray([[0, 1], [2, 3]]))
    # extract centroid positions
    centroids = cle.centroids_of_labels(labels)

    # determine a distance matrix
    distance_matrix = cle.generate_distance_matrix(centroids, centroids)

    # threshold the distance matrix
    adjacency_matrix = cle.generate_proximal_neighbors_matrix(distance_matrix,
                                                              max_distance=50)

    nx_graph = cle.to_networkx(adjacency_matrix, centroids)
    assert len(nx_graph.nodes) == 3
def test_maximum_distance_of_n_shortest_distances():

    labels = cle.push(
        np.asarray([[1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3],
                    [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2,
                                                             2]]))

    reference = cle.push(np.asarray([[0, 3, 3, 3]]))

    centroids = cle.centroids_of_labels(labels)
    distance_matrix = cle.generate_distance_matrix(centroids, centroids)

    maximum_distance_of_n_far_off_distances = cle.maximum_distance_of_n_shortest_distances(
        distance_matrix, n=1)

    a = cle.pull(maximum_distance_of_n_far_off_distances)
    b = cle.pull(reference)

    print(a)
    print(b)

    assert (np.allclose(a, b, 0.01))
def test_average_distance_of_touching_neighbors():

    labels = cle.push(
        np.asarray([[1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3], [1, 1, 1, 3, 3, 3],
                    [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2, 2], [0, 0, 0, 2, 2,
                                                             2]]))

    reference = cle.push(np.asarray([[0, 3, 3, 3]]))

    centroids = cle.centroids_of_labels(labels)
    distance_matrix = cle.generate_distance_matrix(centroids, centroids)
    touch_matrix = cle.generate_touch_matrix(labels)

    average_distance_of_touching_neighbors = cle.average_distance_of_touching_neighbors(
        distance_matrix, touch_matrix)

    a = cle.pull(average_distance_of_touching_neighbors)
    b = cle.pull(reference)

    print(a)
    print(b)

    assert (np.allclose(a, b, 0.01))