/** Converts an RGB image into a Lab stack. */ public ImagePlus RGBToLab(ImagePlus img) { ColorProcessor cp = (ColorProcessor)img.getProcessor(); ColorSpaceConverter converter = new ColorSpaceConverter(); int[] pixels = (int[])cp.getPixels(); int w = cp.getWidth(); int h = cp.getHeight(); ImageStack stack = new ImageStack(w,h); FloatProcessor L = new FloatProcessor(w,h); FloatProcessor a = new FloatProcessor(w,h); FloatProcessor b = new FloatProcessor(w,h); stack.addSlice("L*",L); stack.addSlice("a*",a); stack.addSlice("b*",b); for (int i=0; i<pixels.length; i++) { double[] values = converter.RGBtoLAB(pixels[i]); L.setf(i,(float)values[0]); a.setf(i,(float)values[1]); b.setf(i,(float)values[2]); } ImagePlus img2 = new ImagePlus("Lab_"+img.getTitle(),stack); CompositeImage img3 = new CompositeImage(img2,IJ.GRAYSCALE); img3.resetDisplayRanges(); return img3; }
/** Converts an RGB image into a Lab stack. */ public ImagePlus RGBToLab(ImagePlus img) { ColorProcessor cp = (ColorProcessor)img.getProcessor(); ColorSpaceConverter converter = new ColorSpaceConverter(); int[] pixels = (int[])cp.getPixels(); int w = cp.getWidth(); int h = cp.getHeight(); ImageStack stack = new ImageStack(w,h); FloatProcessor L = new FloatProcessor(w,h); FloatProcessor a = new FloatProcessor(w,h); FloatProcessor b = new FloatProcessor(w,h); stack.addSlice("L*",L); stack.addSlice("a*",a); stack.addSlice("b*",b); for (int i=0; i<pixels.length; i++) { double[] values = converter.RGBtoLAB(pixels[i]); L.setf(i,(float)values[0]); a.setf(i,(float)values[1]); b.setf(i,(float)values[2]); } ImagePlus img2 = new ImagePlus("Lab_"+img.getTitle(),stack); CompositeImage img3 = new CompositeImage(img2,IJ.GRAYSCALE); img3.resetDisplayRanges(); return img3; }
((CompositeImage)this).completeReset(); if (bitDepth1!=0 && bitDepth1!=getBitDepth()) ((CompositeImage)this).resetDisplayRanges();
((CompositeImage)this).completeReset(); if (bitDepth1!=0 && bitDepth1!=getBitDepth()) ((CompositeImage)this).resetDisplayRanges();
CompositeImage ci = (CompositeImage)imp; ci.setMode(IJ.GRAYSCALE); ci.resetDisplayRanges(); ci.updateAndDraw();
CompositeImage ci = (CompositeImage)imp; ci.setMode(IJ.GRAYSCALE); ci.resetDisplayRanges(); ci.updateAndDraw();
if (!planar && fi.displayRanges==null) { if (nChannels==4) ((CompositeImage)imp).resetDisplayRanges(); else { for (int c=1; c<=3; c++) {
if (!planar && fi.displayRanges==null) { if (nChannels==4) ((CompositeImage)imp).resetDisplayRanges(); else { for (int c=1; c<=3; c++) {
((CompositeImage)projImage).copyLuts(imp); if (method==SUM_METHOD || method==SD_METHOD) ((CompositeImage)projImage).resetDisplayRanges();
if (imp.getBitDepth()!=8) { ci.reset(); ci.resetDisplayRanges();
((CompositeImage)projImage).copyLuts(imp); if (method==SUM_METHOD || method==SD_METHOD) ((CompositeImage)projImage).resetDisplayRanges();
if (imp.getBitDepth()!=8) { ci.reset(); ci.resetDisplayRanges();
CompositeImage buildImp2 = new CompositeImage(buildImp, 0); ((CompositeImage)buildImp2).copyLuts(imp); ((CompositeImage)buildImp2).resetDisplayRanges(); buildImp = buildImp2;
CompositeImage buildImp2 = new CompositeImage(buildImp, 0); ((CompositeImage)buildImp2).copyLuts(imp); ((CompositeImage)buildImp2).resetDisplayRanges(); buildImp = buildImp2;
((CompositeImage)imp).resetDisplayRanges(); ((CompositeImage)imp).updateAllChannelsAndDraw();
((CompositeImage)imp).resetDisplayRanges(); ((CompositeImage)imp).updateAllChannelsAndDraw();
CompositeImage ci = (CompositeImage)imp; ci.setMode(IJ.GRAYSCALE); ci.resetDisplayRanges(); ci.updateAndDraw();
CompositeImage ci = (CompositeImage)imp; ci.setMode(IJ.GRAYSCALE); ci.resetDisplayRanges(); ci.updateAndDraw();