@@ -42,7 +42,7 @@ public class ChamferDistanceTransform3DFloatTest
4242 * Test method for {@link inra.ijpb.label.distmap.ChamferDistanceTransform3DFloat#distanceMap(ij.ImageStack)}.
4343 */
4444 @ Test
45- public void testDistanceMap ()
45+ public void test_distanceMap_Borgefors ()
4646 {
4747 // create 3D image containing a cube
4848 ImageStack image = ImageStack .create (20 , 20 , 20 , 8 );
@@ -62,13 +62,36 @@ public void testDistanceMap()
6262 ImageStack result = algo .distanceMap (image );
6363
6464 assertEquals (32 , result .getBitDepth ());
65- // System.out.println("result:");
66- // for (int x = 0; x < 100; x++)
67- // {
68- // System.out.print(((int)result.getVoxel(x, 50, 50)) + " ");
69- // }
7065 double middle = result .getVoxel (10 , 10 , 10 );
71- assertEquals (9 , middle , .1 );
66+ assertEquals (9 , middle , 0.1 );
67+ }
68+
69+ /**
70+ * Test method for {@link inra.ijpb.label.distmap.ChamferDistanceTransform3DFloat#distanceMap(ij.ImageStack)}.
71+ */
72+ @ Test
73+ public void test_distanceMap_Svensson ()
74+ {
75+ // create 3D image containing a cube
76+ ImageStack image = ImageStack .create (20 , 20 , 20 , 8 );
77+ for (int z = 2 ; z < 19 ; z ++)
78+ {
79+ for (int y = 2 ; y < 19 ; y ++)
80+ {
81+ for (int x = 2 ; x < 19 ; x ++)
82+ {
83+ image .setVoxel (x , y , z , 255 );
84+ }
85+ }
86+ }
87+
88+ ChamferMask3D mask = ChamferMask3D .SVENSSON_3_4_5_7 ;
89+ DistanceTransform3D algo = new ChamferDistanceTransform3DFloat (mask , true );
90+ ImageStack result = algo .distanceMap (image );
91+
92+ assertEquals (32 , result .getBitDepth ());
93+ double middle = result .getVoxel (10 , 10 , 10 );
94+ assertEquals (9 , middle , 0.1 );
7295 }
7396
7497 @ Test
0 commit comments