Package ij.measure

Class ResultsTable

  • All Implemented Interfaces:
    Cloneable

    public class ResultsTable
    extends Object
    implements Cloneable
    This is a table for storing measurement results and strings as columns of values. Call the static ResultsTable.getResultsTable() method to get a reference to the ResultsTable used by the Analyze/Measure command.
    See Also:
    Analyzer.getResultsTable()
    • Constructor Summary

      Constructors 
      Constructor Description
      ResultsTable()
      Constructs an empty ResultsTable with the counter=0, no columns and the precision set to 3 or the "Decimal places" value in Analyze/Set Measurements if that value is higher than 3.
      ResultsTable​(Integer nRows)
      Constructs a ResultsTable with 'nRows' rows.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addColumns()
      Obsolete; the addValue() method automatically adds columns as needed.
      void addLabel​(String label)
      Adds a label to the beginning of the current row.
      void addLabel​(String columnHeading, String label)
      Deprecated.
      Replaced by setValue(String,int,String)
      void addResults()
      Adds the last row in this table to the Results window without updating it.
      void addValue​(int column, double value)
      Adds a value to the end of the given column.
      void addValue​(String column, double value)
      Adds a value to the end of the given column.
      void addValue​(String column, String value)
      Adds a string value to the end of the given column.
      boolean applyMacro​(String macro)
      Applies a macro to each row of the table; the columns are assigned variable names as given by getHeadingsAsVaribleNames().
      Object clone()
      Duplicates this ResultsTable.
      boolean columnDeleted()  
      boolean columnExists​(int column)
      Returns true if the specified column exists and is not empty.
      boolean columnExists​(String column)
      Returns 'true' if the specified column exists and is not emptly.
      static ResultsTable createTableFromImage​(ImageProcessor ip)
      Creates a ResultsTable from an image or image selection.
      static String d2s​(double n, int decimalPlaces)
      This is a version of IJ.d2s() that uses scientific notation for small numbes that would otherwise display as zero.
      void deleteColumn​(String column)
      Deletes the specified column.
      void deleteRow​(int rowIndex)
      Deletes the specified row.
      void deleteRows​(int index1, int index2)
      Deletes the specified rows.
      void disableRowLabels()
      Set the row label column to null if the column label is "Label".
      float[] getColumn​(int column)
      Returns a copy of the given column as a float array, or null if the column is empty.
      double[] getColumnAsDoubles​(int column)
      Returns a copy of the given column as a double array, or null if the column is empty.
      Variable[] getColumnAsVariables​(String column)
      Implements the Table.getColumn() macro function.
      String getColumnHeading​(int column)
      Returns the heading of the specified column or null if the column is empty.
      String getColumnHeadings()
      Returns a tab or comma delimited string containing the column headings.
      int getColumnIndex​(String heading)
      Returns the index of the first column with the given heading.
      int getCounter()
      Returns the current value of the measurement counter.
      static String getDefaultHeading​(int index)  
      int getFreeColumn​(String heading)
      Sets the heading of the the first available column and returns that column's index.
      String[] getHeadings()
      Returns the column headings as an array of Strings.
      String[] getHeadingsAsVariableNames()
      Returns the column headings; headings not suitable as variable names are converted to valid variable names by replacing non-fitting characters with underscores and adding underscores.
      String getLabel​(int row)
      Returns the label of the specified row.
      int getLastColumn()
      Returns the index of the last used column, or -1 if no columns are used.
      static ResultsTable getResultsTable()
      Returns the ResultsTable used by the Measure command.
      static TextWindow getResultsWindow()
      Returns the "Results" TextWindow.
      String getRowAsString​(int row)
      Returns a tab or comma delimited string representing the given row, where 0<=row<=size()-1.
      String getStringValue​(int column, int row)
      Returns the string value of the given column and row, where column must be less than or equal the value returned by getLastColumn() and row must be greater than or equal zero and less than the value returned by size().
      String getStringValue​(String column, int row)
      Returns the string value of the given column and row, where row must be greater than or equal zero and less than the value returned by size().
      ImageProcessor getTableAsImage()
      Returns the contents of this ResultsTable as a FloatProcessor.
      String getTitle()  
      float getValue​(int column, int row)
      Deprecated.
      replaced by getValueAsDouble
      double getValue​(String column, int row)
      Returns the value of the specified column and row, where column is the column heading and row is a number greater than or equal zero and less than value returned by size().
      double getValueAsDouble​(int column, int row)
      Returns the value of the given column and row, where column must be less than or equal the value returned by getLastColumn() and row must be greater than or equal zero and less than the value returned by size().
      void incrementCounter()
      Increments the measurement counter by one.
      static ResultsTable open​(String path)
      Opens a tab or comma delimited text file and returns it as a ResultsTable.
      static ResultsTable open2​(String path)
      Opens a tab or comma delimited text file and returns it as a ResultsTable, without requiring a try/catch statement.
      void renameColumn​(String oldName, String newName)
      Changes the name of a column.
      void reset()  
      boolean save​(String path)
      Saves this ResultsTable as a tab or comma delimited text file.
      void saveAs​(String path)  
      static boolean selectRow​(Roi roi)
      Selects the row in the "Results" table assocuiated with the specified Roi.
      void setColumn​(String column, Variable[] array)
      Implements the Table.setColumn() macro function.
      void setDecimalPlaces​(int column, int digits)  
      void setDefaultHeadings()
      Sets the headings used by the Measure command ("Area", "Mean", etc.).
      void setHeading​(int column, String heading)
      Deprecated.
      Replaced by addValue(String,double) and setValue(String,int,double)
      void setLabel​(String label, int row)
      Adds a label to the beginning of the specified row, or updates an existing lable, where 0<=row
      void setNaNEmptyCells​(boolean NaNEmptyCells)
      Set 'true' to initially fill data arrays with NaNs instead of zeros.
      void setPrecision​(int precision)
      Sets the decimal places (digits to the right of decimal point) that are used when this table is displayed.
      void setValue​(int column, int row, double value)
      Sets the value of the given column and row, where where 0<=column<=(lastRow+1 and 0<=row<=size().
      void setValue​(int column, int row, String value)
      Sets the string value of the given column and row, where where 0<=column<=(lastRow+1 and 0<=row<=size().
      void setValue​(String column, int row, double value)
      Sets the value of the given column and row, where where 0<=row<size().
      void setValue​(String column, int row, String value)
      Sets the string value of the given column and row, where where 0<=row<size().
      void show​(String windowTitle)
      Displays the contents of this ResultsTable in a window with the specified title, or updates an existing results window.
      void showRowNumbers​(boolean showNumbers)  
      int size()
      Returns the size of this ResultsTable.
      void sort​(String column)
      Sorts this table on the specified column.
      String toString()  
      void update​(int measurements, ImagePlus imp, Roi roi)  
      void updateResults()
      Updates the Results window.
    • Constructor Detail

      • ResultsTable

        public ResultsTable()
        Constructs an empty ResultsTable with the counter=0, no columns and the precision set to 3 or the "Decimal places" value in Analyze/Set Measurements if that value is higher than 3.
      • ResultsTable

        public ResultsTable​(Integer nRows)
        Constructs a ResultsTable with 'nRows' rows.
    • Method Detail

      • getResultsTable

        public static ResultsTable getResultsTable()
        Returns the ResultsTable used by the Measure command. This table must be displayed in the "Results" window.
      • getResultsWindow

        public static TextWindow getResultsWindow()
        Returns the "Results" TextWindow.
      • incrementCounter

        public void incrementCounter()
        Increments the measurement counter by one.
      • addColumns

        public void addColumns()
        Obsolete; the addValue() method automatically adds columns as needed.
        See Also:
        addValue(String, double)
      • getCounter

        public int getCounter()
        Returns the current value of the measurement counter.
      • size

        public int size()
        Returns the size of this ResultsTable.
      • addValue

        public void addValue​(int column,
                             double value)
        Adds a value to the end of the given column.
      • addValue

        public void addValue​(String column,
                             double value)
        Adds a value to the end of the given column. If the column does not exist, it is created. There is an example at:
        http://imagej.nih.gov/ij/plugins/sine-cosine.html
      • addValue

        public void addValue​(String column,
                             String value)
        Adds a string value to the end of the given column. If the column does not exist, it is created.
      • addLabel

        public void addLabel​(String label)
        Adds a label to the beginning of the current row.
      • addLabel

        public void addLabel​(String columnHeading,
                             String label)
        Deprecated.
        Replaced by setValue(String,int,String)
      • setLabel

        public void setLabel​(String label,
                             int row)
        Adds a label to the beginning of the specified row, or updates an existing lable, where 0<=rowshow() to update the window displaying the table.
      • disableRowLabels

        public void disableRowLabels()
        Set the row label column to null if the column label is "Label".
      • getColumn

        public float[] getColumn​(int column)
        Returns a copy of the given column as a float array, or null if the column is empty.
      • getColumnAsDoubles

        public double[] getColumnAsDoubles​(int column)
        Returns a copy of the given column as a double array, or null if the column is empty.
      • getTableAsImage

        public ImageProcessor getTableAsImage()
        Returns the contents of this ResultsTable as a FloatProcessor.
      • createTableFromImage

        public static ResultsTable createTableFromImage​(ImageProcessor ip)
        Creates a ResultsTable from an image or image selection.
      • columnExists

        public boolean columnExists​(int column)
        Returns true if the specified column exists and is not empty.
      • getColumnIndex

        public int getColumnIndex​(String heading)
        Returns the index of the first column with the given heading. heading. If not found, returns COLUMN_NOT_FOUND.
      • getFreeColumn

        public int getFreeColumn​(String heading)
        Sets the heading of the the first available column and returns that column's index. Returns COLUMN_IN_USE if this is a duplicate heading.
      • getValueAsDouble

        public double getValueAsDouble​(int column,
                                       int row)
        Returns the value of the given column and row, where column must be less than or equal the value returned by getLastColumn() and row must be greater than or equal zero and less than the value returned by size().
      • getValue

        public float getValue​(int column,
                              int row)
        Deprecated.
        replaced by getValueAsDouble
      • getValue

        public double getValue​(String column,
                               int row)
        Returns the value of the specified column and row, where column is the column heading and row is a number greater than or equal zero and less than value returned by size(). Throws an IllegalArgumentException if this ResultsTable does not have a column with the specified heading.
      • columnExists

        public boolean columnExists​(String column)
        Returns 'true' if the specified column exists and is not emptly.
      • getStringValue

        public String getStringValue​(String column,
                                     int row)
        Returns the string value of the given column and row, where row must be greater than or equal zero and less than the value returned by size().
      • getStringValue

        public String getStringValue​(int column,
                                     int row)
        Returns the string value of the given column and row, where column must be less than or equal the value returned by getLastColumn() and row must be greater than or equal zero and less than the value returned by size().
      • getLabel

        public String getLabel​(int row)
        Returns the label of the specified row. Returns null if the row does not have a label.
      • setValue

        public void setValue​(String column,
                             int row,
                             double value)
        Sets the value of the given column and row, where where 0<=row<size(). If the specified column does not exist, it is created. When adding columns, show() must be called to update the window that displays the table.
      • setValue

        public void setValue​(int column,
                             int row,
                             double value)
        Sets the value of the given column and row, where where 0<=column<=(lastRow+1 and 0<=row<=size().
      • setValue

        public void setValue​(String column,
                             int row,
                             String value)
        Sets the string value of the given column and row, where where 0<=row<size(). If the specified column does not exist, it is created. When adding columns, show() must be called to update the window that displays the table.
      • setValue

        public void setValue​(int column,
                             int row,
                             String value)
        Sets the string value of the given column and row, where where 0<=column<=(lastRow+1 and 0<=row<=size().
      • getColumnHeadings

        public String getColumnHeadings()
        Returns a tab or comma delimited string containing the column headings.
      • getHeadings

        public String[] getHeadings()
        Returns the column headings as an array of Strings.
      • getColumnHeading

        public String getColumnHeading​(int column)
        Returns the heading of the specified column or null if the column is empty.
      • getRowAsString

        public String getRowAsString​(int row)
        Returns a tab or comma delimited string representing the given row, where 0<=row<=size()-1.
      • getColumnAsVariables

        public Variable[] getColumnAsVariables​(String column)
        Implements the Table.getColumn() macro function.
      • setColumn

        public void setColumn​(String column,
                              Variable[] array)
        Implements the Table.setColumn() macro function.
      • setHeading

        public void setHeading​(int column,
                               String heading)
        Deprecated.
        Replaced by addValue(String,double) and setValue(String,int,double)
      • setDefaultHeadings

        public void setDefaultHeadings()
        Sets the headings used by the Measure command ("Area", "Mean", etc.).
      • setPrecision

        public void setPrecision​(int precision)
        Sets the decimal places (digits to the right of decimal point) that are used when this table is displayed.
      • setDecimalPlaces

        public void setDecimalPlaces​(int column,
                                     int digits)
      • setNaNEmptyCells

        public void setNaNEmptyCells​(boolean NaNEmptyCells)
        Set 'true' to initially fill data arrays with NaNs instead of zeros.
      • showRowNumbers

        public void showRowNumbers​(boolean showNumbers)
      • d2s

        public static String d2s​(double n,
                                 int decimalPlaces)
        This is a version of IJ.d2s() that uses scientific notation for small numbes that would otherwise display as zero.
      • deleteRow

        public void deleteRow​(int rowIndex)
        Deletes the specified row.
      • deleteRows

        public void deleteRows​(int index1,
                               int index2)
        Deletes the specified rows.
      • deleteColumn

        public void deleteColumn​(String column)
        Deletes the specified column.
      • renameColumn

        public void renameColumn​(String oldName,
                                 String newName)
        Changes the name of a column.
      • reset

        public void reset()
      • getLastColumn

        public int getLastColumn()
        Returns the index of the last used column, or -1 if no columns are used.
      • addResults

        public void addResults()
        Adds the last row in this table to the Results window without updating it.
      • updateResults

        public void updateResults()
        Updates the Results window.
      • show

        public void show​(String windowTitle)
        Displays the contents of this ResultsTable in a window with the specified title, or updates an existing results window. Opens a new window if there is no open text window with this title. The title must be "Results" if this table was obtained using ResultsTable.getResultsTable() or Analyzer.getResultsTable .
      • update

        public void update​(int measurements,
                           ImagePlus imp,
                           Roi roi)
      • open2

        public static ResultsTable open2​(String path)
        Opens a tab or comma delimited text file and returns it as a ResultsTable, without requiring a try/catch statement. Displays a file open dialog if 'path' is empty or null.
      • save

        public boolean save​(String path)
        Saves this ResultsTable as a tab or comma delimited text file. The table is saved as a CSV (comma-separated values) file if 'path' ends with ".csv". Displays a file save dialog if 'path' is empty or null. Does nothing if the table is empty. Displays an error message and returns 'false' if there is an error.
      • getDefaultHeading

        public static String getDefaultHeading​(int index)
      • clone

        public Object clone()
        Duplicates this ResultsTable.
        Overrides:
        clone in class Object
      • applyMacro

        public boolean applyMacro​(String macro)
        Applies a macro to each row of the table; the columns are assigned variable names as given by getHeadingsAsVaribleNames(). New variables starting with an uppercase letter create a new column with this name. The variable 'row' (the row index) is pre-defined. Except for the row label (if existing), currently only supports numeric values, no Strings.
        Returns:
        false in case of a macro error
      • getHeadingsAsVariableNames

        public String[] getHeadingsAsVariableNames()
        Returns the column headings; headings not suitable as variable names are converted to valid variable names by replacing non-fitting characters with underscores and adding underscores. To make unique names, underscores+numbers are added as required.
      • getTitle

        public String getTitle()
      • columnDeleted

        public boolean columnDeleted()
      • selectRow

        public static boolean selectRow​(Roi roi)
        Selects the row in the "Results" table assocuiated with the specified Roi. The row number is obtained from the roi name..
      • sort

        public void sort​(String column)
        Sorts this table on the specified column. TO DO: add string support.