Package ij.measure

Class ResultsTable

java.lang.Object
ij.measure.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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final short
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
    Obsolete; use getLastColumn().
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Obsolete; the addValue() method automatically adds columns as needed.
    void
    Adds a label to the beginning of the current row.
    void
    addLabel(String columnHeading, String label)
    Deprecated.
    Replaced by setValue(String,int,String)
    void
    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.
    Duplicates this ResultsTable.
    boolean
    columnExists(int column)
    Returns true if the specified column exists and is not empty.
    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
    deleteRow(int row)
    Deletes the specified row.
    void
    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.
    getColumnHeading(int column)
    Returns the heading of the specified column or null if the column is empty.
    Returns a tab or comma delimited string containing the column headings.
    int
    Returns the index of the first column with the given heading.
    int
    Returns the current value of the measurement counter.
    static String
    getDefaultHeading(int index)
     
    int
    Sets the heading of the the first available column and returns that column's index.
    Returns the column headings as an array of Strings.
    getLabel(int row)
    Returns the label of the specified row.
    int
    Returns the index of the last used column, or -1 if no columns are used.
    Returns the ResultsTable used by the Measure command.
    static TextWindow
    Returns the "Results" TextWindow.
    getRowAsString(int row)
    Returns a tab or comma delimited string representing the given row, where 0<=row<=counter-1.
    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().
    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().
    Returns the contents of this ResultsTable as a FloatProcessor.
    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
    Increments the measurement counter by one.
    open(String path)
    Opens a tab or comma delimited text file and returns it as a 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
     
    boolean
    save(String path)
    Saves this ResultsTable as a tab or comma delimited text file.
    void
    saveAs(String path)
     
    void
    setDecimalPlaces(int column, int digits)
     
    void
    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<counter.
    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<=counter.
    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<=counter.
    void
    setValue(String column, int row, double value)
    Sets the value of the given column and row, where where 0<=row<counter.
    void
    setValue(String column, int row, String value)
    Sets the string value of the given column and row, where where 0<=row<counter.
    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
    Returns the size of this ResultsTable.
     
    void
    update(int measurements, ImagePlus imp, Roi roi)
     
    void
    Updates the Results window.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • 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.
  • Method Details

    • 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:
    • 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. Counter must be >0.
    • 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. Counter must be >0. 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. Counter must be >0.
    • addLabel

      public void addLabel(String label)
      Adds a label to the beginning of the current row. Counter must be >0.
    • 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<=row<counter. After labels are added or modified, call show() 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.
    • 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<counter. 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<=counter.
    • setValue

      public void setValue(String column, int row, String value)
      Sets the string value of the given column and row, where where 0<=row<counter. 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<=counter.
    • 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<=counter-1.
    • 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 row)
      Deletes the specified row.
    • 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.
    • open

      public static ResultsTable open(String path) throws IOException
      Opens a tab or comma delimited text file and returns it as a ResultsTable. Displays a file open dialog if 'path' is empty or null.
      Throws:
      IOException
      See Also:
    • 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.
    • saveAs

      public void saveAs(String path) throws IOException
      Throws:
      IOException
    • getDefaultHeading

      public static String getDefaultHeading(int index)
    • clone

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

      public String toString()
      Overrides:
      toString in class Object