示例#1
0
def test_hd_and_contour_functions(A, B, voxelspace, connectivity):
    r1 = stats.hausdorff_distance(A, B, voxelspace, connectivity)
    r2 = stats.percentile_hausdorff_distance(A, B, 1, voxelspace, connectivity)
    r3 = stats.modified_hausdorff_distance(A, B, voxelspace, connectivity)
    r4 = stats.percentile_hausdorff_distance(A, B, 0.95, voxelspace,
                                             connectivity)
    r5 = stats.relative_absolute_volume_difference(A, B)
    r6 = stats.relative_absolute_volume_difference(B, A)
    r7 = stats.mean_contour_distance(A, B, voxelspace)
    r8 = stats.mean_contour_distance(B, A, voxelspace)
    r = stats.hausdorff_distance_measures(A,
                                          B,
                                          voxelspace,
                                          connectivity,
                                          percentile=0.95)
    r9 = r.distance
    r10 = r.percentile_distance
    r11 = r.modified_distance
    assert r1 == r9
    assert r4 == r10
    assert np.allclose(r3, r11)
    assert r1 == r2
    assert r7 == r8
    assert r1 != r3
    assert r1 != r4
    assert r5 != r6
    assert r1 != r5
    assert r1 != r6
    assert r1 != r7
示例#2
0
def test_hd(A, B, voxelspace, connectivity):
    hd = stats.hausdorff_distance(A, B, voxelspace, connectivity=connectivity)
    hd2 = stats.hausdorff_distance(B, A, voxelspace, connectivity=connectivity)

    assert hd == hd2

    A2 = sitk.GetImageFromArray(A.astype(np.uint8))
    B2 = sitk.GetImageFromArray(B.astype(np.uint8))
    if voxelspace is None:
        voxelspace = [1, 1]
    A2.SetSpacing(voxelspace[::-1])
    B2.SetSpacing(voxelspace[::-1])
    hdfilter = sitk.HausdorffDistanceImageFilter()
    hdfilter.Execute(A2, B2)
    hd3 = hdfilter.GetHausdorffDistance()
    hdfilter.Execute(B2, A2)
    hd4 = hdfilter.GetHausdorffDistance()

    assert np.isclose(hd, hd3)
    assert np.isclose(hd2, hd4)
示例#3
0
def test_hd(a, b, voxelspace, connectivity):
    hd = stats.hausdorff_distance(a, b, voxelspace, connectivity=connectivity)
    hd2 = stats.hausdorff_distance(b, a, voxelspace, connectivity=connectivity)

    assert hd == hd2

    a2 = SimpleITK.GetImageFromArray(a.astype(np.uint8))
    b2 = SimpleITK.GetImageFromArray(b.astype(np.uint8))
    if voxelspace is None:
        voxelspace = [1, 1]
    a2.SetSpacing(voxelspace[::-1])
    b2.SetSpacing(voxelspace[::-1])
    hdfilter = SimpleITK.HausdorffDistanceImageFilter()
    hdfilter.Execute(a2, b2)
    hd3 = hdfilter.GetHausdorffDistance()
    hdfilter.Execute(b2, a2)
    hd4 = hdfilter.GetHausdorffDistance()

    assert np.isclose(hd, hd3)
    assert np.isclose(hd2, hd4)