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
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)
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)