Java Code Examples for ij.process.ImageProcessor#getMinThreshold()
The following examples show how to use
ij.process.ImageProcessor#getMinThreshold() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ThresholderOrbit.java From orbit-image-analysis with GNU General Public License v3.0 | 4 votes |
public void applyThreshold(ImagePlus imp) { imp.deleteRoi(); ImageProcessor ip = imp.getProcessor(); ip.resetBinaryThreshold(); int type = imp.getType(); if (type==ImagePlus.GRAY16 || type==ImagePlus.GRAY32) { applyShortOrFloatThreshold(imp); return; } if (!imp.lock()) return; double saveMinThreshold = ip.getMinThreshold(); double saveMaxThreshold = ip.getMaxThreshold(); autoThreshold = saveMinThreshold==ImageProcessor.NO_THRESHOLD; boolean useBlackAndWhite = true; boolean noArgMacro =IJ.macroRunning() && Macro.getOptions()==null; if (skipDialog) fill1 = fill2 = useBlackAndWhite = true; else if (!(autoThreshold||noArgMacro)) { GenericDialog gd = new GenericDialog("Make Binary"); gd.addCheckbox("Thresholded pixels to foreground color", fill1); gd.addCheckbox("Remaining pixels to background color", fill2); gd.addMessage(""); gd.addCheckbox("Black foreground, white background", useBW); gd.showDialog(); if (gd.wasCanceled()) {imp.unlock(); return;} fill1 = gd.getNextBoolean(); fill2 = gd.getNextBoolean(); useBW = useBlackAndWhite = gd.getNextBoolean(); } else { fill1 = fill2 = true; convertToMask = true; } if (type!=ImagePlus.GRAY8) convertToByte(imp); ip = imp.getProcessor(); if (autoThreshold) autoThreshold(ip); else { if (Recorder.record && !Recorder.scriptMode() && (!IJ.isMacro()||Recorder.recordInMacros)) Recorder.record("setThreshold", (int)saveMinThreshold, (int)saveMaxThreshold); minThreshold = saveMinThreshold; maxThreshold = saveMaxThreshold; } if (convertToMask && ip.isColorLut()) ip.setColorModel(ip.getDefaultColorModel()); int fcolor, bcolor; ip.resetThreshold(); int savePixel = ip.getPixel(0,0); if (useBlackAndWhite) ip.setColor(Color.black); else ip.setColor(Toolbar.getForegroundColor()); ip.drawPixel(0,0); fcolor = ip.getPixel(0,0); if (useBlackAndWhite) ip.setColor(Color.white); else ip.setColor(Toolbar.getBackgroundColor()); ip.drawPixel(0,0); bcolor = ip.getPixel(0,0); ip.setColor(Toolbar.getForegroundColor()); ip.putPixel(0,0,savePixel); int[] lut = new int[256]; for (int i=0; i<256; i++) { if (i>=minThreshold && i<=maxThreshold) lut[i] = fill1?fcolor:(byte)i; else { lut[i] = fill2?bcolor:(byte)i; } } if (imp.getStackSize()>1) new StackProcessor(imp.getStack(), ip).applyTable(lut); else ip.applyTable(lut); if (convertToMask) { if (!imp.isInvertedLut()) { setInvertedLut(imp); fcolor = 255 - fcolor; bcolor = 255 - bcolor; } if (Prefs.blackBackground) ip.invertLut(); } if (fill1 && fill2 && ((fcolor==0&&bcolor==255)||(fcolor==255&&bcolor==0))) imp.getProcessor().setThreshold(fcolor, fcolor, ImageProcessor.NO_LUT_UPDATE); imp.updateAndRepaintWindow(); imp.unlock(); }
Example 2
Source File: ThresholderOrbit.java From orbit-image-analysis with GNU General Public License v3.0 | 4 votes |
void autoThreshold(ImageProcessor ip) { ip.setAutoThreshold(ImageProcessor.ISODATA2, ImageProcessor.NO_LUT_UPDATE); minThreshold = ip.getMinThreshold(); maxThreshold = ip.getMaxThreshold(); if (IJ.debugMode) IJ.log("Thresholder: "+minThreshold+"-"+maxThreshold); }