Class Roi
- java.lang.Object
-
- ij.gui.Roi
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterable<Point>
public class Roi extends Object implements Cloneable, Serializable, Iterable<Point>
A rectangular region of interest and superclass for the other ROI classes. This class implementsIterable<Point>
and can thus be used to iterate over the contained coordinates. Usage example:Roi roi = ...; for (Point p : roi) { // process p }
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
ANGLE
protected double
asp_bk
protected boolean
aspect
protected ImageProcessor
cachedMask
protected boolean
center
protected ImagePlus
clipboard
protected int
clipHeight
protected int
clipWidth
protected int
clipX
protected int
clipY
static int
COMPOSITE
protected boolean
constrain
static int
CONSTRUCTING
protected static Color
defaultFillColor
static int
FERET_ARRAY_POINTOFFSET
static int
FERET_ARRAYSIZE
protected Color
fillColor
protected double
flattenScale
static int
FREELINE
static int
FREEROI
static int
HANDLE_SIZE
protected Color
handleColor
protected ImageCanvas
ic
protected boolean
ignoreClipRect
protected ImagePlus
imp
protected Color
instanceColor
static int
LINE
protected static int
lineWidth
protected double
mag
static int
MOVING
static int
MOVING_HANDLE
protected boolean
nonScalable
static int
NORMAL
static int
NOT_PASTING
protected int
oldHeight
protected int
oldWidth
protected int
oldX
protected int
oldY
static BasicStroke
onePixelWide
static int
OVAL
protected boolean
overlay
protected static int
pasteMode
static int
POINT
static int
POLYGON
static int
POLYLINE
static Roi
previousRoi
static int
RECTANGLE
static int
RESIZING
protected static Color
ROIColor
protected BasicStroke
stroke
protected Color
strokeColor
static int
TRACED_ROI
protected int
type
protected boolean
updateFullWindow
protected boolean
wideLine
protected int
xMax
protected int
yMax
-
Constructor Summary
Constructors Constructor Description Roi(double x, double y, double width, double height)
Creates a rectangular ROI using double arguments.Roi(double x, double y, double width, double height, int cornerDiameter)
Creates a rounded rectangular ROI using double arguments.Roi(int x, int y, int width, int height)
Creates a rectangular ROI.Roi(int x, int y, int width, int height, int cornerDiameter)
Creates a new rounded rectangular ROI.Roi(int x, int y, int width, int height, ImagePlus imp)
Deprecated.Roi(int sx, int sy, ImagePlus imp)
Starts the process of creating a user-defined rectangular Roi, where sx and sy are the starting screen coordinates.Roi(int sx, int sy, ImagePlus imp, int cornerDiameter)
Starts the process of creating a user-defined rectangular Roi, where sx and sy are the starting screen coordinates.Roi(Rectangle r)
Creates a new rectangular Roi.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
abortModification(ImagePlus imp)
Aborts constructing or modifying the roi (called by the ImageJ class on escape)void
abortPaste()
static void
addRoiListener(RoiListener listener)
protected int
clipRectMargin()
Object
clone()
Returns a copy of this roi.boolean
contains(int x, int y)
Returns whether the center of pixel (x,y) is contained in the Roi.boolean
containsPoint(double x, double y)
Returns whether coordinate (x,y) is contained in the Roi.void
copyAttributes(Roi roi2)
Copy the attributes (outline color, fill color, outline width) of 'roi2' to the this selection.void
draw(Graphics g)
void
drawOverlay(Graphics g)
void
drawPixels()
Deprecated.replaced by drawPixels(ImageProcessor)void
drawPixels(ImageProcessor ip)
Draws the selection outline on the specified ImageProcessor.void
enableSubPixelResolution()
void
endPaste()
boolean
equals(Object obj)
Checks whether two rectangles are equal.double
getAngle()
Overridden by PolygonRoi (angle between first two points), TextRoi (text angle) and Line (line angle).double
getAngle(int x1, int y1, int x2, int y2)
Returns the angle in degrees between the specified line and a horizontal line.Rectangle
getBoundingRect()
Deprecated.replaced by getBounds()Rectangle
getBounds()
Return this selection's bounding rectangle.static Color
getColor()
Returns the default (global) color used for drawing ROI outlines.FloatPolygon
getContainedFloatPoints()
Returns the coordinates of the pixels inside this ROI as a FloatPolygon.Point[]
getContainedPoints()
Returns the coordinates of the pixels inside this ROI as an array of Points.double[]
getContourCentroid()
Polygon
getConvexHull()
Returns the convex hull of this Roi as a Polygon with integer coordinates by rounding the floating-point values.int
getCornerDiameter()
Returns the rounded rectangle corner diameter (pixels).int
getCPosition()
Returns the channel position of this ROI, or zero if this ROI is not associated with a particular channel.static int
getCurrentPasteMode()
Returns the current paste transfer mode.String
getDebugInfo()
static Color
getDefaultFillColor()
boolean
getDrawOffset()
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..double
getFeretsDiameter()
Returns Feret's diameter, the greatest distance between any two points along the ROI boundary.double[]
getFeretValues()
Returns an array with the following values:
[0] "Feret" (maximum caliper width)
[1] "FeretAngle" (angle of diameter with maximum caliper width, between 0 and 180 deg)
[2] "MinFeret" (minimum caliper width)
[3][4] , "FeretX" and "FeretY", the X and Y coordinates of the starting point (leftmost point) of the maximum-caliper-width diameter.Color
getFillColor()
Returns the fill color used to display this ROI, or null if it is displayed transparently.double
getFloatAngle(double x1, double y1, double x2, double y2)
Returns the angle in degrees between the specified line and a horizontal line.Rectangle2D.Double
getFloatBounds()
Return this selection's bounding rectangle.FloatPolygon
getFloatConvexHull()
Returns the convex hull of this Roi as a FloatPolygon.double
getFloatHeight()
FloatPolygon
getFloatPolygon()
Returns the outline (in image pixel coordinates) as a FloatPolygonFloatPolygon
getFloatPolygon(String options)
Returns the outline in image pixel coordinates, where options may include "close" to add a point to close the outline if this is an area roi and the outline is not closed yet.double
getFloatWidth()
int
getHashCode()
Returns a hashcode for this Roi that typically changes if it is moved, even though it is still the same object.ImagePlus
getImage()
Returns the ImagePlus associated with this ROI, or null.int
getImageID()
Returns the ID of the image associated with this ROI.FloatPolygon
getInterpolatedPolygon()
Returns, as a FloatPolygon, an interpolated version of this selection that has points spaced 1.0 pixel apart.FloatPolygon
getInterpolatedPolygon(double interval, boolean smooth)
Returns, as a FloatPolygon, an interpolated version of this selection with points spaced 'interval' pixels apart.protected FloatPolygon
getInterpolatedPolygon(FloatPolygon p, double interval, boolean smooth)
Returns, as a FloatPolygon, an interpolated version of this selection with points spaced abs('interval') pixels apart.Roi
getInverse(ImagePlus imp)
Returns the inverted roi, or null if this is not an area roi or cannot be converted to a ShapeRoi.double
getLength()
Returns the perimeter length.protected double
getMagnification()
ImageProcessor
getMask()
Always returns null for rectangular Roi'sString
getName()
Returns the name of this ROI, or null.int
getPasteMode()
Returns the current paste transfer mode, or NOT_PASTING (-1) if no paste operation is in progress.Polygon
getPolygon()
Returns the outline of this selection as a Polygon, or null if this is a straight line selection.int
getPosition()
Returns the stack position (image number) of this ROI, or zero if the ROI is not associated with a particular stack image.String
getProperties()
String
getProperty(String property)
int
getPropertyCount()
Overlay
getPrototypeOverlay()
FloatPolygon
getRotationCenter()
int
getRoundRectArcSize()
Obsolete; replaced by getCornerDiameter().protected BasicStroke
getScaledStroke()
int
getState()
ImageStatistics
getStatistics()
BasicStroke
getStroke()
Returns the Stroke used to draw this ROI, or null if no Stroke is used.Color
getStrokeColor()
Returns the the color used to draw the ROI outline or null if the default color is being used.float
getStrokeWidth()
Returns the lineWidth.int
getTPosition()
Returns the frame position of this ROI, or zero if this ROI is not associated with a particular frame.int
getType()
String
getTypeAsString()
Convenience method that converts Roi type to a human-readable form.double
getXBase()
double
getYBase()
int
getZPosition()
Returns the slice position of this ROI, or zero if this ROI is not associated with a particular slice.protected void
grow(int sx, int sy)
protected void
handleMouseDown(int sx, int sy)
protected void
handleMouseDrag(int sx, int sy, int flags)
protected void
handleMouseUp(int screenX, int screenY)
boolean
hasHyperStackPosition()
Returns 'true' if setPosition(C,Z,T) has been called.boolean
isActiveOverlayRoi()
Returns 'true' if this ROI is displayed and is also in an overlay.boolean
isArea()
Returns 'true' if this is an area selection.boolean
isCursor()
boolean
isDrawingTool()
Returns 'true' if this is an ROI primarily used from drawing (e.g., TextRoi or Arrow).int
isHandle(int sx, int sy)
Returns a handle number if the specified screen coordinates are inside or near a handle, otherwise returns -1.static boolean
isInteger(double x)
Returns whether a number is an integerboolean
isLine()
Returns 'true' if this is a line selection.boolean
isVisible()
Returns true if this ROI is currently displayed on an image.Iterator<Point>
iterator()
Required by theIterable
interface.static double[]
lineCircleIntersection(double ax, double ay, double bx, double by, double cx, double cy, double rad, boolean ignoreOutside)
Calculates intersections of a line segment with a circle Author N.Vischer ax, ay, bx, by: points A and B of line segment cx, cy, rad: Circle center and radius.protected void
mouseDownInHandle(int handle, int sx, int sy)
void
mouseDragged(MouseEvent e)
void
mouseMoved(MouseEvent e)
void
mouseReleased(MouseEvent e)
protected void
moveHandle(int sx, int sy)
void
notifyListeners(int id)
void
nudge(int key)
Nudge ROI one pixel on arrow key press.void
nudgeCorner(int key)
Nudge lower right corner of rectangular and oval ROIs by one pixel based on arrow key press.static void
removeRoiListener(RoiListener listener)
protected int
screenX(int ox)
protected int
screenXD(double ox)
protected int
screenY(int oy)
protected int
screenYD(double oy)
static void
setColor(Color c)
Sets the default (global) color used for ROI outlines.void
setCornerDiameter(int cornerDiameter)
Sets the rounded rectangle corner diameter (pixels).static void
setDefaultFillColor(Color color)
void
setDrawOffset(boolean drawOffset)
void
setFillColor(Color color)
Sets the fill color used to display this ROI, or set to null to display it transparently.void
setFlattenScale(double scale)
void
setIgnoreClipRect(boolean ignoreClipRect)
void
setImage(ImagePlus imp)
void
setInstanceColor(Color c)
Deprecated.replaced by setStrokeColor()void
setIsCursor(boolean isCursor)
void
setLineWidth(int width)
Deprecated.replaced by setStrokeWidth(int)void
setLocation(double x, double y)
Set the location of the ROI in image coordinates.void
setLocation(int x, int y)
Set the location of the ROI in image coordinates.void
setName(String name)
Sets the name of this ROI.void
setNonScalable(boolean nonScalable)
Set 'nonScalable' true to have TextRois in a display list drawn at a fixed location and size.static void
setPasteMode(int transferMode)
Sets the Paste transfer mode.void
setPosition(int n)
Sets the stack position (image number) of this ROI.void
setPosition(int channel, int slice, int frame)
Sets the hyperstack position of this ROI.void
setPosition(ImagePlus imp)
Sets the position of this ROI based on the stack position of the specified image.void
setProperties(String properties)
void
setProperty(String key, String value)
void
setPrototypeOverlay(Overlay overlay)
void
setRotationCenter(double x, double y)
void
setRoundRectArcSize(int cornerDiameter)
Obsolete; replaced by setCornerDiameter().void
setStroke(BasicStroke stroke)
Sets the Stroke used to draw this ROI.void
setStrokeColor(Color c)
Sets the color used by this ROI to draw its outline.void
setStrokeWidth(double width)
This is a version of setStrokeWidth() that accepts a double argument.void
setStrokeWidth(float width)
Sets the width of the line used to draw this ROI.void
showStatus()
int
size()
Returns the number of points in this selection; equivalent to getFloatPolygon().npoints.void
startPaste(ImagePlus clipboard)
boolean
subPixelResolution()
Returns true if this is a slection that supports sub-pixel resolution.void
temporarilyHide()
Deprecatedstatic float[]
toFloat(int[] arr)
Converts an int array to a float array.static int[]
toInt(float[] arr)
Converts a float array to an int array using truncation.static int[]
toInt(float[] arr, int[] arr2, int size)
static int[]
toIntR(float[] arr)
Converts a float array to an int array using rounding.String
toString()
void
update(boolean add, boolean subtract)
If 'add' is true, adds this selection to the previous one.protected void
updateClipRect()
void
updateWideLine(float width)
-
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
CONSTRUCTING
public static final int CONSTRUCTING
- See Also:
- Constant Field Values
-
MOVING
public static final int MOVING
- See Also:
- Constant Field Values
-
RESIZING
public static final int RESIZING
- See Also:
- Constant Field Values
-
NORMAL
public static final int NORMAL
- See Also:
- Constant Field Values
-
MOVING_HANDLE
public static final int MOVING_HANDLE
- See Also:
- Constant Field Values
-
RECTANGLE
public static final int RECTANGLE
- See Also:
- Constant Field Values
-
OVAL
public static final int OVAL
- See Also:
- Constant Field Values
-
POLYGON
public static final int POLYGON
- See Also:
- Constant Field Values
-
FREEROI
public static final int FREEROI
- See Also:
- Constant Field Values
-
TRACED_ROI
public static final int TRACED_ROI
- See Also:
- Constant Field Values
-
LINE
public static final int LINE
- See Also:
- Constant Field Values
-
POLYLINE
public static final int POLYLINE
- See Also:
- Constant Field Values
-
FREELINE
public static final int FREELINE
- See Also:
- Constant Field Values
-
ANGLE
public static final int ANGLE
- See Also:
- Constant Field Values
-
COMPOSITE
public static final int COMPOSITE
- See Also:
- Constant Field Values
-
POINT
public static final int POINT
- See Also:
- Constant Field Values
-
HANDLE_SIZE
public static final int HANDLE_SIZE
- See Also:
- Constant Field Values
-
NOT_PASTING
public static final int NOT_PASTING
- See Also:
- Constant Field Values
-
FERET_ARRAYSIZE
public static final int FERET_ARRAYSIZE
- See Also:
- Constant Field Values
-
FERET_ARRAY_POINTOFFSET
public static final int FERET_ARRAY_POINTOFFSET
- See Also:
- Constant Field Values
-
previousRoi
public static Roi previousRoi
-
onePixelWide
public static final BasicStroke onePixelWide
-
ROIColor
protected static Color ROIColor
-
pasteMode
protected static int pasteMode
-
lineWidth
protected static int lineWidth
-
defaultFillColor
protected static Color defaultFillColor
-
type
protected int type
-
xMax
protected int xMax
-
yMax
protected int yMax
-
imp
protected ImagePlus imp
-
ic
protected ImageCanvas ic
-
oldX
protected int oldX
-
oldY
protected int oldY
-
oldWidth
protected int oldWidth
-
oldHeight
protected int oldHeight
-
clipX
protected int clipX
-
clipY
protected int clipY
-
clipWidth
protected int clipWidth
-
clipHeight
protected int clipHeight
-
clipboard
protected ImagePlus clipboard
-
constrain
protected boolean constrain
-
center
protected boolean center
-
aspect
protected boolean aspect
-
updateFullWindow
protected boolean updateFullWindow
-
mag
protected double mag
-
asp_bk
protected double asp_bk
-
cachedMask
protected ImageProcessor cachedMask
-
handleColor
protected Color handleColor
-
strokeColor
protected Color strokeColor
-
instanceColor
protected Color instanceColor
-
fillColor
protected Color fillColor
-
stroke
protected BasicStroke stroke
-
nonScalable
protected boolean nonScalable
-
overlay
protected boolean overlay
-
wideLine
protected boolean wideLine
-
ignoreClipRect
protected boolean ignoreClipRect
-
flattenScale
protected double flattenScale
-
-
Constructor Detail
-
Roi
public Roi(int x, int y, int width, int height)
Creates a rectangular ROI.
-
Roi
public Roi(double x, double y, double width, double height)
Creates a rectangular ROI using double arguments.
-
Roi
public Roi(int x, int y, int width, int height, int cornerDiameter)
Creates a new rounded rectangular ROI.
-
Roi
public Roi(double x, double y, double width, double height, int cornerDiameter)
Creates a rounded rectangular ROI using double arguments.
-
Roi
public Roi(Rectangle r)
Creates a new rectangular Roi.
-
Roi
public Roi(int sx, int sy, ImagePlus imp)
Starts the process of creating a user-defined rectangular Roi, where sx and sy are the starting screen coordinates.
-
Roi
public Roi(int sx, int sy, ImagePlus imp, int cornerDiameter)
Starts the process of creating a user-defined rectangular Roi, where sx and sy are the starting screen coordinates.
-
Roi
public Roi(int x, int y, int width, int height, ImagePlus imp)
Deprecated.
-
-
Method Detail
-
setLocation
public void setLocation(int x, int y)
Set the location of the ROI in image coordinates.
-
setLocation
public void setLocation(double x, double y)
Set the location of the ROI in image coordinates.
-
setImage
public void setImage(ImagePlus imp)
-
getImage
public ImagePlus getImage()
Returns the ImagePlus associated with this ROI, or null.
-
getImageID
public int getImageID()
Returns the ID of the image associated with this ROI.
-
getType
public int getType()
-
getState
public int getState()
-
getLength
public double getLength()
Returns the perimeter length.
-
getFeretsDiameter
public double getFeretsDiameter()
Returns Feret's diameter, the greatest distance between any two points along the ROI boundary.
-
getFeretValues
public double[] getFeretValues()
Returns an array with the following values:
[0] "Feret" (maximum caliper width)
[1] "FeretAngle" (angle of diameter with maximum caliper width, between 0 and 180 deg)
[2] "MinFeret" (minimum caliper width)
[3][4] , "FeretX" and "FeretY", the X and Y coordinates of the starting point (leftmost point) of the maximum-caliper-width diameter.
[5-7] reserved
All these values and point coordinates are in calibrated image coordinates.The following array elements are end points of the maximum and minimum caliper diameter, in unscaled image pixel coordinates:
[8][9] "FeretX1", "FeretY1"; unscaled versions of "FeretX" and "FeretY" (subclasses may use any end of the diameter, not necessarily the left one)
[10][11] "FeretX2", "FeretY2", end point of the maxium-caliper-width diameter. Both of these points are vertices of the convex hull.
The final four array elements are the starting and end points of the minimum caliper width,
[12],[13] "MinFeretX", "MinFeretY", and
[14],[15] "MinFeretX2", "MinFeretY2". These two pooints are not sorted by x, but the first point point (MinFeretX, MinFeretY) is guaranteed to be a vertex of the convex hull, while second point (MinFeretX2, MinFeretY2) usually is not a vertex point but at a boundary line of the convex hull.
-
getConvexHull
public Polygon getConvexHull()
Returns the convex hull of this Roi as a Polygon with integer coordinates by rounding the floating-point values. Coordinates of the convex hull are image pixel coordinates.
-
getFloatConvexHull
public FloatPolygon getFloatConvexHull()
Returns the convex hull of this Roi as a FloatPolygon. Coordinates of the convex hull are image pixel coordinates.
-
getBounds
public Rectangle getBounds()
Return this selection's bounding rectangle.
-
getFloatBounds
public Rectangle2D.Double getFloatBounds()
Return this selection's bounding rectangle.
-
getBoundingRect
public Rectangle getBoundingRect()
Deprecated.replaced by getBounds()
-
getPolygon
public Polygon getPolygon()
Returns the outline of this selection as a Polygon, or null if this is a straight line selection.
-
getFloatPolygon
public FloatPolygon getFloatPolygon()
Returns the outline (in image pixel coordinates) as a FloatPolygon
-
getFloatPolygon
public FloatPolygon getFloatPolygon(String options)
Returns the outline in image pixel coordinates, where options may include "close" to add a point to close the outline if this is an area roi and the outline is not closed yet. (For ShapeRois, "separate" inserts NaN values between subpaths).
-
getInterpolatedPolygon
public FloatPolygon getInterpolatedPolygon()
Returns, as a FloatPolygon, an interpolated version of this selection that has points spaced 1.0 pixel apart.
-
getInterpolatedPolygon
public FloatPolygon getInterpolatedPolygon(double interval, boolean smooth)
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.
-
getInterpolatedPolygon
protected FloatPolygon getInterpolatedPolygon(FloatPolygon p, double interval, boolean smooth)
Returns, as a FloatPolygon, an interpolated version of this selection with points spaced abs('interval') pixels apart. If 'smooth' is true, traced and freehand selections are first smoothed using a 3 point running average. If 'interval' is negative, the program is allowed to decrease abs('interval') so that the last segment will hit the end point
-
getContainedPoints
public Point[] getContainedPoints()
Returns the coordinates of the pixels inside this ROI as an array of Points.- See Also:
getContainedFloatPoints()
,iterator()
-
getContainedFloatPoints
public FloatPolygon getContainedFloatPoints()
Returns the coordinates of the pixels inside this ROI as a FloatPolygon.- See Also:
getContainedPoints()
,iterator()
-
lineCircleIntersection
public static double[] lineCircleIntersection(double ax, double ay, double bx, double by, double cx, double cy, double rad, boolean ignoreOutside)
Calculates intersections of a line segment with a circle Author N.Vischer ax, ay, bx, by: points A and B of line segment cx, cy, rad: Circle center and radius. ignoreOutside: if true, ignores intersections outside the line segment A-B Returns an array of 0, 2 or 4 coordinates (for 0, 1, or 2 intersection points). If two intersection points are returned, they are listed in travel direction A->B
-
clone
public Object clone()
Returns a copy of this roi. See Thinking is Java by Bruce Eckel (www.eckelobjects.com) for a good description of object cloning.
-
abortModification
public void abortModification(ImagePlus imp)
Aborts constructing or modifying the roi (called by the ImageJ class on escape)
-
grow
protected void grow(int sx, int sy)
-
moveHandle
protected void moveHandle(int sx, int sy)
-
nudge
public void nudge(int key)
Nudge ROI one pixel on arrow key press.
-
nudgeCorner
public void nudgeCorner(int key)
Nudge lower right corner of rectangular and oval ROIs by one pixel based on arrow key press.
-
updateClipRect
protected void updateClipRect()
-
clipRectMargin
protected int clipRectMargin()
-
handleMouseDrag
protected void handleMouseDrag(int sx, int sy, int flags)
-
draw
public void draw(Graphics g)
-
drawOverlay
public void drawOverlay(Graphics g)
-
drawPixels
public void drawPixels()
Deprecated.replaced by drawPixels(ImageProcessor)
-
drawPixels
public void drawPixels(ImageProcessor ip)
Draws the selection outline on the specified ImageProcessor.
-
contains
public boolean contains(int x, int y)
Returns whether the center of pixel (x,y) is contained in the Roi. The position of a pixel center determines whether a pixel is selected. Points exactly at the left (right) border are considered outside (inside); points exactly on horizontal borders are considered outside (inside) at the border with the lower (higher) y. This convention is opposite to that of the java.awt.Shape class.
-
containsPoint
public boolean containsPoint(double x, double y)
Returns whether coordinate (x,y) is contained in the Roi. Note that the coordinate (0,0) is the top-left corner of pixel (0,0). Use contains(int, int) to determine whether a given pixel is contained in the Roi.
-
getInverse
public Roi getInverse(ImagePlus imp)
Returns the inverted roi, or null if this is not an area roi or cannot be converted to a ShapeRoi. If imp is not given, assumes a rectangle of size 2e9*2e9 for the boundary.
-
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.
-
mouseDownInHandle
protected void mouseDownInHandle(int handle, int sx, int sy)
-
handleMouseDown
protected void handleMouseDown(int sx, int sy)
-
handleMouseUp
protected void handleMouseUp(int screenX, int screenY)
-
update
public void update(boolean add, boolean subtract)
If 'add' is true, adds this selection to the previous one. If 'subtract' is true, subtracts it from the previous selection. Called by the IJ.doWand() method, and the makeRectangle(), makeOval(), makePolygon() and makeSelection() macro functions.
-
showStatus
public void showStatus()
-
getMask
public ImageProcessor getMask()
Always returns null for rectangular Roi's
-
startPaste
public void startPaste(ImagePlus clipboard)
-
endPaste
public void endPaste()
-
abortPaste
public void abortPaste()
-
getAngle
public double getAngle(int x1, int y1, int x2, int y2)
Returns the angle in degrees between the specified line and a horizontal line.
-
getFloatAngle
public double getFloatAngle(double x1, double y1, double x2, double y2)
Returns the angle in degrees between the specified line and a horizontal line.
-
setColor
public static void setColor(Color c)
Sets the default (global) color used for ROI outlines.- See Also:
getColor()
,setStrokeColor(Color)
-
getColor
public static Color getColor()
Returns the default (global) color used for drawing ROI outlines.- See Also:
setColor(Color)
,getStrokeColor()
-
setStrokeColor
public void setStrokeColor(Color c)
Sets the color used by this ROI to draw its outline. This color, if not null, overrides the global color set by the static setColor() method.
-
getStrokeColor
public Color getStrokeColor()
Returns the the color used to draw the ROI outline or null if the default color is being used.- See Also:
setStrokeColor(Color)
-
setFillColor
public void setFillColor(Color color)
Sets the fill color used to display this ROI, or set to null to display it transparently.- See Also:
getFillColor()
,setStrokeColor(java.awt.Color)
-
getFillColor
public Color getFillColor()
Returns the fill color used to display this ROI, or null if it is displayed transparently.- See Also:
setFillColor(java.awt.Color)
,getStrokeColor()
-
setDefaultFillColor
public static void setDefaultFillColor(Color color)
-
getDefaultFillColor
public static Color getDefaultFillColor()
-
copyAttributes
public void copyAttributes(Roi roi2)
Copy the attributes (outline color, fill color, outline width) of 'roi2' to the this selection.
-
setInstanceColor
public void setInstanceColor(Color c)
Deprecated.replaced by setStrokeColor()
-
setLineWidth
public void setLineWidth(int width)
Deprecated.replaced by setStrokeWidth(int)
-
updateWideLine
public void updateWideLine(float width)
-
setNonScalable
public void setNonScalable(boolean nonScalable)
Set 'nonScalable' true to have TextRois in a display list drawn at a fixed location and size.
-
setStrokeWidth
public void setStrokeWidth(float width)
Sets the width of the line used to draw this ROI. Set the width to 0.0 and the ROI will be drawn using a a 1 pixel stroke width regardless of the magnification.
-
setStrokeWidth
public void setStrokeWidth(double width)
This is a version of setStrokeWidth() that accepts a double argument.
-
getStrokeWidth
public float getStrokeWidth()
Returns the lineWidth.
-
setStroke
public void setStroke(BasicStroke stroke)
Sets the Stroke used to draw this ROI.
-
getStroke
public BasicStroke getStroke()
Returns the Stroke used to draw this ROI, or null if no Stroke is used.
-
getScaledStroke
protected BasicStroke getScaledStroke()
-
getName
public String getName()
Returns the name of this ROI, or null.
-
setName
public void setName(String name)
Sets the name of this ROI.
-
setPasteMode
public static void setPasteMode(int transferMode)
Sets the Paste transfer mode.- See Also:
Blitter
-
setCornerDiameter
public void setCornerDiameter(int cornerDiameter)
Sets the rounded rectangle corner diameter (pixels).
-
getCornerDiameter
public int getCornerDiameter()
Returns the rounded rectangle corner diameter (pixels).
-
setRoundRectArcSize
public void setRoundRectArcSize(int cornerDiameter)
Obsolete; replaced by setCornerDiameter().
-
getRoundRectArcSize
public int getRoundRectArcSize()
Obsolete; replaced by getCornerDiameter().
-
setPosition
public void setPosition(int n)
Sets the stack position (image number) of this ROI. In an overlay, this ROI is only displayed when the stack is at the specified position. Set to zero to have the ROI displayed on all images in the stack.- See Also:
Overlay
-
getPosition
public int getPosition()
Returns the stack position (image number) of this ROI, or zero if the ROI is not associated with a particular stack image.- See Also:
Overlay
-
setPosition
public void setPosition(int channel, int slice, int frame)
Sets the hyperstack position of this ROI. In an overlay, this ROI is only displayed when the hyperstack is at the specified position.- See Also:
Overlay
-
hasHyperStackPosition
public boolean hasHyperStackPosition()
Returns 'true' if setPosition(C,Z,T) has been called.
-
setPosition
public void setPosition(ImagePlus imp)
Sets the position of this ROI based on the stack position of the specified image.
-
getCPosition
public final int getCPosition()
Returns the channel position of this ROI, or zero if this ROI is not associated with a particular channel.
-
getZPosition
public final int getZPosition()
Returns the slice position of this ROI, or zero if this ROI is not associated with a particular slice.
-
getTPosition
public final int getTPosition()
Returns the frame position of this ROI, or zero if this ROI is not associated with a particular frame.
-
setPrototypeOverlay
public void setPrototypeOverlay(Overlay overlay)
-
getPrototypeOverlay
public Overlay getPrototypeOverlay()
-
getPasteMode
public int getPasteMode()
Returns the current paste transfer mode, or NOT_PASTING (-1) if no paste operation is in progress.- See Also:
Blitter
-
getCurrentPasteMode
public static int getCurrentPasteMode()
Returns the current paste transfer mode.
-
isArea
public boolean isArea()
Returns 'true' if this is an area selection.
-
isLine
public boolean isLine()
Returns 'true' if this is a line selection.
-
isDrawingTool
public boolean isDrawingTool()
Returns 'true' if this is an ROI primarily used from drawing (e.g., TextRoi or Arrow).
-
getMagnification
protected double getMagnification()
-
getTypeAsString
public String getTypeAsString()
Convenience method that converts Roi type to a human-readable form.
-
isVisible
public boolean isVisible()
Returns true if this ROI is currently displayed on an image.
-
subPixelResolution
public boolean subPixelResolution()
Returns true if this is a slection that supports sub-pixel resolution.
-
getDrawOffset
public boolean getDrawOffset()
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..
-
setDrawOffset
public void setDrawOffset(boolean drawOffset)
-
setIgnoreClipRect
public void setIgnoreClipRect(boolean ignoreClipRect)
-
isActiveOverlayRoi
public final boolean isActiveOverlayRoi()
Returns 'true' if this ROI is displayed and is also in an overlay.
-
equals
public boolean equals(Object obj)
Checks whether two rectangles are equal.
-
screenX
protected int screenX(int ox)
-
screenY
protected int screenY(int oy)
-
screenXD
protected int screenXD(double ox)
-
screenYD
protected int screenYD(double oy)
-
toInt
public static int[] toInt(float[] arr)
Converts a float array to an int array using truncation.
-
toInt
public static int[] toInt(float[] arr, int[] arr2, int size)
-
toIntR
public static int[] toIntR(float[] arr)
Converts a float array to an int array using rounding.
-
toFloat
public static float[] toFloat(int[] arr)
Converts an int array to a float array.
-
isInteger
public static boolean isInteger(double x)
Returns whether a number is an integer
-
setProperties
public void setProperties(String properties)
-
getProperties
public String getProperties()
-
getPropertyCount
public int getPropertyCount()
-
temporarilyHide
public void temporarilyHide()
Deprecated
-
mouseDragged
public void mouseDragged(MouseEvent e)
-
mouseMoved
public void mouseMoved(MouseEvent e)
-
mouseReleased
public void mouseReleased(MouseEvent e)
-
getXBase
public double getXBase()
-
getYBase
public double getYBase()
-
getFloatWidth
public double getFloatWidth()
-
getFloatHeight
public double getFloatHeight()
-
getAngle
public double getAngle()
Overridden by PolygonRoi (angle between first two points), TextRoi (text angle) and Line (line angle).
-
enableSubPixelResolution
public void enableSubPixelResolution()
-
setIsCursor
public void setIsCursor(boolean isCursor)
-
isCursor
public boolean isCursor()
-
getDebugInfo
public String getDebugInfo()
-
getStatistics
public ImageStatistics getStatistics()
-
getRotationCenter
public FloatPolygon getRotationCenter()
-
setRotationCenter
public void setRotationCenter(double x, double y)
-
size
public int size()
Returns the number of points in this selection; equivalent to getFloatPolygon().npoints.
-
getContourCentroid
public double[] getContourCentroid()
-
getHashCode
public int getHashCode()
Returns a hashcode for this Roi that typically changes if it is moved, even though it is still the same object.
-
setFlattenScale
public void setFlattenScale(double scale)
-
notifyListeners
public void notifyListeners(int id)
-
addRoiListener
public static void addRoiListener(RoiListener listener)
-
removeRoiListener
public static void removeRoiListener(RoiListener listener)
-
iterator
public Iterator<Point> iterator()
Required by theIterable
interface. Use to iterate over the contained coordinates. Usage example:for (Point p : roi) { // process p }
Author: Wilhelm Burger- Specified by:
iterator
in interfaceIterable<Point>
- See Also:
getContainedPoints()
,getContainedFloatPoints()
-
-