/** Opens an image file using the Bio-Formats plugin. */ public static ImagePlus openUsingBioFormats(String path) { String className = "loci.plugins.BF"; String methodName = "openImagePlus"; try { Class c = IJ.getClassLoader().loadClass(className); if (c==null) return null; Class[] argClasses = new Class[1]; argClasses[0] = methodName.getClass(); Method m = c.getMethod(methodName, argClasses); Object[] args = new Object[1]; args[0] = path; Object obj = m.invoke(null, args); ImagePlus[] images = obj!=null?(ImagePlus[])obj:null; if (images==null || images.length==0) return null; ImagePlus imp = images[0]; if (imp.getStackSize()==3 && imp.getNChannels()==3 && imp.getBitDepth()==8) imp = imp.flatten(); return imp; } catch(Exception e) { } return null; }
/** Opens an image file using the Bio-Formats plugin. */ public static ImagePlus openUsingBioFormats(String path) { String className = "loci.plugins.BF"; String methodName = "openImagePlus"; try { Class c = IJ.getClassLoader().loadClass(className); if (c==null) return null; Class[] argClasses = new Class[1]; argClasses[0] = methodName.getClass(); Method m = c.getMethod(methodName, argClasses); Object[] args = new Object[1]; args[0] = path; Object obj = m.invoke(null, args); ImagePlus[] images = obj!=null?(ImagePlus[])obj:null; if (images==null || images.length==0) return null; ImagePlus imp = images[0]; if (imp.getStackSize()==3 && imp.getNChannels()==3 && imp.getBitDepth()==8) imp = imp.flatten(); return imp; } catch(Exception e) { } return null; }
int[] rgbValues = imp.flatten().getPixel((int)x,(int)y); Color color = new Color(rgbValues[0],rgbValues[1],rgbValues[2]); boolean altKeyDown = (e.getModifiers() & InputEvent.ALT_MASK) != 0;
int[] rgbValues = imp.flatten().getPixel((int)x,(int)y); Color color = new Color(rgbValues[0],rgbValues[1],rgbValues[2]); boolean altKeyDown = (e.getModifiers() & InputEvent.ALT_MASK) != 0;
Image img = imp.getImage(); if (overlay) img = imp.flatten().getImage(); g.drawImage(img, 0, 0, null); g.dispose();
Image img = imp.getImage(); if (overlay) img = imp.flatten().getImage(); g.drawImage(img, 0, 0, null); g.dispose();
public void writeImage(ImagePlus imp, String path, int transparentIndex) throws Exception { if (imp.getStackSize()==4 && imp.getBitDepth()==8 && "alpha".equalsIgnoreCase(imp.getStack().getSliceLabel(4))) writeFourChannelsWithAlpha(imp, path); else if (transparentIndex>=0 && transparentIndex<=255 && imp.getBitDepth()==8) writeImageWithTransparency(imp, path, transparentIndex); else if (imp.getOverlay()!=null && !imp.getHideOverlay()) ImageIO.write(imp.flatten().getBufferedImage(), "png", new File(path)); else if (imp.getBitDepth()==16 && !imp.isComposite() && imp.getProcessor().isDefaultLut()) write16gs(imp, path); else ImageIO.write(imp.getBufferedImage(), "png", new File(path)); }
public void writeImage(ImagePlus imp, String path, int transparentIndex) throws Exception { if (imp.getStackSize()==4 && imp.getBitDepth()==8 && "alpha".equalsIgnoreCase(imp.getStack().getSliceLabel(4))) writeFourChannelsWithAlpha(imp, path); else if (transparentIndex>=0 && transparentIndex<=255 && imp.getBitDepth()==8) writeImageWithTransparency(imp, path, transparentIndex); else if (imp.getOverlay()!=null && !imp.getHideOverlay()) ImageIO.write(imp.flatten().getBufferedImage(), "png", new File(path)); else if (imp.getBitDepth()==16 && !imp.isComposite() && imp.getProcessor().isDefaultLut()) write16gs(imp, path); else ImageIO.write(imp.getBufferedImage(), "png", new File(path)); }
private ImagePlus flatten(ImagePlus imp) { if (imp.getOverlay()!=null && !imp.getHideOverlay() && !imp.isHyperStack()) { ImagePlus imp2 = imp; Roi roi = imp.getRoi(); if (imp.getStackSize()>1) { imp.deleteRoi(); int slice = imp.getCurrentSlice(); imp = new Duplicator().run(imp, slice, slice); } imp = imp.flatten(); imp.setRoi(roi); imp2.setRoi(roi); } return imp; }
private ImagePlus flatten(ImagePlus imp) { if (imp.getOverlay()!=null && !imp.getHideOverlay() && !imp.isHyperStack()) { ImagePlus imp2 = imp; Roi roi = imp.getRoi(); if (imp.getStackSize()>1) { imp.deleteRoi(); int slice = imp.getCurrentSlice(); imp = new Duplicator().run(imp, slice, slice); } imp = imp.flatten(); imp.setRoi(roi); imp2.setRoi(roi); } return imp; }
/** 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); }
/** 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); }
/** Flattens Overlay 'overlay' on slice 'slice' corresponding to * coordinates 'z' and 't' in RGB-HyperStack 'stack' */ private void flattenImage(ImageStack stack, int slice, Overlay overlay, boolean showAll, int z, int t) { 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 cPos = r.getCPosition();// 0 or 1 (RGB-HyperStack) int zPos = r.getZPosition(); int tPos = r.getTPosition(); if (!((cPos==1 || cPos==0) && (zPos==z || zPos==0) && (tPos==t || tPos==0) || showAll)) r.setLocation(w, h); } imp1.setOverlay(overlay); ImagePlus imp2 = imp1.flatten(); stack.setPixels(imp2.getProcessor().getPixels(), slice); }
/** Flattens Overlay 'overlay' on slice 'slice' corresponding to * coordinates 'z' and 't' in RGB-HyperStack 'stack' */ private void flattenImage(ImageStack stack, int slice, Overlay overlay, boolean showAll, int z, int t) { 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 cPos = r.getCPosition();// 0 or 1 (RGB-HyperStack) int zPos = r.getZPosition(); int tPos = r.getTPosition(); if (!((cPos==1 || cPos==0) && (zPos==z || zPos==0) && (tPos==t || tPos==0) || showAll)) r.setLocation(w, h); } imp1.setOverlay(overlay); ImagePlus imp2 = imp1.flatten(); stack.setPixels(imp2.getProcessor().getPixels(), slice); }
roi.setOpacity( opacity ); aux.setOverlay( new Overlay( roi ) ); aux = aux.flatten(); is.addSlice( aux.getProcessor() );
roi.setOpacity( opacity ); aux.setOverlay( new Overlay( roi ) ); aux = aux.flatten(); is.addSlice( aux.getProcessor() );
Recorder.recordCall("imp.flattenStack();"); } else { ImagePlus imp2 = imp.flatten(); imp2.setTitle(WindowManager.getUniqueName(imp.getTitle())); imp2.show();
Recorder.recordCall("imp.flattenStack();"); } else { ImagePlus imp2 = imp.flatten(); imp2.setTitle(WindowManager.getUniqueName(imp.getTitle())); imp2.show();
imp.deleteRoi(); IJ.wait(100); ImagePlus imp2 = imp.flatten(); imp2.setTitle(imp.getTitle()+" with bar"); Overlay overlay = imp.getOverlay();