Class RectangleROI

java.lang.Object
qupath.lib.roi.RectangleROI
All Implemented Interfaces:
Serializable, ROI

public class RectangleROI extends Object implements Serializable
ROI representing a square or rectangle (unrotated).
Author:
Pete Bankhead
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface qupath.lib.roi.interfaces.ROI

    ROI.RoiType
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected double
     
    protected double
     
    protected double
     
    protected double
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    contains(double x, double y)
    Test is the ROI contains specified x, y coordinates.
    Deprecated.
    Get a list of points representing the vertices of the ROI.
    double
    Get the area of this ROI.
    double
    Returns the height of the ROI bounding box.
    double
    Returns the width of the ROI bounding box.
    double
    Returns the x coordinate for the top left of the ROI bounding box.
    double
    Returns the y coordinate for the top left of the ROI bounding box.
    int
    Get channel index, or -1 if the ROI relates to all available channels.
    double
    Returns the x coordinate for the ROI centroid.
    double
    Returns the y coordinate for the ROI centroid.
    Default implementation using JTS.
    Returns a org.locationtech.jts.geom.Geometry object.
    Get the ImagePlane, which contains the values for c, z and t in a single object.
    double
    Get ROI length.
    int
    Returns 4 (since the rectangle is defined by its bounding box).
    Get a String representation of the kind of ROI we have, e.g.
    Get the RoiType, used to distinguish between points, lines and areas.
    double
    getScaledArea(double pixelWidth, double pixelHeight)
    Get scaled area of the ROI, for use with calibrated pixel sizes.
    double
    getScaledLength(double pixelWidth, double pixelHeight)
    Get the scaled length, for use with calibrated pixel sizes.
    Returns a java.awt.Shape representing this ROI, if possible.
    double
    Calculate the solidity, defined as ROI area / convex hull area.
    int
    Get time point index.
    int
    Get z-stack slice index.
    boolean
    Returns true if this ROI encloses an area.
    boolean
    True if the bounding box has zero area
    boolean
    Returns true if this ROI consists of line segments and does not enclose an area.
    boolean
    Returns true if this ROI represents distinct (unconnected) points.
    scale(double scaleX, double scaleY, double originX, double originY)
    Create a scaled version of this ROI.
     
    translate(double dx, double dy)
    Create a translated version of this ROI.
    Create a new ROI defining the same region on a different ImagePlane.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface qupath.lib.roi.interfaces.ROI

    scale
  • Field Details

    • x

      protected double x
    • y

      protected double y
    • x2

      protected double x2
    • y2

      protected double y2
  • Method Details

    • contains

      public boolean contains(double x, double y)
      Description copied from interface: ROI
      Test is the ROI contains specified x, y coordinates. Only Area ROIs can return true, i.e. where ROI.isArea() returns true. All other ROIs (points, lines) return false.
      Specified by:
      contains in interface ROI
      Parameters:
      x -
      y -
      Returns:
    • getRoiName

      public String getRoiName()
      Description copied from interface: ROI
      Get a String representation of the kind of ROI we have, e.g. "Rectangle", "Ellipse", "Polygon"
      Specified by:
      getRoiName in interface ROI
      Returns:
    • getNumPoints

      public int getNumPoints()
      Returns 4 (since the rectangle is defined by its bounding box).
      Specified by:
      getNumPoints in interface ROI
      Returns:
    • getScaledArea

      public double getScaledArea(double pixelWidth, double pixelHeight)
      Description copied from interface: ROI
      Get scaled area of the ROI, for use with calibrated pixel sizes.
      Specified by:
      getScaledArea in interface ROI
      Parameters:
      pixelWidth -
      pixelHeight -
      Returns:
      See Also:
    • getScaledLength

      public double getScaledLength(double pixelWidth, double pixelHeight)
      Description copied from interface: ROI
      Get the scaled length, for use with calibrated pixel sizes.
      Specified by:
      getScaledLength in interface ROI
      Parameters:
      pixelWidth -
      pixelHeight -
      Returns:
      See Also:
    • duplicate

      @Deprecated public ROI duplicate()
      Deprecated.
      Description copied from interface: ROI
      Create a duplicate of the ROI.

      This method is deprecated, since ROIs are (or are moving towards being) immutable... making it pointless to duplicate them.

      Specified by:
      duplicate in interface ROI
      Returns:
    • getAllPoints

      public List<Point2> getAllPoints()
      Description copied from interface: ROI
      Get a list of points representing the vertices of the ROI.

      This is only really well-defined for ROIs where a single set of vertices represents the shape completely; the expected output for a ROI that contains holes or disconnected regions is (currently) undefined.

      Specified by:
      getAllPoints in interface ROI
      Returns:
    • getShape

      public Shape getShape()
      Description copied from interface: ROI
      Returns a java.awt.Shape representing this ROI, if possible.

      Note that PointROI throws an UnsupportedOperationException as it cannot adequately be represented by a Shape object.

      Specified by:
      getShape in interface ROI
      Returns:
    • translate

      public ROI translate(double dx, double dy)
      Description copied from interface: ROI
      Create a translated version of this ROI. The original ROI is unchanged.
      Specified by:
      translate in interface ROI
      Parameters:
      dx - horizontal translation
      dy - vertical translation
      Returns:
    • getConvexHull

      public ROI getConvexHull()
      Default implementation using JTS. Subclasses may replace this with a more efficient implementation.
      Specified by:
      getConvexHull in interface ROI
      Returns:
    • getRoiType

      public ROI.RoiType getRoiType()
      Description copied from interface: ROI
      Get the RoiType, used to distinguish between points, lines and areas.
      Specified by:
      getRoiType in interface ROI
      Returns:
    • updatePlane

      public ROI updatePlane(ImagePlane plane)
      Description copied from interface: ROI
      Create a new ROI defining the same region on a different ImagePlane. The original ROI is unchanged.
      Specified by:
      updatePlane in interface ROI
      Parameters:
      plane - the new plane to use
      Returns:
    • scale

      public ROI scale(double scaleX, double scaleY, double originX, double originY)
      Description copied from interface: ROI
      Create a scaled version of this ROI. Coordinates are multiplied by the given scaling factors, while the original ROI is unchanged.
      Specified by:
      scale in interface ROI
      Parameters:
      scaleX - horizontal scale value
      scaleY - vertical scale value
      originX - value subtracted from each x-ordinate prior to scaling, and added back afterwards
      originY - value subtracted from each y-ordinate prior to scaling, and added back afterwards
      Returns:
      See Also:
    • getCentroidX

      public double getCentroidX()
      Description copied from interface: ROI
      Returns the x coordinate for the ROI centroid.
      Returns:
    • getCentroidY

      public double getCentroidY()
      Description copied from interface: ROI
      Returns the y coordinate for the ROI centroid.
      Returns:
    • isEmpty

      public boolean isEmpty()
      True if the bounding box has zero area
      Specified by:
      isEmpty in interface ROI
      Returns:
    • getBoundsX

      public double getBoundsX()
      Description copied from interface: ROI
      Returns the x coordinate for the top left of the ROI bounding box.
      Returns:
    • getBoundsY

      public double getBoundsY()
      Description copied from interface: ROI
      Returns the y coordinate for the top left of the ROI bounding box.
      Returns:
    • getBoundsWidth

      public double getBoundsWidth()
      Description copied from interface: ROI
      Returns the width of the ROI bounding box.
      Returns:
    • getBoundsHeight

      public double getBoundsHeight()
      Description copied from interface: ROI
      Returns the height of the ROI bounding box.
      Returns:
    • getImagePlane

      public ImagePlane getImagePlane()
      Description copied from interface: ROI
      Get the ImagePlane, which contains the values for c, z and t in a single object.
      Specified by:
      getImagePlane in interface ROI
      Returns:
    • getZ

      public int getZ()
      Description copied from interface: ROI
      Get z-stack slice index.

      Default is 0 if the image it relates to is not a z-stack.

      Specified by:
      getZ in interface ROI
      Returns:
    • getT

      public int getT()
      Description copied from interface: ROI
      Get time point index.

      Default is 0 if the image it relates to is not a time series.

      Specified by:
      getT in interface ROI
      Returns:
    • getC

      public int getC()
      Description copied from interface: ROI
      Get channel index, or -1 if the ROI relates to all available channels.

      (This is not currently used, but may be in the future)

      Specified by:
      getC in interface ROI
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isLine

      public boolean isLine()
      Description copied from interface: ROI
      Returns true if this ROI consists of line segments and does not enclose an area.
      Specified by:
      isLine in interface ROI
      Returns:
    • isArea

      public boolean isArea()
      Description copied from interface: ROI
      Returns true if this ROI encloses an area.
      Specified by:
      isArea in interface ROI
      Returns:
    • isPoint

      public boolean isPoint()
      Description copied from interface: ROI
      Returns true if this ROI represents distinct (unconnected) points.
      Specified by:
      isPoint in interface ROI
      Returns:
    • getGeometry

      public Geometry getGeometry()
      Description copied from interface: ROI
      Returns a org.locationtech.jts.geom.Geometry object.
      Specified by:
      getGeometry in interface ROI
      Returns:
    • getArea

      public double getArea()
      Description copied from interface: ROI
      Get the area of this ROI. For lines and points this returns 0.
      Specified by:
      getArea in interface ROI
      Returns:
      See Also:
    • getLength

      public double getLength()
      Description copied from interface: ROI
      Get ROI length. This is defined as
      • perimeter in the case of area ROIs
      • total length of line segments in the case of line or polyline ROIs
      • 0 in the case of point ROIs
      Specified by:
      getLength in interface ROI
      Returns:
      See Also:
    • getSolidity

      public double getSolidity()
      Description copied from interface: ROI
      Calculate the solidity, defined as ROI area / convex hull area. Returns Double.NaN if the ROI does not represent an area.
      Specified by:
      getSolidity in interface ROI
      Returns: