/** * 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); }
protected int reorder(int no) { if (getInputOrder() == null) return no; return FormatTools.getReorderedIndex(getInputOrder(), getDimensionOrder(), getSizeZ(), getEffectiveSizeC(), getSizeT(), getImageCount(), no); }
protected int reorder(int no) { if (getInputOrder() == null) return no; return FormatTools.getReorderedIndex(getInputOrder(), getDimensionOrder(), getSizeZ(), getEffectiveSizeC(), getSizeT(), getImageCount(), no); }
/** Reorder the given ImagePlus's stack. */ public static ImagePlus reorder(ImagePlus imp, String origOrder, String newOrder) { ImageStack s = imp.getStack(); ImageStack newStack = new ImageStack(s.getWidth(), s.getHeight()); int z = imp.getNSlices(); int c = imp.getNChannels(); int t = imp.getNFrames(); int stackSize = s.getSize(); for (int i=0; i<stackSize; i++) { int ndx = FormatTools.getReorderedIndex( origOrder, newOrder, z, c, t, stackSize, i); newStack.addSlice(s.getSliceLabel(ndx + 1), s.getProcessor(ndx + 1)); } ImagePlus p = new ImagePlus(imp.getTitle(), newStack); p.setDimensions(c, z, t); p.setCalibration(imp.getCalibration()); p.setFileInfo(imp.getOriginalFileInfo()); return p; }
/** Reorder the given ImagePlus's stack. */ public static ImagePlus reorder(ImagePlus imp, String origOrder, String newOrder) { ImageStack s = imp.getStack(); ImageStack newStack = new ImageStack(s.getWidth(), s.getHeight()); int z = imp.getNSlices(); int c = imp.getNChannels(); int t = imp.getNFrames(); int stackSize = s.getSize(); for (int i=0; i<stackSize; i++) { int ndx = FormatTools.getReorderedIndex( origOrder, newOrder, z, c, t, stackSize, i); newStack.addSlice(s.getSliceLabel(ndx + 1), s.getProcessor(ndx + 1)); } ImagePlus p = new ImagePlus(imp.getTitle(), newStack); p.setDimensions(c, z, t); p.setCalibration(imp.getCalibration()); p.setFileInfo(imp.getOriginalFileInfo()); return p; }