private void getByteRow(ImageStack stack, int x, int y, int z, int width1, int width2, int[] line) { byte[] pixels = (byte[])stack.getPixels(z+1); int j = x + y*width1; for (int i=0; i<width2; i++) line[i] = pixels[j++]&255; }
private void putByteRow(ImageStack stack, int y, int z, int width, int[] line) { byte[] pixels = (byte[])stack.getPixels(z+1); int j = y*width; for (int i=0; i<width; i++) pixels[j++] = (byte)line[i]; }
private void getRGBRow(ImageStack stack, int x, int y, int z, int width1, int width2, int[] line) { int[] pixels = (int[])stack.getPixels(z+1); int j = x + y*width1; for (int i=0; i<width2; i++) line[i] = pixels[j++]; }
private void putRGBRow(ImageStack stack, int y, int z, int width, int[] line) { int[] pixels = (int[])stack.getPixels(z+1); int j = y*width; for (int i=0; i<width; i++) pixels[j++] = line[i]; }
final boolean nextRow() { offset += rowStride; if (offset >= lastOffset) { if (++sliceIndex >= d) return false; offset = 0; slice = (float[])stack.getPixels(sliceIndex + 1); } return true; } }
private void putByteRow(ImageStack stack, int y, int z, int width, int[] line) { byte[] pixels = (byte[])stack.getPixels(z+1); int j = y*width; for (int i=0; i<width; i++) pixels[j++] = (byte)line[i]; }
private void getRGBRow(ImageStack stack, int x, int y, int z, int width1, int width2, int[] line) { int[] pixels = (int[])stack.getPixels(z+1); int j = x + y*width1; for (int i=0; i<width2; i++) line[i] = pixels[j++]; }
private void getByteRow(ImageStack stack, int x, int y, int z, int width1, int width2, int[] line) { byte[] pixels = (byte[])stack.getPixels(z+1); int j = x + y*width1; for (int i=0; i<width2; i++) line[i] = pixels[j++]&255; }
private void putRGBRow(ImageStack stack, int y, int z, int width, int[] line) { int[] pixels = (int[])stack.getPixels(z+1); int j = y*width; for (int i=0; i<width; i++) pixels[j++] = line[i]; }
/** * Get pixel in 3D image (no border checking) * * @param image 3D image * @param x x- coordinate * @param y y- coordinate * @param z z- coordinate (in image stacks the indexes start at 1) * @return corresponding pixel */ private byte getPixelNoCheck(ImageStack image, int x, int y, int z) { return ((byte[]) image.getPixels(z + 1))[x + y * this.width]; } /* end getPixelNocheck */
final boolean nextRow() { offset += rowStride; if (offset >= lastOffset) { if (++sliceIndex >= d) return false; offset = 0; slice = (float[])stack.getPixels(sliceIndex + 1); } return true; } }
protected ByteImage(final ImagePlus imp) { final ImageStack stack = imp.getStack(); w = imp.getWidth(); final int d = imp.getStackSize(); fData = new byte[d][]; for (int z = 0; z < d; z++) fData[z] = (byte[]) stack.getPixels(z + 1); }
/** * Returns a reference to the image data of the given channel, slice and * frame: An object of type byte-array, short-array or float-array. */ public Object getPixels(final int channel, final int slice, final int frame) { if (channel < 1 || channel > getNChannels() || slice < 1 || slice > getNSlices() || frame < 1 || frame > getNFrames()) { throw new IllegalArgumentException(outOfRange + "<" + channel + ", " + slice + ", " + frame + ">"); } return imageStack.getPixels(getImageStackIndex(channel, slice, frame)); }
protected IntImage(final ImagePlus imp) { final ImageStack stack = imp.getStack(); w = imp.getWidth(); final int d = imp.getStackSize(); fData = new int[d][]; for (int z = 0; z < d; z++) fData[z] = (int[]) stack.getPixels(z + 1); }
private static final int getAutoThreshold(final ImagePlus imp) { final int[] histo = new int[256]; final int d = imp.getStackSize(); for (int z = 0; z < d; z++) { final byte[] p = (byte[]) imp.getStack().getPixels(z + 1); for (int i = 0; i < p.length; i++) { histo[(p[i] & 0xff)]++; } } return imp.getProcessor().getAutoThreshold(histo); }
public TestData(ImagePlus imp) { w = imp.getWidth(); h = imp.getHeight(); d = imp.getStackSize(); wh = w * h; re = new float[d][]; im = new float[d][]; for(int z = 0; z < d; z++) { re[z] = (float[])imp.getStack().getPixels(z+1); im[z] = new float[wh]; } }
private static ImageStack sortStack(ImageStack stack, String[] strings) { ImageProcessor ip = stack.getProcessor(1); ImageStack stack2 = new ImageStack(ip.getWidth(), ip.getHeight(), ip.getColorModel()); for (int i=0; i<stack.getSize(); i++) { int slice = (int)Tools.parseDouble(strings[i].substring(strings[i].length()-MAX_DIGITS), 0.0); if (slice==0) return null; stack2.addSlice(sliceLabels[slice-1], stack.getPixels(slice)); } stack2.update(stack.getProcessor(1)); return stack2; }
private static ImageStack sortStack(ImageStack stack, String[] strings) { ImageProcessor ip = stack.getProcessor(1); ImageStack stack2 = new ImageStack(ip.getWidth(), ip.getHeight(), ip.getColorModel()); for (int i=0; i<stack.getSize(); i++) { int slice = (int)Tools.parseDouble(strings[i].substring(strings[i].length()-MAX_DIGITS), 0.0); if (slice==0) return null; stack2.addSlice(sliceLabels[slice-1], stack.getPixels(slice)); } stack2.update(stack.getProcessor(1)); return stack2; }