Specify polygonal region of interest (ROI)
BW = roipoly
BW = roipoly(I)
BW = roipoly(I,c,r)
BW = roipoly(x,y,I,xi,yi)
[BW,xi2,yi2] = roipoly(___)
[x2,y2,BW,xi2,yi2] = roipoly(___)
creates an interactive
polygon tool associated with the image displayed in the current figure. With
this syntax and the other interactive syntaxes, the polygon selection tool
blocks the MATLAB® command line until you complete the operation.
BW = roipoly
roipoly returns the mask as a binary image, setting
pixels inside the ROI to
1 and pixels outside the ROI to
For more information about using the polygon selection tool, see Interactive Behavior.
Read an image into the workspace.
I = imread('eight.tif');
Define the vertices of the mask polygon.
c = [222 272 300 270 221 194]; r = [21 21 75 121 121 75];
Create the binary mask image.
BW = roipoly(I,c,r);
Display the original image and the polygonal mask.
I— Grayscale or RGB image
Grayscale or RGB image, specified as an m-by-n numeric matrix for a grayscale image, or an m-by-n-by-3 numeric array for an RGB image.
r— Column or row index of vertices
Column or row index of vertices, specified as a vector of positive
integers. The length of
y— Image limits in world coordinates
Image limits in world coordinates along the x- or
y-dimension, specified as a 2-element numeric vector
of the form
[min max]. The values of
y set the image
BW— Binary image
Binary image, returned as an m-by-n logical matrix.
yi2— Position of vertices
Position of vertices of the closed polygon along the x- or y-dimension, returned as a numeric vector. The first and last element in the vector are identical, so that the polygon is closed.
If you select vertices interactively by using the polygon
selection tool, or if you specify the position of vertices using
row and column indices
yi2 are interpreted as pixel
roipoly always produces a closed polygon. If you
specify input vertex positions of a closed polygon (such that the last
pair of coordinates is identical to the first pair), then the length of
the output coordinate vectors is equal to the number of points
specified. If the points specified do not describe a closed polygon,
roipoly adds a final point having the same
coordinates as the first point. In this case the length of the output
coordinate vectors is one greater than the number of points
The polygon selection tool enables you to select and adjust polygon vertices interactively using the mouse.
When the polygon tool is active, the pointer changes to cross hairs when you move the pointer over the image in the figure. Using the mouse, you specify the region by selecting vertices of the polygon. You can move or resize the polygon using the mouse. When you are finished positioning and sizing the polygon, create the mask by double-clicking, or by right-clicking inside the region and selecting Create mask from the context menu.
The figure illustrates a polygon defined by multiple vertices. The following table describes all the interactive behavior of the polygon tool.
|Closing the polygon. (Completing the region-of-interest.)||
Use any of the following mechanisms:
|Moving the entire polygon||Move the pointer inside the region. The pointer changes to a fleur shape . Click and drag the polygon over the image.|
|Deleting the polygon||
Press Backspace, Escape or Delete, or right-click inside the region and select Cancel from the context menu.
Note: If you delete the ROI, the function returns empty values.
|Moving a vertex. (Reshaping the region-of-interest.)||Move the pointer over a vertex. The pointer changes to a circle . Click and drag the vertex to its new position.|
|Adding a new vertex.||Move the pointer over an edge of the polygon and press the A key. The pointer changes shape to. Click the left mouse button to create a new vertex at that point on the edge.|
|Deleting a vertex. (Reshaping the region-of-interest.)||Move the pointer over the vertex. The pointer changes to a circle . Right-click and select
Delete vertex from the context menu.
|Changing the color of the polygon||Move the pointer anywhere inside the boundary of the region and click the right mouse button. Select Set color from the context menu.|
|Retrieving the coordinates of the vertices||Move the pointer inside the region. Right-click and select Copy position from the context menu to copy the current position to the Clipboard. The position is an n-by-2 array containing the x- and y-coordinates of each vertex, where n is the number of vertices.|
For any of the
roipoly syntaxes, you can replace the input
I with two arguments,
n, that specify the row and column dimensions of an
arbitrary image. For example, these commands create a 100-by-200 binary
c = [112 112 79 79]; r = [37 66 66 37]; BW = roipoly(100,200,c,r);
If you specify
n with an
interactive form of
n black image is displayed. Use
the mouse to specify a polygon within this image.