showShape
在图像、视频或点云上显示形状
描述
例子
在图像中显示检测到的对象
将图像读入工作区。
I = imread(“visionteam1.jpg”);
创建一个聚合通道特征(ACF)人员检测器。
探测器= peopleDetectorACF()
ModelName: 'inria-100x41' ObjectTrainingSize: [100 41] NumWeakLearners: 2048
检测图像中的人。
[bboxes,scores] = detect(检测器,I);
显示带有标记矩形的图像。显示每个被检测人员周围的相关检测分数。
图imshow(I) labels =人:“+得分;showShape (“矩形”、bboxes标签=标签)
在点云中显示对象周围的包围框
将点云数据读入工作空间。
ptCloud = pcread(“teapot.ply”);
显示点云数据。
图pcshow(ptCloud)“X”) ylabel (“Y”) zlabel (“Z”)
定义一个长方体,并以不透明度为的绿色显示它0.5
.
Pos = [0.3753 0 1.65 6 4 3 0 0 0];showShape (“长方体”、pos、颜色=“绿色”,透明度= 0.5)
在点云流中观察移动物体周围的长方体
将点云数据读入工作空间。
ptCloud = pcread(“teapot.ply”);
定义一个旋转矩阵和三维变换,将点云和相关长方体旋转5度。
Rot = 5;R = [cosd(腐)sind(腐)0 0;...-sind(rot) cosd(rot) 0 0;...0 0 10 0;...0 0 0 1];tform = affine3d(R);
计算点云的x和y渲染限制,以确保点云在旋转过程中不会被剪切。
pcLimits = abs([ptCloud.]XLimits ptCloud.YLimits]);maxLimit = max(pcLimits);
在绘图中添加额外的边距,以防止长方体在旋转过程中被剪切。
Margin = 1;maxLimit = maxLimit + margin;xlimits = [-maxLimit];ylimits = [-maxLimit maxLimit];zlimits = ptCloud.ZLimits;
创建一个播放器来可视化点云。
玩家= pcplayer(xlimits,ylimits,zlimits);
自定义玩家轴标签。
包含(球员。轴,“X”(m));ylabel(球员。轴,“Y (m)”);zlabel(球员。轴,“Z”(m));
在点云周围定义一个长方体。
cuboidPosition = [0.3753 0 1.65 6 4 3 0 0 0];
定义长方体旋转的输出视图。使用与玩家相同的限制,这样长方体就不会被剪裁。然后,显示旋转后的点云和长方体。
gridSize = [1 1 1];ref = imref3d(gridSize,xlimits,ylimits,zlimits);为I = 1:round((360/rot))%旋转点云。ptCloud = pctransform(ptCloud,tform);旋转长方体。cuboidPosition = bboxwarp(cuboidPosition,tform,ref);显示旋转后的点云数据。视图(球员,ptCloud)显示旋转后的长方体。showShape (“长方体”cuboidPosition,...父母=球员。轴,...颜色=“绿色”,...不透明度= 0.5)使用drawnow同步点云和形状可视化。drawnow结束
输入参数
形状
- - - - - -形状类型
“矩形”
|“filled-rectangle”
|“行”
|“多边形”
|“filled-polygon”
|“圆”
|“实心圆”
|“projected-cuboid”
形状类型,指定为“矩形”
,“filled-rectangle”
,“行”
,“多边形”
,“filled-polygon”
,“圆”
,或“实心圆”
,“projected-cuboid”
.
数据类型:字符
位置
- - - - - -形状的位置和大小
矩阵|向量|单元阵列
形状的位置和大小,根据本表中描述的形状类型指定。
边界框 | 描述 |
---|---|
矩形 |
在空间坐标中定义为米-by-4数字矩阵,行形式为[xywh),地点:
|
rotated-rectangle |
在空间坐标中定义为米-by-5数字矩阵,行形式为[xctryctrxlenylen偏航),地点:
|
长方体 |
在空间坐标中定义为米-by-9的数字矩阵,行形式为[xctryctrzctrxlenylenzlenxrotyrotzrot),地点:
图中显示了这些值如何决定长方体的位置。 |
圆 |
在空间坐标中定义为米-by-3数字矩阵,行形式为[xctryctr半径),地点:
|
|
在空间坐标中定义为aP-by-2矩阵,其中每行都是[xy端点或1 × 2P的连续端点的向量x1y1x2y2...xPxP]。
若要指定包含不同数量端点的多行,可以使用为多边形描述的单元格数组格式。 |
多边形 |
在空间坐标中定义为米-by-1单元格数组,其中每个单元格包含一个l的-by-2矩阵xy]顶点位置或1乘2l窗体[的连续顶点位置的向量x1,y1,x2,y2,……xl,yl),地点:
|
projected-cuboid |
一个8-by-2-by -米数组或米-by-8矩阵,其中米指定投影的长方体。 当指定为8 × 2-时米数组中,每一行都必须包含 投影长方体顶点的位置。这些顶点连接起来形成一个有六个面的长方体。输入顶点的顺序必须与图中显示的顺序相匹配。 当指定为米-by-8矩阵,每一行指定投影长方体的正面和背面,形式为,
在那里,(x1, y1]和[x2 y2]分别指定正面和背面的左上角坐标。[w1 h1]和[w2 h2]指定相应的宽度和高度。 |
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:showShape(“矩形”,bboxes,颜色=“黄色”)
将形状的颜色设置为黄色。
标签
- - - - - -形状的标签
[]
(默认)|标量|米元向量|米-element单元格字符向量数组
形状标签,指定为标量,米-element vector或an米-element单元格数组的字符向量,其中米指定形状的数量。
如果输入是标量值,则函数将标签应用于每个形状。如果输入是米-element vector或单元格数组,则该函数将唯一标签应用于相应的形状,使用形状指定给函数的顺序。
颜色
- - - - - -形状颜色
线(1)
(默认)|一个或多个RGB三胞胎|一个或多个颜色名称或简短的颜色名称
形状颜色,指定为一个或多个RGB三元组,或一个或多个(MATLABColorSpec
颜色或简短的颜色名称。颜色值必须在范围内指定[0255]
.值的范围为[0, 1]
在此函数中使用它之前,必须将其缩放为255。例如,[255 255 255].*colorvalue
颜色 | 格式 | 例子 |
---|---|---|
为所有形状指定一种颜色 | 颜色名称 |
|
RGB值 |
|
|
为每个形状指定一种颜色 | 米元向量 |
|
米-by-3矩阵,作为RGB值的列表 |
255 0 0 255 0 0 0 255 255 |
不透明度
- - - - - -形状填充的不透明度
0
(默认)|米-在[0 1]范围内的元素向量
形状填充的不透明度,指定为米-范围[的数值的元素向量0 1
),米指定形状的数量。若要对所有形状使用相同的不透明度,请指定一个标量不透明度值。对于完全不透明的形状填充,请设置不透明度
来1
.
父
- - - - - -输出轴
gca
(默认)|轴
图形对象
输出轴,指定为轴属性图形对象。
LineColor
- - - - - -边线颜色
“汽车”
(默认)|一个或多个RGB三胞胎|一个或多个颜色名称或简短的颜色名称
边线颜色,指定为一个或多个RGB三元组,或一个或多个颜色或短颜色名称。若要对所有边框线使用相同的颜色,请指定一个单一的(MATLABColorSpec
)颜色名称或单个RGB三元组。
若要为每个形状使用不同的颜色,请指定米-element向量或单元格数组的颜色名称或米-by-3数字矩阵,其中每行都是RGB三元组。米指定给函数的形状数。
线宽
- - - - - -边线宽度
“汽车”
(默认)|正标量整数|米-元素向量的正值
边框线宽度(以像素为单位),指定为正标量整数或米-element正标量整数的向量,其中米是形状的数量。若要对所有形状使用相同的线宽,请指定一个正标量整数。否则,指定米-element正整数向量。
LineOpacity
- - - - - -形状填充的边框不透明度
0
(默认)|米-在[0 1]范围内的元素向量
形状填充的边框线不透明度,指定为米-范围[的数值的元素向量0 1
),米是形状的数量。若要对所有形状的边线使用相同的不透明度,请指定一个标量不透明度值。对于完全不透明的边界线,设置不透明度
来1
.
LabelTextColor
- - - - - -标签文本颜色
“黑
(默认)|一个或多个RGB三胞胎|一个或多个颜色名称或简短的颜色名称
标记文本颜色,指定为一个或多个RGB三元组,或一个或多个颜色名称或短颜色名称。要为所有标签的文本使用相同的颜色,请指定一个单独的(MATLABColorSpec
)颜色名称或单个RGB三元组。
若要为每个标签的文本使用不同的颜色,请指定米-element向量或单元格数组的颜色名称或米-by-3数字矩阵,其中每行都是RGB三元组。米指定给函数的标签数。
LabelOpacity
- - - - - -标签不透明度
0
(默认)|米-在[0 1]范围内的元素向量
标签不透明度,指定为米-范围[的数值的元素向量0 1
),米是形状的数量。若要对所有标签使用相同的不透明度,请指定一个标量不透明度值。对于完全不透明的标签,请设置不透明度
来1
.
LabelFont
- - - - - -标签的字体
“Helvetica”
(默认)|“FixedWidth”
|金宝app支持字体
标签字体,指定为“FixedWidth”
或系统支持的字体。金宝app要正确显示和打印文本,必须选择系统支持的字体。金宝app如果选择不支持的字体,该函数将返回错误金宝app。如果你指定“FixedWidth”
时,函数使用FixedWidthFont
的属性根的属性对象。的值决定固定宽度的字体get (0, ' FixedWidthFontName ')
.
LabelFontSize
- - - - - -标签字体大小
12
(默认)|积极的标量
标记字体大小(单位为点),指定为正标量。
版本历史
R2020b中介绍R2022b:想象投影的长方体
增加了可视化金宝app投影长方体的支持。
R2022a:包围盒坐标:使用空间坐标进行目标检测的数据增强
的bboxresize
,bboxcrop
,bboxwarp
,showShape
函数假设轴向矩形的输入包围框坐标在空间坐标中指定,并以空间坐标返回转换后的包围框。
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。