Module ij

Class ParticleAnalyzer

  • All Implemented Interfaces:
    Measurements, PlugInFilter

    public class ParticleAnalyzer
    extends java.lang.Object
    implements PlugInFilter, Measurements
    Implements ImageJ's Analyze Particles command.

            for each line do
                    for each pixel in this line do
                            if the pixel value is "inside" the threshold range then
                                    trace the edge to mark the object
                                    do the measurement
                                    fill the object with a color outside the threshold range
                            else
                                    continue the scan
            
    • Field Detail

      • SHOW_RESULTS

        public static final int SHOW_RESULTS
        Display results in the ImageJ console.
        See Also:
        Constant Field Values
      • SHOW_SUMMARY

        public static final int SHOW_SUMMARY
        Obsolete, replaced by DISPLAY_SUMMARY
        See Also:
        Constant Field Values
      • SHOW_OUTLINES

        public static final int SHOW_OUTLINES
        Display image containing outlines of measured particles.
        See Also:
        Constant Field Values
      • EXCLUDE_EDGE_PARTICLES

        public static final int EXCLUDE_EDGE_PARTICLES
        Do not measure particles touching edge of image.
        See Also:
        Constant Field Values
      • SHOW_ROI_MASKS

        public static final int SHOW_ROI_MASKS
        Display image containing grayscales masks that identify measured particles.
        See Also:
        Constant Field Values
      • SHOW_PROGRESS

        public static final int SHOW_PROGRESS
        Display a progress bar.
        See Also:
        Constant Field Values
      • CLEAR_WORKSHEET

        public static final int CLEAR_WORKSHEET
        Clear "Results" window before starting.
        See Also:
        Constant Field Values
      • RECORD_STARTS

        public static final int RECORD_STARTS
        Record starting coordinates so outline can be recreated later using doWand(x,y).
        See Also:
        Constant Field Values
      • DISPLAY_SUMMARY

        public static final int DISPLAY_SUMMARY
        Display a summary.
        See Also:
        Constant Field Values
      • SHOW_NONE

        public static final int SHOW_NONE
        Do not display particle outline image.
        See Also:
        Constant Field Values
      • INCLUDE_HOLES

        public static final int INCLUDE_HOLES
        Flood fill to ignore interior holes.
        See Also:
        Constant Field Values
      • ADD_TO_MANAGER

        public static final int ADD_TO_MANAGER
        Add particles to ROI Manager.
        See Also:
        Constant Field Values
      • SHOW_MASKS

        public static final int SHOW_MASKS
        Display image containing binary masks of measured particles.
        See Also:
        Constant Field Values
      • FOUR_CONNECTED

        public static final int FOUR_CONNECTED
        Use 4-connected particle tracing.
        See Also:
        Constant Field Values
      • IN_SITU_SHOW

        public static final int IN_SITU_SHOW
        Replace original image with masks.
        See Also:
        Constant Field Values
      • SHOW_OVERLAY_OUTLINES

        public static final int SHOW_OVERLAY_OUTLINES
        Display particle outlines as an overlay.
        See Also:
        Constant Field Values
      • SHOW_OVERLAY_MASKS

        public static final int SHOW_OVERLAY_MASKS
        Display filled particle as an overlay.
        See Also:
        Constant Field Values
      • COMPOSITE_ROIS

        public static final int COMPOSITE_ROIS
        Use composite ROIs for particles with holes.
        See Also:
        Constant Field Values
      • OVERLAY

        public static final int OVERLAY
        Use "Overlay" checkbox to display overlay.
        See Also:
        Constant Field Values
      • staticShowChoice

        protected static int staticShowChoice
      • slice

        protected int slice
      • processStack

        protected boolean processStack
      • showResults

        protected boolean showResults
      • excludeEdgeParticles

        protected boolean excludeEdgeParticles
      • showSizeDistribution

        protected boolean showSizeDistribution
      • resetCounter

        protected boolean resetCounter
      • showProgress

        protected boolean showProgress
      • recordStarts

        protected boolean recordStarts
      • displaySummary

        protected boolean displaySummary
      • floodFill

        protected boolean floodFill
      • addToManager

        protected boolean addToManager
      • inSituShow

        protected boolean inSituShow
      • compositeRois

        protected boolean compositeRois
      • showOverlay

        protected boolean showOverlay
    • Constructor Detail

      • ParticleAnalyzer

        public ParticleAnalyzer​(int options,
                                int measurements,
                                ResultsTable rt,
                                double minSize,
                                double maxSize,
                                double minCirc,
                                double maxCirc)
        Constructs a ParticleAnalyzer.
        Parameters:
        options - a flag word created by Oring SHOW_RESULTS, EXCLUDE_EDGE_PARTICLES, etc.
        measurements - a flag word created by ORing constants defined in the Measurements interface
        rt - a ResultsTable where the measurements will be stored
        minSize - the smallest particle size in pixels
        maxSize - the largest particle size in pixels
        minCirc - minimum circularity
        maxCirc - maximum circularity
         // JavaScript example
         imp = IJ.openImage("https://imagej.net/images/blobs.gif");
         IJ.setAutoThreshold(imp, "Default"); 
         rt = new ResultsTable();
         options = ParticleAnalyzer.SHOW_NONE;
         measurements = Measurements.AREA + Measurements.PERIMETER;
         pa = new ParticleAnalyzer(options, measurements, rt, 0, Double.MAX_VALUE, 0, 1);
         pa.analyze(imp);
         rt.show("Results");
         
      • ParticleAnalyzer

        public ParticleAnalyzer​(int options,
                                int measurements,
                                ResultsTable rt,
                                double minSize,
                                double maxSize)
        Constructs a ParticleAnalyzer using the default min and max circularity values (0 and 1).
      • ParticleAnalyzer

        public ParticleAnalyzer()
        Default constructor
    • Method Detail

      • setup

        public int setup​(java.lang.String arg,
                         ImagePlus imp)
        Description copied from interface: PlugInFilter
        This method is called once when the filter is loaded. 'arg', which may be blank, is the argument specified for this plugin in IJ_Props.txt or in the plugins.config file of a jar archive containing the plugin. 'imp' is the currently active image. This method should return a flag word that specifies the filters capabilities.

        For Plugin-filters specifying the PlugInFilter.FINAL_PROCESSING flag, the setup method will be called again, this time with arg = "final" after all other processing is done.

        Specified by:
        setup in interface PlugInFilter
      • showDialog

        public boolean showDialog()
        Displays a modal options dialog.
      • analyze

        public boolean analyze​(ImagePlus imp)
        Performs particle analysis on the current slice of the specified image. Returns false if there is an error.
      • analyze

        public boolean analyze​(ImagePlus imp,
                               ImageProcessor ip)
        Performs particle analysis on the specified ImagePlus and ImageProcessor. Returns false if there is an error.
      • saveResults

        protected void saveResults​(ImageStatistics stats,
                                   Roi roi)
        Saves statistics for one particle in a results table. This is a method subclasses can override.
      • drawParticle

        protected void drawParticle​(ImageProcessor drawIP,
                                    Roi roi,
                                    ImageStatistics stats,
                                    ImageProcessor mask)
        Draws a selected particle in a separate image. This is another method subclasses may want to override.
      • getOutputImage

        public ImagePlus getOutputImage()
        Returns the "Outlines", "Masks", "Elipses" or "Count Masks" image, or null if "Nothing" is selected in the "Show:" menu.
      • setHideOutputImage

        public void setHideOutputImage​(boolean hideOutputImage)
        Set 'hideOutputImage' true to not display the "Show:" image.
      • setFontSize

        public static void setFontSize​(int size)
        Sets the size of the font used to label outlines in the next particle analyzer instance.
      • setFontColor

        public static void setFontColor​(java.lang.String color)
        Sets the color ("blue", "black", etc.) of the font used to label outlines in the next particle analyzer instance.
      • setLineWidth

        public static void setLineWidth​(int width)
        Sets the outline line width for the next ParticleAnalyzer instance.
      • setRoiManager

        public static void setRoiManager​(RoiManager manager)
        Sets the RoiManager to be used by the next ParticleAnalyzer instance. There is a JavaScript example at http://imagej.nih.gov/ij/macros/js/HiddenRoiManager.js
      • setResultsTable

        public static void setResultsTable​(ResultsTable rt)
        Sets the ResultsTable to be used by the next ParticleAnalyzer instance.
      • setSummaryTable

        public static void setSummaryTable​(ResultsTable rt)
        Sets the ResultsTable to be used by the next ParticleAnalyzer instance for the summary.
      • savePreferences

        public static void savePreferences​(java.util.Properties prefs)
        Called once when ImageJ quits.