Package ij.gui

Class PolygonRoi

java.lang.Object
ij.gui.Roi
ij.gui.PolygonRoi
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
EllipseRoi, FreehandRoi, PointRoi

public class PolygonRoi extends Roi
This class represents a polygon region of interest or polyline of interest.
See Also:
  • Field Details

    • maxPoints

      protected int maxPoints
    • xp

      protected int[] xp
    • yp

      protected int[] yp
    • xpf

      protected float[] xpf
    • ypf

      protected float[] ypf
    • xp2

      protected int[] xp2
    • yp2

      protected int[] yp2
    • nPoints

      protected int nPoints
    • xSpline

      protected float[] xSpline
    • ySpline

      protected float[] ySpline
    • splinePoints

      protected int splinePoints
  • Constructor Details

    • PolygonRoi

      public PolygonRoi(int[] xPoints, int[] yPoints, int nPoints, int type)
      Creates a new polygon or polyline ROI from x and y coordinate arrays. Type must be Roi.POLYGON, Roi.FREEROI, Roi.TRACED_ROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.
    • PolygonRoi

      public PolygonRoi(float[] xPoints, float[] yPoints, int nPoints, int type)
      Creates a new polygon or polyline ROI from float x and y arrays. Type must be Roi.POLYGON, Roi.FREEROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.
    • PolygonRoi

      public PolygonRoi(float[] xPoints, float[] yPoints, int type)
      Creates a new polygon or polyline ROI from float x and y arrays. Type must be Roi.POLYGON, Roi.FREEROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.
    • PolygonRoi

      public PolygonRoi(Polygon p, int type)
      Creates a new polygon or polyline ROI from a Polygon. Type must be Roi.POLYGON, Roi.FREEROI, Roi.TRACED_ROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.
    • PolygonRoi

      public PolygonRoi(FloatPolygon p, int type)
      Creates a new polygon or polyline ROI from a FloatPolygon. Type must be Roi.POLYGON, Roi.FREEROI, Roi.TRACED_ROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.
    • PolygonRoi

      public PolygonRoi(int[] xPoints, int[] yPoints, int nPoints, ImagePlus imp, int type)
      Deprecated.
    • PolygonRoi

      public PolygonRoi(int sx, int sy, ImagePlus imp)
      Starts the process of creating a new user-generated polygon or polyline ROI.
  • Method Details

    • draw

      public void draw(Graphics g)
      Overrides:
      draw in class Roi
    • drawPixels

      public void drawPixels(ImageProcessor ip)
      Description copied from class: Roi
      Draws the selection outline on the specified ImageProcessor.
      Overrides:
      drawPixels in class Roi
      See Also:
    • grow

      protected void grow(int sx, int sy)
      Overrides:
      grow in class Roi
    • updatePolygon

      protected void updatePolygon()
    • mouseMoved

      public void mouseMoved(MouseEvent e)
      Overrides:
      mouseMoved in class Roi
    • wipeBack

      protected void wipeBack()
    • exitConstructingMode

      public void exitConstructingMode()
    • moveHandle

      protected void moveHandle(int sx, int sy)
      Overrides:
      moveHandle in class Roi
    • mouseDownInHandle

      protected void mouseDownInHandle(int handle, int sx, int sy)
      Overrides:
      mouseDownInHandle in class Roi
    • deleteHandle

      public void deleteHandle(double ox, double oy)
    • deletePoint

      protected void deletePoint(int index)
    • fitSpline

      public void fitSpline(int evaluationPoints)
    • fitSpline

      public void fitSpline()
    • removeSplineFit

      public void removeSplineFit()
    • isSplineFit

      public boolean isSplineFit()
      Returns 'true' if this selection has been fitted with a spline.
    • fitSplineForStraightening

      public void fitSplineForStraightening()
    • getUncalibratedLength

      public double getUncalibratedLength()
    • handleMouseUp

      protected void handleMouseUp(int sx, int sy)
      With segmented selections, ignore first mouse up and finalize when user double-clicks, control-clicks or clicks in start box.
      Overrides:
      handleMouseUp in class Roi
    • addOffset

      protected void addOffset()
    • contains

      public boolean contains(int x, int y)
      Overrides:
      contains in class Roi
    • isHandle

      public int isHandle(int sx, int sy)
      Returns a handle number if the specified screen coordinates are inside or near a handle, otherwise returns -1.
      Overrides:
      isHandle in class Roi
    • getMask

      public ImageProcessor getMask()
      Description copied from class: Roi
      Always returns null for rectangular Roi's
      Overrides:
      getMask in class Roi
    • getLength

      public double getLength()
      Returns the perimeter (for ROIs) or length (for lines).
      Overrides:
      getLength in class Roi
    • getAngle

      public double getAngle()
      Returns the angle in degrees between the first two segments of this polyline.
      Overrides:
      getAngle in class Roi
    • getNCoordinates

      public int getNCoordinates()
      Returns the number of points that define this PolygonRoi.
      See Also:
    • getXCoordinates

      public int[] getXCoordinates()
      Obsolete; replaced by either getPolygon() or getFloatPolygon().
    • getYCoordinates

      public int[] getYCoordinates()
      Obsolete; replaced by either getPolygon() or getFloatPolygon().
    • getNonSplineCoordinates

      public Polygon getNonSplineCoordinates()
    • getNonSplineFloatPolygon

      public FloatPolygon getNonSplineFloatPolygon()
    • getPolygon

      public Polygon getPolygon()
      Returns this PolygonRoi as a Polygon.
      Overrides:
      getPolygon in class Roi
      See Also:
    • getFloatPolygon

      public FloatPolygon getFloatPolygon()
      Returns this polygon or polyline as float arrays.
      Overrides:
      getFloatPolygon in class Roi
    • subPixelResolution

      public boolean subPixelResolution()
      Description copied from class: Roi
      Returns true if this is a slection that supports sub-pixel resolution.
      Overrides:
      subPixelResolution in class Roi
    • getConvexHull

      public Polygon getConvexHull()
      Uses the gift wrap algorithm to find the convex hull and returns it as a Polygon.
      Overrides:
      getConvexHull in class Roi
    • getInterpolatedPolygon

      public FloatPolygon getInterpolatedPolygon(double interval, boolean smooth)
      Description copied from class: Roi
      Returns, as a FloatPolygon, an interpolated version of this selection with points spaced 'interval' pixels apart. If 'smooth' is true, traced and freehand selections are first smoothed using a 3 point running average.
      Overrides:
      getInterpolatedPolygon in class Roi
    • clipRectMargin

      protected int clipRectMargin()
      Overrides:
      clipRectMargin in class Roi
    • clone

      public Object clone()
      Returns a copy of this PolygonRoi.
      Overrides:
      clone in class Roi
    • getDrawOffset

      public boolean getDrawOffset()
      Description copied from class: Roi
      Returns true if this is a PolygonRoi that supports sub-pixel resolution and polygons are drawn on zoomed images offset down and to the right by 0.5 pixels..
      Overrides:
      getDrawOffset in class Roi
    • setDrawOffset

      public void setDrawOffset(boolean drawOffset)
      Overrides:
      setDrawOffset in class Roi
    • setLocation

      public void setLocation(double x, double y)
      Description copied from class: Roi
      Set the location of the ROI in image coordinates.
      Overrides:
      setLocation in class Roi
    • enableSubPixelResolution

      public void enableSubPixelResolution()
      Overrides:
      enableSubPixelResolution in class Roi
    • getDebugInfo

      public String getDebugInfo()
      Overrides:
      getDebugInfo in class Roi