@Test public final void testDilationCochleaVolumeC6() { String fileName = getClass().getResource("/files/bat-cochlea-volume.tif").getFile(); ImagePlus imagePlus = IJ.openImage(fileName); assertNotNull(imagePlus); assertTrue(imagePlus.getStackSize() > 0); ImageStack mask = imagePlus.getStack(); // Ensure regularity of the mask mask = Morphology.opening(mask, CubeStrel.fromRadius(1)); int width = mask.getWidth(); int height = mask.getHeight(); int depth = mask.getSize(); int bitDepth = mask.getBitDepth(); ImageStack marker = ImageStack.create(width, height, depth, bitDepth); marker.setVoxel(20, 80, 50, 255); GeodesicReconstruction3DHybrid0Gray8 algo = new GeodesicReconstruction3DHybrid0Gray8(); algo.setConnectivity(6); algo.verbose = false; ImageStack result = algo.applyTo(marker, mask); for (int z = 0; z < depth; z++) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { assertEquals(result.getVoxel(x, y, z), mask.getVoxel(x, y, z), .01); } } } }
@Test public final void testErosionCochleaVolumeC26() { String fileName = getClass().getResource("/files/bat-cochlea-volume.tif").getFile(); ImagePlus imagePlus = IJ.openImage(fileName); assertNotNull(imagePlus); assertTrue(imagePlus.getStackSize() > 0); ImageStack mask = imagePlus.getStack(); // Ensure regularity of the mask mask = Morphology.opening(mask, CubeStrel.fromRadius(1)); invertGray8Stack(mask); int width = mask.getWidth(); int height = mask.getHeight(); int depth = mask.getSize(); int bitDepth = mask.getBitDepth(); ImageStack marker = ImageStack.create(width, height, depth, bitDepth); marker.setVoxel(20, 80, 50, 255); invertGray8Stack(marker); GeodesicReconstruction3DHybrid0Gray8 algo = new GeodesicReconstruction3DHybrid0Gray8(GeodesicReconstructionType.BY_EROSION); algo.setConnectivity(26); ImageStack result = algo.applyTo(marker, mask); for (int z = 0; z < depth; z++) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (Math.abs(result.getVoxel(x, y, z) - mask.getVoxel(x, y, z)) > .1) { System.out.println("x=" + x + " y=" + y + " z=" + z); System.out.println(" mask = " + (int) mask.getVoxel(x, y, z)); System.out.println(" res = " + (int) result.getVoxel(x, y, z)); assertTrue(false); } } } } }