@Override public int getSizeT() { return reader.getSizeT(); }
public int getSizeT() { return reader.getSizeT(); }
@Override public int getSizeT() { return reader.getSizeT(); }
@Override public int getSizeT() { return getReader().getSizeT(); }
@Override public int getSizeT() { return getReader().getSizeT(); }
/** Helper utility for constructing lengths array, used by main. */ private static final int[] getLengths(IFormatReader r) { return new int[] {r.getSizeZ(), r.getSizeC(), r.getSizeT()}; }
@Override public int getSizeT() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeT() : core.get(getCoreIndex()).sizeT; }
/** Helper utility for constructing lengths array, used by main. */ private static final int[] getLengths(IFormatReader r) { return new int[] {r.getSizeZ(), r.getSizeC(), r.getSizeT()}; }
@Override public int getSizeT() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeT() : core.get(getCoreIndex()).sizeT; }
/** * Gets the rasterized index corresponding * to the given Z, C and T coordinates (real sizes). */ public static int getIndex(IFormatReader reader, int z, int c, int t) { String order = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getIndex(order, zSize, cSize, tSize, num, z, c, t); }
/** * Gets the Z, C and T coordinates corresponding * to the given rasterized index value (real sizes). */ public static int[] getZCTCoords(IFormatReader reader, int index) { String order = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getZCTCoords(order, zSize, cSize, tSize, num, index); }
/** * Gets the Z, C and T coordinates corresponding * to the given rasterized index value (real sizes). */ public static int[] getZCTCoords(IFormatReader reader, int index) { String order = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getZCTCoords(order, zSize, cSize, tSize, num, index); }
/** * Gets the rasterized index corresponding * to the given Z, C and T coordinates (real sizes). */ public static int getIndex(IFormatReader reader, int z, int c, int t) { String order = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getIndex(order, zSize, cSize, tSize, num, z, c, t); }
/** * Converts index from the given dimension order to the reader's native one. * This method is useful for shuffling the planar order around * (rather than eassigning ZCT sizes as {@link DimensionSwapper} does). * * @throws FormatException Never actually thrown. */ public static int getReorderedIndex(IFormatReader reader, String newOrder, int newIndex) throws FormatException { String origOrder = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getReorderedIndex(origOrder, newOrder, zSize, cSize, tSize, num, newIndex); }
/** * Converts index from the given dimension order to the reader's native one. * This method is useful for shuffling the planar order around * (rather than eassigning ZCT sizes as {@link DimensionSwapper} does). * * @throws FormatException Never actually thrown. */ public static int getReorderedIndex(IFormatReader reader, String newOrder, int newIndex) throws FormatException { String origOrder = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int num = reader.getImageCount(); return getReorderedIndex(origOrder, newOrder, zSize, cSize, tSize, num, newIndex); }
public static long getMaxNonzero(IFormatReader reader) { final int siz = reader.getBitsPerPixel() / 8 * reader.getRGBChannelCount() * reader.getSizeX() * reader.getSizeY(); final byte[] buffer = new byte[siz]; final int nC = reader.getSizeC() == reader.getRGBChannelCount() ? 1 : reader.getSizeC(); final int nT = reader.getSizeT(); int z = reader.getSizeZ() - 1; for (;z>=0;z--) for (int c = 0; c < nC; c++ ) for (int t = 0; t < nT; t++) { try { reader.openBytes( reader.getIndex( z, c, t ), buffer ); } catch ( FormatException | IOException e ) { e.printStackTrace(); } if (isNonzero( buffer )) return z; } return 0l; }
private void assertSeries(int series) { reader.setSeries(series); sizeX = reader.getSizeX(); sizeY = reader.getSizeY(); sizeZ = reader.getSizeZ(); sizeC = reader.getSizeC(); sizeT = reader.getSizeT(); imageCount = reader.getImageCount(); bpp = FormatTools.getBytesPerPixel(reader.getPixelType()); planeSize = sizeX * sizeY * bpp; topHalfSize = (sizeY / 2) * sizeX * bpp; bottomHalfSize = (sizeY - (sizeY / 2)) * sizeX * bpp; topLeftQuarterSize = (sizeY / 2) * (sizeX / 2) * bpp; topRightQuarterSize = (sizeY / 2) * (sizeX - (sizeX / 2)) * bpp; bottomLeftQuarterSize = (sizeY - (sizeY / 2)) * (sizeX / 2) * bpp; bottomRightQuarterSize = (sizeY - (sizeY / 2)) * (sizeX - (sizeX / 2)) * bpp; if (!bigImage) { bigImage = sizeX * sizeY > 9000000; } }
/** * Gets the Z, C, T, ModuloZ, ModuloC and ModuloZ coordinates * corresponding to the given rasterized index value (effective * sizes). Note that the Z, C and T coordinates are not the same as * those returned by getZCTCoords(IFormatReader, int) because the * size of the modulo dimensions is taken into account. The * effective size for each of these dimensions is limited to the * total size of the dimension divided by the modulo size. */ public static int[] getZCTModuloCoords(IFormatReader reader, int index) { String order = reader.getDimensionOrder(); int zSize = reader.getSizeZ(); int cSize = reader.getEffectiveSizeC(); int tSize = reader.getSizeT(); int moduloZSize = reader.getModuloZ().length(); int moduloCSize = reader.getModuloC().length(); int moduloTSize = reader.getModuloT().length(); int num = reader.getImageCount(); return getZCTCoords(order, zSize, cSize, tSize, moduloZSize, moduloCSize, moduloTSize, num, index); }
@Test public void setId() throws Exception { srcReader = new ImageReader(); checkReader = new ImageReader(); srcReader.setId(src); checkReader.setId(check); assertEquals(srcReader.getSeriesCount(), checkReader.getSeriesCount()); for (int s=0; s<srcReader.getSeriesCount(); s++) { srcReader.setSeries(s); checkReader.setSeries(s); assertEquals(srcReader.getSizeX(), checkReader.getSizeX()); assertEquals(srcReader.getSizeY(), checkReader.getSizeY()); assertEquals(srcReader.getSizeC(), checkReader.getSizeC()); assertEquals(srcReader.getSizeZ(), checkReader.getSizeZ()); assertEquals(srcReader.getSizeT(), checkReader.getSizeT()); assertEquals(srcReader.getPixelType(), checkReader.getPixelType()); assertEquals(srcReader.isRGB(), checkReader.isRGB()); assertEquals(srcReader.getDimensionOrder(), checkReader.getDimensionOrder()); // it's OK if the endian setting is different, so don't check that } }
public static void populatePixelsOnly(MetadataStore store, IFormatReader r) { int oldSeries = r.getSeries(); for (int i=0; i<r.getSeriesCount(); i++) { r.setSeries(i); String pixelType = FormatTools.getPixelTypeString(r.getPixelType()); populatePixelsOnly(store, i, r.isLittleEndian(), r.getDimensionOrder(), pixelType, r.getSizeX(), r.getSizeY(), r.getSizeZ(), r.getSizeC(), r.getSizeT(), r.getRGBChannelCount()); if (store instanceof IPyramidStore) { for (int res=1; res<r.getResolutionCount(); res++) { r.setResolution(res); ((IPyramidStore) store).setResolutionSizeX( new PositiveInteger(r.getSizeX()), i, res); ((IPyramidStore) store).setResolutionSizeY( new PositiveInteger(r.getSizeY()), i, res); } r.setResolution(0); } } r.setSeries(oldSeries); }