insertShape
在图像或视频中插入图形
说明
示例
将图像读入工作区。
I = imread("peppers.png");在图像上绘制一个圆,边框线宽为 5 像素。
RGB = insertShape(I,"circle",[150 280 35],LineWidth=5);在图像上放置一个实心三角形和一个实心六边形。
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);
显示生成的图像。
imshow(RGB)

输入参数
输入图像,指定为 M×N×3 的真彩色图像或 M×N 的灰度图像。
数据类型: single | double | int16 | uint8 | uint16
形状类型,指定为 "rectangle"、"filled-rectangle"、"line"、"polygon"、"filled-polygon"、"circle"、"filled-circle"、"projected-cuboid"、"ellipse" 或 "filled-ellipse"。
数据类型: char | string
形状的位置,根据表格中所述的形状类型进行指定。
| 形状 | 位置 | 定义 |
|---|---|---|
| 对于一个或多个与轴对齐的矩形或填充矩形,请以 M×4 数值矩阵的形式指定,其中每一行指定一个形式为 的矩形。
| |
| 对于一个或多个旋转后的矩形,请使用 M×5 数值矩阵在空间坐标系中进行指定,其中每一行指定一个形式为 [xctr yctr w h yaw] 的旋转矩形。
| ![]() | |
| 对于一个或多个圆,请将空间坐标指定为一个 M×3 的数值矩阵,其中每一行指定一个形式为 [xctr yctr radius] 的圆。
| |
| 对于一个或多个椭圆,请以 M×5 矩阵的形式在空间坐标系中指定,其中每一行指定一个形式为 [xctr yctr major minor yaw] 的椭圆。
| |
| 对于一条或多条线,请使用以下任一格式指定空间坐标,以定义端点相连的单条线、端点数量相同的多条线,或端点数量不同的多条线。
| |
| 对于一个或多个多边形,请使用 M×1 元胞数组在空间坐标系中指定其位置,其中每个元胞包含一个 L×2 矩阵 [x y],其中包含顶点位置,或者是一个 1×2 的 L 向量,包含连续的顶点位置,形式为 [x1, y1, x2,y2, … xL,yL ]。
|
|
projected-cuboid | 对于一个或多个投影长方体,请使用空间坐标以 8×2×M 数组或 M-×8 矩阵的形式指定,其中 M 表示投影长方体的数量。 当指定为一个 8×2×M 的数组时,每一行必须包含一个投影长方体顶点的 [x y] 位置。这些顶点相互连接,形成了一个有六个面的长方体。输入顶点的顺序必须与图中所示的顺序一致。 当指定为一个 M×8 的矩阵时,每一行指定了一个投影长方体的正面和背面的维度,形式为:[x1 y1 w1 h1 x2 y2 w2 h2],其中 [x1 y1] 和 [x2 y2] 分别指定了该长方体的正面和背面的左上角坐标,而 [w1 h1] 和 [w2 h2] 则指定了相应的宽度和高度。 |
|
数据类型: single | double | cell | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
名称-值参数
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: insertShape(I,"circle",position,Color="yellow") 将形状颜色设置为黄色。
如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: insertShape(I,"circle",position,"Color","yellow") 将形状颜色设置为黄色。
形状边框线宽,以正整数(单位为像素)表示。此参量仅适用于 "Rectangle"、"Line"、"Polygon" 和 "Circle" 这几种形状。
数据类型: uint8 | uint16 | int16 | double | single
形状颜色,指定为简短颜色名称、颜色名称、颜色名称向量或包含 RGB 三元组的三列矩阵。
“支持的颜色表”中列出的 RGB 强度值范围为 [0, 1],但您必须指定符合所选数据类型范围的 RGB 三元组。例如,如果将该参量指定为由 uint8 值组成的矩阵,则必须将每个强度值转换为 [0, 255] 范围内的数值。要将所列的强度值转换为 uint8 数据类型,请使用代码 uint8(255*intensity),其中 intensity 是表格中列出的 RGB 三元组值。
您可以为每个图形指定不同的颜色,也可以为所有图形指定一种颜色。若要为所有标记指定一种颜色,请将 ShapeColor 作为颜色名称或 [R G B] 向量进行指定。
| 设定 | 格式 | 示例 |
|---|---|---|
| 为所有图形(或标记)指定一种颜色 | 简短颜色名称或颜色名称 |
|
RGB 三元组 |
| |
| 为每个形状(或标记)指定一种颜色 | 颜色名称向量 |
|
由 RGB 三元组组成的三列矩阵 | [1 0 0 0 1 1 1 0 1 1 1 1] ![]() |
下表列出了支持的形状颜色。
| 颜色名称 | 短名称 | RGB 三元组 | 外观 |
|---|---|---|---|
"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] |
|
数据类型: logical | uint8 | uint16 | int16 | double | single | cell
填充形状的不透明度,以 [0 1] 范围内的标量值指定。Opacity 参量仅适用于 "filled-rectangle"、"filled-polygon" 和 "filled-circle" 这三种形状。
数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
平滑形状边缘,指定为逻辑值 1 (true) 或 0 (false)。true 值可启用抗锯齿滤波器,以平滑形状边缘。此值仅适用于非矩形形状。启用抗锯齿功能时,绘制图形需要额外的时间。
数据类型: logical
输出参量
输出图像,以 M×N×3 真彩色图像的形式返回。
扩展功能
版本历史记录
在 R2014a 中推出新增了对 "ellipse" 和 "filled-ellipse" 的支持,可在图像或视频数据上显示一个或多个省略号。
从 R2023b 版本开始,您可以使用 [0,1] 范围内的 RGB 值来指定标记颜色。
您可以使用 [xctr yctr width height yaw] 这种形式指定一个旋转后的矩形边界框。
现在,您可以指定 ShowOrientation 名称-值参量,以显示已旋转矩形边界框的朝向和角度。
新增了对投影长方体的可视化支持。
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)











