public ImageRegion(final AxisType[] axes, final String[] ranges) { dimRanges = new HashMap<>(); if (axes.length != ranges.length) throw new IllegalArgumentException( "Number of axes: " + axes.length + " does not match number of ranges: " + ranges.length); for (int i = 0; i < axes.length; i++) { addRange(axes[i], ranges[i]); } }
region.put(Axes.X, new Range(new Long(x), new Long(x + w - 1))); region.put(Axes.Y, new Range(new Long(y), new Long(y + h - 1))); config.imgOpenerSetRegion(new ImageRegion(region));
/** Compiles an N-dimensional list of axis lengths from the given reader. */ @Override public long[] getDimLengths(final Metadata m, final int imageIndex, final SCIFIOConfig config) { final long[] dimLengths = m.get(imageIndex).getAxesLengths(); final ImageRegion region = config.imgOpenerGetRegion(); for (int i = 0; i < dimLengths.length; i++) { if (region != null && i < region.size()) { final Range range = region.getRange(m.get(imageIndex).getAxis(i).type()); if (range != null) { dimLengths[i] = range.size(); } } } return dimLengths; }
/** * Returns true if this loader's {@link ImageRegion} contains all of the given * indices */ private boolean inSubregion(final long[] npIndices) { boolean inSubregion = true; if (subRegion != null) { int index = 0; for (final CalibratedAxis axis : reader.getMetadata().get(0) .getAxesNonPlanar()) { inSubregion = inSubregion && inRange(subRegion.getRange(axis.type()), npIndices[index++]); } } return inSubregion; }
region.put(Axes.X, new Range(new Long(x), new Long(x + w - 1))); region.put(Axes.Y, new Range(new Long(y), new Long(y + h - 1))); config.imgOpenerSetRegion(new ImageRegion(region));
/** Compiles an N-dimensional list of axis lengths from the given reader. */ @Override public long[] getDimLengths(final Metadata m, final int imageIndex, final SCIFIOConfig config) { final long[] dimLengths = m.get(imageIndex).getAxesLengths(); final ImageRegion region = config.imgOpenerGetRegion(); for (int i = 0; i < dimLengths.length; i++) { if (region != null && i < region.size()) { final Range range = region.getRange(m.get(imageIndex).getAxis(i).type()); if (range != null) { dimLengths[i] = range.size(); } } } return dimLengths; }
/** * Returns true if this loader's {@link ImageRegion} contains all of the given * indices */ private boolean inSubregion(final long[] npIndices) { boolean inSubregion = true; if (subRegion != null) { int index = 0; for (final CalibratedAxis axis : reader.getMetadata().get(0) .getAxesNonPlanar()) { inSubregion = inSubregion && inRange(subRegion.getRange(axis.type()), npIndices[index++]); } } return inSubregion; }
private <T extends RealType<T> & NativeType<T>> void testSubRegion( final ImgFactory<T> factory) throws ImgIOException { final SCIFIOConfig config = new SCIFIOConfig(); // should get an inner left left 128x128 square AxisType[] axes = new AxisType[] { Axes.X, Axes.Y }; String[] ranges = new String[] { "128-255", "128-255" }; config.imgOpenerSetRegion(new ImageRegion(axes, ranges)); doTestSubRegion(factory, config, 128 * 128 * 5); axes = new AxisType[] { Axes.TIME }; ranges = new String[] { "0,2-4:2" }; // should get the first, 3rd and 5th T slices config.imgOpenerSetRegion(new ImageRegion(axes, ranges)); doTestSubRegion(factory, config, 512 * 512 * 3); // should get the whole image config.imgOpenerSetRegion(null); doTestSubRegion(factory, config, 512 * 512 * 5); }
@Override public long[] getConstrainedLengths(final Metadata m, final int imageIndex, final SCIFIOConfig config) { final long[] lengths = getDimLengths(m, imageIndex, config); final ImageRegion r = config.imgOpenerGetRegion(); if (r != null) { // set each dimension length = the number of entries for that axis for (final CalibratedAxis t : m.get(0).getAxes()) { final Range range = r.getRange(t.type()); if (range != null) lengths[m.get(0).getAxisIndex(t)] = range.size(); } } return lengths; }
public ImageRegion(final AxisType[] axes, final String[] ranges) { dimRanges = new HashMap<>(); if (axes.length != ranges.length) throw new IllegalArgumentException( "Number of axes: " + axes.length + " does not match number of ranges: " + ranges.length); for (int i = 0; i < axes.length; i++) { addRange(axes[i], ranges[i]); } }
@Override public long[] getConstrainedLengths(final Metadata m, final int imageIndex, final SCIFIOConfig config) { final long[] lengths = getDimLengths(m, imageIndex, config); final ImageRegion r = config.imgOpenerGetRegion(); if (r != null) { // set each dimension length = the number of entries for that axis for (final CalibratedAxis t : m.get(0).getAxes()) { final Range range = r.getRange(t.type()); if (range != null) lengths[m.get(0).getAxisIndex(t)] = range.size(); } } return lengths; }
entities *= subRegion.getRange(axis.type()).size();
entities *= subRegion.getRange(axis.type()).size();