public class ShapeRoi extends Roi
ij.gui.Roi (2D Regions Of Interest) implemented in terms of java.awt.Shape.
A ShapeRoi is constructed from a ij.gui.Roi object, or as a result of logical operators
(i.e., union, intersection, exclusive or, and subtraction) provided by this class. These operators use the package
java.awt.geom as a backend. ANGLE, asp_bk, aspect, cachedMask, center, clipboard, clipHeight, clipWidth, clipX, clipY, COMPOSITE, constrain, CONSTRUCTING, defaultFillColor, fillColor, FREELINE, FREEROI, HANDLE_SIZE, handleColor, ic, ignoreClipRect, imp, instanceColor, LINE, lineWidth, mag, MOVING, MOVING_HANDLE, nonScalable, NORMAL, NOT_PASTING, oldHeight, oldWidth, oldX, oldY, onePixelWide, OVAL, overlay, pasteMode, POINT, POLYGON, POLYLINE, previousRoi, RECTANGLE, RESIZING, ROIColor, stroke, strokeColor, TRACED_ROI, type, updateFullWindow, wideLine, xMax, yMax| Constructor and Description |
|---|
ShapeRoi(float[] shapeArray)
Constructs a ShapeRoi from an array of variable length path segments.
|
ShapeRoi(int x,
int y,
java.awt.Shape s)
Constructs a ShapeRoi from a Shape.
|
ShapeRoi(Roi r)
Constructs a ShapeRoi from an Roi.
|
ShapeRoi(java.awt.Shape s)
Constructs a ShapeRoi from a Shape.
|
| Modifier and Type | Method and Description |
|---|---|
ShapeRoi |
and(ShapeRoi sr)
Unary intersection operator.
|
java.lang.Object |
clone()
Returns a deep copy of this.
|
boolean |
contains(int x,
int y)
Checks whether the specified coordinates are inside a on this ROI's shape boundaries.
|
void |
draw(java.awt.Graphics g)
Non-destructively draws the shape of this object on the associated ImagePlus.
|
void |
drawPixels(ImageProcessor ip)
Draws the shape of this object onto the specified ImageProcessor.
|
void |
drawRoiBrush(java.awt.Graphics g) |
java.awt.Polygon |
getConvexHull() |
double[] |
getFeretValues()
Caculates "Feret" (maximum caliper width) and "MinFeret" (minimum caliper width).
|
FloatPolygon |
getFloatPolygon() |
double |
getLength()
Returns the perimeter if this ShapeRoi can be decomposed
into simple ROIs, otherwise returns zero.
|
ImageProcessor |
getMask()
Returns this ROI's mask pixels as a ByteProcessor with pixels "in" the mask
set to white (255) and pixels "outside" the mask set to black (0).
|
java.awt.Polygon |
getPolygon()
Returns the outline of this selection as a Polygon, or
null if this is a straight line selection.
|
Roi[] |
getRois()
Converts a Shape into Roi object(s).
|
java.awt.Shape |
getShape()
Returns a reference to the Shape object encapsulated by this ShapeRoi.
|
float[] |
getShapeAsArray()
Retrieves the end points and control points of the path as a float array.
|
int |
isHandle(int sx,
int sy)
Always returns -1 since ShapeRois do not have handles.
|
ShapeRoi |
not(ShapeRoi sr)
Unary subtraction operator.
|
ShapeRoi |
or(ShapeRoi sr)
Unary union operator.
|
Roi |
shapeToRoi()
Attempts to convert this ShapeRoi into a non-composite Roi.
|
ShapeRoi |
xor(ShapeRoi sr)
Unary exclusive or operator.
|
abortPaste, addRoiListener, clipRectMargin, copyAttributes, drawOverlay, drawPixels, enableSubPixelResolution, endPaste, equals, getAngle, getAngle, getBoundingRect, getBounds, getColor, getCornerDiameter, getCPosition, getCurrentPasteMode, getDebugInfo, getDefaultFillColor, getDrawOffset, getFeretsDiameter, getFillColor, getFloatAngle, getFloatBounds, getFloatHeight, getFloatWidth, getHashCode, getImage, getImageID, getInterpolatedPolygon, getInterpolatedPolygon, getInterpolatedPolygon, getMagnification, getName, getPasteMode, getPosition, getProperties, getProperty, getPropertyCount, getPrototypeOverlay, getRoundRectArcSize, getScaledStroke, getState, getStroke, getStrokeColor, getStrokeWidth, getTPosition, getType, getTypeAsString, getXBase, getYBase, getZPosition, grow, handleMouseDown, handleMouseDrag, handleMouseUp, isActiveOverlayRoi, isArea, isDrawingTool, isLine, isVisible, lineCircleIntersection, mouseDownInHandle, mouseDragged, mouseMoved, mouseReleased, moveHandle, notifyListeners, nudge, nudgeCorner, removeRoiListener, screenX, screenXD, screenY, screenYD, setColor, setCornerDiameter, setDefaultFillColor, setDrawOffset, setFillColor, setIgnoreClipRect, setImage, setInstanceColor, setLineWidth, setLocation, setLocation, setName, setNonScalable, setPasteMode, setPosition, setPosition, setProperties, setProperty, setPrototypeOverlay, setRoundRectArcSize, setStroke, setStrokeColor, setStrokeWidth, setStrokeWidth, showStatus, startPaste, subPixelResolution, temporarilyHide, toFloat, toInt, toInt, toIntR, toString, update, updateClipRect, updateWideLinepublic ShapeRoi(Roi r)
public ShapeRoi(java.awt.Shape s)
public ShapeRoi(int x,
int y,
java.awt.Shape s)
public ShapeRoi(float[] shapeArray)
public ShapeRoi or(ShapeRoi sr)
this and srpublic ShapeRoi and(ShapeRoi sr)
this and srpublic ShapeRoi xor(ShapeRoi sr)
this and srpublic ShapeRoi not(ShapeRoi sr)
this subtracted from srpublic Roi[] getRois()
| Shape type | Roi class | Roi type |
|---|---|---|
| java.awt.geom.Rectangle2D.Double | ij.gui.Roi | Roi.RECTANGLE |
| java.awt.geom.Ellipse2D.Double | ij.gui.OvalRoi | Roi.OVAL |
| java.awt.geom.Line2D.Double | ij.gui.Line | Roi.LINE |
| java.awt.Polygon | ij.gui.PolygonRoi | Roi.POLYGON |
java.awt.geom.GeneralPath is converted following these rules:
| Segment types | Number of segments |
Closed path | Value of forceAngle |
Value of forceTrace | Roi type |
|---|---|---|---|---|---|
| lines only: | 0 | ShapeRoi.NO_TYPE | |||
| 1 | ShapeRoi.NO_TYPE | ||||
| 2 | Y | ShapeRoi.NO_TYPE | |||
| N | Roi.LINE | ||||
| 3 | Y | N | Roi.POLYGON | ||
| N | Y | Roi.ANGLE | |||
| N | N | Roi.POLYLINE | |||
| 4 | Y | Roi.RECTANGLE | |||
| N | Roi.POLYLINE | ||||
| <= MAXPOLY | Y | Roi.POLYGON | |||
| N | Roi.POLYLINE | ||||
| > MAXPOLY | Y | Y | Roi.TRACED_ROI | ||
| N | Roi.FREEROI | ||||
| N | Roi.FREELINE | ||||
| anything else: | <= 2 | ShapeRoi.NO_TYPE | |||
| > 2 | ShapeRoi.SHAPE_ROI |
public Roi shapeToRoi()
public boolean contains(int x,
int y)
public double[] getFeretValues()
getFeretValues in class Roipublic double getLength()
public float[] getShapeAsArray()
public void draw(java.awt.Graphics g)
public void drawRoiBrush(java.awt.Graphics g)
public void drawPixels(ImageProcessor ip)
drawPixels in class RoiImageProcessor.setColor(java.awt.Color),
ImageProcessor.setLineWidth(int)public ImageProcessor getMask()
public java.awt.Shape getShape()
public int isHandle(int sx,
int sy)
public java.awt.Polygon getConvexHull()
getConvexHull in class Roipublic java.awt.Polygon getPolygon()
RoigetPolygon in class RoiImageProcessor.setRoi(java.awt.Rectangle),
ImageProcessor.drawPolygon(java.awt.Polygon),
ImageProcessor.fillPolygon(java.awt.Polygon)public FloatPolygon getFloatPolygon()
getFloatPolygon in class Roi