/** * Create a {@link FinalInterval} from a parameter list comprising minimum * coordinates and size. For example, to create a 2D interval from (10, 10) * to (20, 40) use createMinSize( 10, 10, 11, 31 ). * * @param minsize * a list of <em>2*n</em> parameters to create a <em>n</em> * -dimensional interval. The first <em>n</em> parameters specify * the minimum of the interval, the next <em>n</em> parameters * specify the dimensions of the interval. * @return interval with the specified boundaries */ public static FinalInterval createMinSize( final long... minsize ) { return FinalInterval.createMinSize( minsize ); }
/** * Create a {@link FinalInterval} from a parameter list comprising minimum * coordinates and size. For example, to create a 2D interval from (10, 10) * to (20, 40) use createMinSize( 10, 10, 11, 31 ). * * @param minsize * a list of <em>2*n</em> parameters to create a <em>n</em> * -dimensional interval. The first <em>n</em> parameters specify * the minimum of the interval, the next <em>n</em> parameters * specify the dimensions of the interval. * @return interval with the specified boundaries */ public static FinalInterval createMinSize( final long... minsize ) { return FinalInterval.createMinSize( minsize ); }
/** * Tests {@link FinalInterval#createMinSize(long...)}. */ @Test public void testCreateMinSizeOneArray() { final FinalInterval bounds = FinalInterval.createMinSize( 2, 4, 8, 16, 32, 64 ); assertInterval( 2, 4, 8, 17, 35, 71, 16, 32, 64, bounds ); }
/** * Tests {@link FinalInterval#createMinSize(long[], long[])}. */ @Test public void testCreateMinSizeTwoArrays() { final long[] min = { 5, 3, 7 }; final long[] size = { 13, 17, 11 }; final FinalInterval bounds = FinalInterval.createMinSize( min, size ); assertInterval( 5, 3, 7, 17, 19, 17, 13, 17, 11, bounds ); }
private static <T> RandomAccessibleInterval<T> cropAt( final RandomAccessibleInterval<T> image, final int[] blockSize, final Localizable offset) { final int numDims = image.numDimensions(); final long[] minsize = new long[numDims * 2]; for (int d = 0; d < numDims; d++) { minsize[d] = offset.getLongPosition(d); final long shaveSize = image.dimension(d) % blockSize[d]; minsize[numDims + d] = image.dimension(d) - shaveSize; } return Views.interval(image, FinalInterval.createMinSize(minsize)); } }