void add(ImagePlus imp, int value) { //IJ.log("add: "+value); ImageStack stack = imp.getStack(); for (int slice=1; slice<=stack.getSize(); slice++) { ImageProcessor ip = stack.getProcessor(slice); short[] pixels = (short[])ip.getPixels(); for (int i=0; i<pixels.length; i++) pixels[i] = (short)((pixels[i]&0xffff)+value); } }
public ContourFinder(int slice) { this.slice=slice; pixels=(byte[])labels.getStack().getProcessor(slice+1).getPixels(); paths = new GeneralPath[255]; }
private static final int computeMaxLabel(ImageStack image) { int labelMax = 0; for (int i = 1; i <= image.getSize(); i++) { ImageProcessor slice = image.getProcessor(i); labelMax = Math.max(labelMax, computeMaxLabel(slice)); } return labelMax; } }
public void doit(int PATTERN, int REPLACEMENT) { int w = image.getWidth(), h = image.getHeight(); int d = image.getStackSize(); ImageStack stack = image.getStack(); for(int z = 0; z < d; z++) { byte[] b = (byte[])stack.getProcessor(z+1).getPixels(); for(int i = 0; i < w*h; i++) { if(((int)(b[i] & 0xff)) == PATTERN) b[i] = (byte)REPLACEMENT; } } }
private static ImageStack getVolume(ImagePlus imp, int c, int t) { ImageStack stack1 = imp.getStack(); ImageStack stack2 = new ImageStack(imp.getWidth(), imp.getHeight()); if (imp.getNSlices()==1) { for (t=1; t<=imp.getNFrames(); t++) { int n = imp.getStackIndex(c, 1, t); stack2.addSlice(stack1.getProcessor(n)); } } else { for (int z=1; z<=imp.getNSlices(); z++) { int n = imp.getStackIndex(c, z, t); stack2.addSlice(stack1.getProcessor(n)); } } return stack2; }
public FloatImagePlus( final ImagePlus imp ) { super( imp.getWidth(), imp.getHeight(), imp.getNSlices(), imp.getNFrames(), imp.getNChannels(), 1 ); this.imp = imp; mirror.clear(); for ( int t = 0; t < frames; ++t ) for ( int z = 0; z < depth; ++z ) for ( int c = 0; c < channels; ++c ) mirror.add( new FloatArray( ( float[] )imp.getStack().getProcessor( imp.getStackIndex( c + 1, z + 1 , t + 1 ) ).getPixels() ) ); }
public void despeckle(){ for(int i=0; i<image.getStackSize(); i++){ currentSlide = (byte[])image.getStack(). getProcessor(i+1).getPixels(); despeckleSlide(); } }
private void writeFourChannelsWithAlpha(ImagePlus imp, String path) throws Exception { ImageStack stack = imp.getStack(); int w=imp.getWidth(), h=imp.getHeight(); ImagePlus imp2 = new ImagePlus("", new ColorProcessor(w,h)); ColorProcessor cp = (ColorProcessor)imp2.getProcessor(); for (int channel=1; channel<=4; channel++) cp.setChannel(channel, (ByteProcessor)stack.getProcessor(channel)); BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); WritableRaster raster = bi.getRaster(); raster.setDataElements(0, 0, w, h, cp.getPixels()); ImageIO.write(bi, "png", new File(path)); }
public ImagePlus call(){ final ImagePlus hsb = originalImage.duplicate(); ImageConverter ic = new ImageConverter( hsb ); ic.convertToHSB(); ImageStack is = new ImageStack(originalImage.getWidth(), originalImage.getHeight()); for(int n=1; n<=hsb.getImageStackSize(); n++) is.addSlice(hsb.getImageStack().getSliceLabel(n), hsb.getImageStack().getProcessor(n).convertToRGB()); return new ImagePlus ("HSB", is); } };
public ImageStack makeSubStack(ImageStack stack, int beginSlice, int endSlice) { ImageStack newStack = new ImageStack(stack.getWidth(), stack.getHeight(), stack.getColorModel()); for(int i = beginSlice; i < endSlice; ++i) { newStack.addSlice(stack.getProcessor(i+1)); } return newStack; }
void reverse(){ for(int iSlice = 1; iSlice < numSlices; iSlice++){ stack.addSlice(stack.getSliceLabel(1), stack.getProcessor(1),numSlices - iSlice + 1); stack.deleteSlice(1); } imp.setStack(null,stack); imp.updateAndDraw(); } void sortByLabel(){
@Override public VolatileFloatArray loadArray( final int timepoint, final int setup, final int level, final int[] dimensions, final long[] min ) throws InterruptedException { final int channel = setup + 1; final int slice = ( int ) min[ 2 ] + 1; final int frame = timepoint + 1; final float[] data = ( float[] ) imp.getStack().getProcessor( imp.getStackIndex( channel, slice, frame ) ).getPixels(); return new VolatileFloatArray( data, true ); }
/** * bag class for getting the result of the loaded classifier */ private static class LoadedClassifier { private AbstractClassifier newClassifier = null; private Instances newHeader = null; }
/** Flattens Overlay 'overlay' on slice 'slice' of ImageStack 'stack'. * Copied from OverlayCommands by Marcel Boeglin 2014.01.08. */ private void flattenImage(ImageStack stack, int slice, Overlay overlay, boolean showAll) { ImageProcessor ips = stack.getProcessor(slice); ImagePlus imp1 = new ImagePlus("temp", ips); int w = imp1.getWidth(); int h = imp1.getHeight(); for (int i=0; i<overlay.size(); i++) { Roi r = overlay.get(i); int roiPosition = r.getPosition(); //IJ.log(slice+" "+i+" "+roiPosition+" "+showAll+" "+overlay.size()); if (!(roiPosition==0 || roiPosition==slice || showAll)) r.setLocation(w, h); } imp1.setOverlay(overlay); ImagePlus imp2 = imp1.flatten(); stack.setPixels(imp2.getProcessor().getPixels(), slice); }
private void doHSRGBProjection(ImagePlus rgbImp) { ImageStack stack = rgbImp.getStack(); ImageStack stack2 = new ImageStack(stack.getWidth(), stack.getHeight()); for (int i=startSlice; i<=stopSlice; i++) stack2.addSlice(null, stack.getProcessor(i)); startSlice = 1; stopSlice = stack2.getSize(); doRGBProjection(stack2); }
private static ImageStack getVolume(ImagePlus imp, int c, int t) { ImageStack stack1 = imp.getStack(); ImageStack stack2 = new ImageStack(imp.getWidth(), imp.getHeight()); if (imp.getNSlices()==1) { for (t=1; t<=imp.getNFrames(); t++) { int n = imp.getStackIndex(c, 1, t); stack2.addSlice(stack1.getProcessor(n)); } } else { for (int z=1; z<=imp.getNSlices(); z++) { int n = imp.getStackIndex(c, z, t); stack2.addSlice(stack1.getProcessor(n)); } } return stack2; }
public void insert(ImagePlus imp1, ImagePlus imp2, int x, int y) { ImageStack stack1 = imp1.getStack(); ImageStack stack2 = imp2.getStack(); int size1 = stack1.getSize(); int size2 = stack2.getSize(); ImageProcessor ip1, ip2; for (int i=1; i<=size2; i++) { ip1 = stack1.getProcessor(i<=size1?i:size1); ip2 = stack2.getProcessor(i); ip2.insert(ip1, x, y); stack2.setPixels(ip2.getPixels(), i); } imp2.setStack(null, stack2); }
public ByteImagePlus( final ImagePlus imp ) { super( imp.getWidth(), imp.getHeight(), imp.getNSlices(), imp.getNFrames(), imp.getNChannels(), 1 ); this.imp = imp; mirror.clear(); for ( int t = 0; t < frames; ++t ) for ( int z = 0; z < depth; ++z ) for ( int c = 0; c < channels; ++c ) mirror.add( new ByteArray( ( byte[] )imp.getStack().getProcessor( imp.getStackIndex( c + 1, z + 1 , t + 1 ) ).getPixels() ) ); }
public static int getDefaultThreshold(final ImagePlus imp, final int type) { if (type != SURFACE) return 0; final ImageStack stack = imp.getStack(); final int d = imp.getStackSize(); // compute stack histogram final int[] h = stack.getProcessor(1).getHistogram(); for (int z = 1; z < d; z++) { final int[] tmp = stack.getProcessor(z + 1).getHistogram(); for (int i = 0; i < h.length; i++) h[i] += tmp[i]; } return imp.getProcessor().getAutoThreshold(h); }
private void load(int n) { ImagePlus image = WindowManager .getImage("Displacement_dim" + n); if(image == null) return; for(int z = 0; z < d; z++) { u[n][z] = (float[])image.getStack() .getProcessor(z+1).getPixels(); } }