insertShape
Insert shapes in image or video
Description
specifies options using one or more name-value arguments in addition to the input
arguments from the input arguments from the previous syntax. For example,
RGB = insertShape(___,Name=Value)LineWidth=5 sets the line width value to 5 of the
inserted shapes.
Examples
Read an image into the workspace.
I = imread("peppers.png");Place a circle on the image with a border line width of 5 pixels.
RGB = insertShape(I,"circle",[150 280 35],LineWidth=5);Place a filled triangle and a filled hexagon on the image.
pos_triangle = [183 297 302 250 316 297]; pos_hexagon = [340 163 305 186 303 257 334 294 362 255 361 191]; RGB = insertShape(RGB,"filled-polygon",{pos_triangle pos_hexagon}, ... ShapeColor=["white","green"],Opacity=0.7);
Display the resulting image.
imshow(RGB)

Input Arguments
Input image, specified as an M-by-N-by-3 truecolor or an M-by-N grayscale image.
Data Types: single | double | int16 | uint8 | uint16
Type of shape, specified as "rectangle",
"filled-rectangle", "line",
"polygon", "filled-polygon",
"circle", "filled-circle",
"projected-cuboid", "ellipse", or
"filled-ellipse".
Data Types: char | string
Position of shape, specified according to the type of shape, as described in the table.
| Shape | Position | Definition |
|---|---|---|
| For one or more axis-aligned rectangles or filled rectangles, specify as an M-by-4 numeric matrix, where each row specifies a rectangle of the form .
| |
|
For one or more rotated rectangles, specify in spatial coordinates as an M-by-5 numeric matrix, where each row specifies a rotated rectangle of the form [xctr yctr w h yaw].
| ![]() | |
| For one or more circles, specify spatial coordinates as an M-by-3 numeric matrix, where each row specifies a circle of the form [xctr yctr radius].
| |
| For one or more ellipses, specify in spatial coordinates as an M-by-5 matrix, where each row specifies an ellipse of the form [xctr yctr major minor yaw]
|
|
| For one or more lines, specify spatial coordinates using one of these formats to specify a single line with connected endpoints, multiple lines with the same number of endpoints, or multiple lines with different numbers of endpoints.
| |
| For one or more polygons, specify in spatial coordinates as an M-by-1 cell array, where each cell contains an L-by-2 matrix of [x y] vertex locations or a 1-by-2L vector of consecutive vertex locations of the form [x1, y1, x2,y2, … xL,yL ].
|
|
projected-cuboid | For one or more projected cuboids, specify in spatial coordinates as an 8-by-2-by-M array or an M-by-8 matrix, where M is the number of projected cuboids. When specified as an 8-by-2-by-M array, each row must contain the [x y] location of a projected cuboid vertex. The vertices connect to form a cuboid with six faces. The order of the input vertices must match the order shown in the diagram. When specified as an M-by-8 matrix, each row specifies the dimensions of the front-facing and rear-facing sides of a projected cuboid in the form, [x1 y1 w1 h1 x2 y2 w2 h2], where [x1 y1] and [x2 y2] specify the upper-left coordinates of the front-facing and rear-facing sides, respectively, and [w1 h1] and [w2 h2] specify the corresponding widths and heights. |
|
Data Types: single | double | cell | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN, where Name is
the argument name and Value is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: insertShape(I,"circle",position,Color="yellow") sets the
shape color to yellow.
Before R2021a, use commas to separate each name and value, and enclose
Name in quotes.
Example: insertShape(I,"circle",position,"Color","yellow") sets the
shape color to yellow.
Shape border line width, specified as a positive integer, in pixels. This argument applies to
only the "Rectangle", "Line",
"Polygon", and "Circle" shapes.
Data Types: uint8 | uint16 | int16 | double | single
Shape color, specified as a short color name, color name, vector of color names, three-column matrix of RGB triplets.
The supported colors table lists RGB intensities in the range [0, 1], but you must
specify RGB triplets in the range of your selected data type. For example, if
specifying this argument as a matrix of uint8 values, you must
convert each intensity value to the range [0, 255]. To convert the listed intensity
values to a uint8 data type, use the code
uint8(255*intensity), where intensity is an RGB triplet value
listed in the table.
You can specify a different color for each shape or one color for all shapes. To
specify one color for all markers, specify ShapeColor as a color
name or an [R
G
B] vector.
| Specification | Format | Example |
|---|---|---|
| Specify one color for all shapes (or markers) | Short color name or color name |
|
RGB triplet |
| |
| Specify a color for each shape (or marker) | Vector of color names |
|
Three-column matrix of RGB triplets | [1 0 0 0 1 1 1 0 1 1 1 1] ![]() |
This table lists the supported shape colors.
| Color Name | Short Name | RGB Triplet | Appearance |
|---|---|---|---|
"red" | "r" | [1 0 0] |
|
"green" | "g" | [0 1 0] |
|
"blue" | "b" | [0 0 1] |
|
"cyan" | "c" | [0 1 1] |
|
"magenta" | "m" | [1 0 1] |
|
"yellow" | "y" | [1 1 0] |
|
"black" | "k" | [0 0 0] |
|
"white" | "w" | [1 1 1] |
|
Data Types: logical | uint8 | uint16 | int16 | double | single | cell
Opacity of a filled shape, specified as a scalar in the range [0 1]. The
Opacity argument applies to only the
"filled-rectangle", "filled-polygon", and
"filled-circle" shapes.
Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Smooth shape edges, specified as a logical 1 (true) or
0 (false). A true value
enables an antialiasing filter to smooth shape edges. This value applies to only
nonrectangular shapes. When you enable antialiasing requires additional time to draw
the shapes.
Data Types: logical
Output Arguments
Output image, returned as an M-by-N-by-3 truecolor image.
Extended Capabilities
Usage notes and limitations:
The input argument
shapemust be a compile-time constant.The
ShapeColorandSmoothEdgesname-value arguments must be compile-time constants.Code generation requires a C++ compiler. For a list of supported compilers, see Supported and Compatible Compilers
Version History
Introduced in R2014aAdded support for "ellipse" and "filled-ellipse"
to visualize one or more ellipses on top of an image or on video data.
Starting in R2023b, you can specify marker color with RGB values in the range [0,1].
You can specify a rotated rectangle bounding box using the form [xctr yctr width height yaw].
You can now specify the ShowOrientation name-value argument to
display the orientation and angle of a rotated rectangle bounding box.
Added support to visualize projected cuboids.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)



