Java Code Examples for net.imglib2.img.Img#dimensions()
The following examples show how to use
net.imglib2.img.Img#dimensions() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OutlineTest.java From imagej-ops with BSD 2-Clause "Simplified" License | 6 votes |
/** Test basic properties of the op's output */ @Test public void testOutput() { // SETUP final long[] inputDims = { 3, 3, 3 }; final Img<BitType> img = ArrayImgs.bits(inputDims); // EXECUTE final Img<BitType> result = (Img<BitType>) ops.morphology().outline(img, Boolean.TRUE); // VERIFY assertNotNull(result); final long[] outputDims = new long[result.numDimensions()]; result.dimensions(outputDims); assertArrayEquals(inputDims, outputDims); }
Example 2
Source File: Fusion.java From Stitching with GNU General Public License v2.0 | 5 votes |
public static void main( String[] args ) { new ImageJ(); // test blending ImgFactory< FloatType > f = new ArrayImgFactory< FloatType >(); Img< FloatType > img = f.create( new int[] { 400, 400 }, new FloatType() ); Cursor< FloatType > c = img.localizingCursor(); final int numDimensions = img.numDimensions(); final double[] tmp = new double[ numDimensions ]; // for blending final long[] dimensions = new long[ numDimensions ]; img.dimensions( dimensions ); final float percentScaling = 0.2f; final double[] border = new double[ numDimensions ]; while ( c.hasNext() ) { c.fwd(); for ( int d = 0; d < numDimensions; ++d ) tmp[ d ] = c.getFloatPosition( d ); c.get().set( (float)BlendingPixelFusion.computeWeight( tmp, dimensions, border, percentScaling ) ); } ImageJFunctions.show( img ); Log.debug( "done" ); }
Example 3
Source File: FrangiVesselnessTest.java From imagej-ops with BSD 2-Clause "Simplified" License | 5 votes |
@Test public void regressionTest() throws Exception { // load in input image and expected output image. Img<FloatType> inputImg = (Img<FloatType>) ops.run( net.imagej.ops.image.equation.DefaultEquation.class, "Math.tan(0.3*p[0]) + Math.tan(0.1*p[1])"); Img<FloatType> expectedOutput = ((Img<FloatType>) openFloatImg( "Result.tif")); // create ouput image long[] dims = new long[inputImg.numDimensions()]; inputImg.dimensions(dims); Img<FloatType> actualOutput = ArrayImgs.floats(dims); // scale over which the filter operates (sensitivity) int scale = 1; // physical spacing between data points (1,1 since I got it from the // computer) double[] spacing = { 1, 1 }; // run the op ops.run(net.imagej.ops.filter.vesselness.DefaultFrangi.class, actualOutput, inputImg, spacing, scale); // compare the output image data to that stored in the file. Cursor<FloatType> cursor = Views.iterable(actualOutput).localizingCursor(); RandomAccess<FloatType> actualRA = actualOutput.randomAccess(); RandomAccess<FloatType> expectedRA = expectedOutput.randomAccess(); while (cursor.hasNext()) { cursor.fwd(); actualRA.setPosition(cursor); expectedRA.setPosition(cursor); assertEquals(expectedRA.get().get(), actualRA.get().get(), 0); } }
Example 4
Source File: ColocImgLibGadgets.java From Colocalisation_Analysis with GNU General Public License v3.0 | 5 votes |
/** * To randomize blockwise we enumerate the blocks, shuffle that list and * write the data to their new position based on the shuffled list. */ protected Img<T> generateRandomImageStack(Img<T> img, int[] blockDimensions) { int numberOfDimensions = Math.min(img.numDimensions(), blockDimensions.length); int numberOfBlocks = 0; long[] numberOfBlocksPerDimension = new long[numberOfDimensions]; for (int i = 0 ; i<numberOfDimensions; i++){ if (img.dimension(i) % blockDimensions[i] != 0){ System.out.println("sorry, for now image dims must be divisable by block size"); return null; } numberOfBlocksPerDimension[i] = img.dimension(i) / blockDimensions[i]; numberOfBlocks *= numberOfBlocksPerDimension[i]; } List<Integer> allTheBlocks = new ArrayList<Integer>(numberOfBlocks); for (int i = 0; i<numberOfBlocks; i++){ allTheBlocks.add(new Integer(i)); } Collections.shuffle(allTheBlocks, new Random()); Cursor<T> cursor = img.cursor(); // create factories for new image stack //ContainerFactory containerFactory = new ImagePlusContainerFactory(); ImgFactory<T> imgFactory = new ArrayImgFactory<T>(); //new ImageFactory<T>(cursor.getType(), containerFactory); // create a new stack for the random images final long[] dim = new long[ img.numDimensions() ]; img.dimensions(dim); Img<T> randomStack = imgFactory.create(dim, img.firstElement().createVariable()); // iterate over image data while (cursor.hasNext()) { cursor.fwd(); T type = cursor.get(); // type.getRealDouble(); } return randomStack; }