帮助中心帮助中心
对边界框应用几何变换
bboxB = bboxwarp (bboxA tform ref)
bboxB = bboxwarp (bboxA tform,裁判,“OverlapThreshold OverlapThreshold)
[bboxB,指数]= bboxwarp (___)
例子
bboxB= bboxwarp (bboxA,tform,裁判)中转换边界框bboxA根据几何变换定义tform.边界框可以是轴向矩形、旋转矩形或长方体。空间参考对象,裁判,定义将框转换到的输出视图。该函数支持二维和三维边界框。
bboxB= bboxwarp (bboxA,tform,裁判)
bboxB
bboxA
tform
裁判
bboxB= bboxwarp (bboxA,tform,裁判“OverlapThreshold”,overlapThreshold)还指定正重叠阈值。
bboxB= bboxwarp (bboxA,tform,裁判“OverlapThreshold”,overlapThreshold)
overlapThreshold
[bboxB,指数) = bboxwarp (___)另外,返回一个索引向量,这些索引指示在哪个边界框中bboxA对应于输出中的扭曲版本,bboxB.您可以指定上述两组输入参数中的任何一组。
[bboxB,指数) = bboxwarp (___)
指数
全部折叠
读一个图像。
我= imread (“peppers.png”);
定义边界框和标签。
bboxA = [410 230 100 90 186 78 80 60]
bboxA =2×4410 230 100 90 186 78 80 60
labelsA = [“大蒜”“洋葱”];
定义一个仿射变换来水平翻转和翻译图像。
Tform = affinetform2d([-1 0 50;0 1 50;0 0 1);
创建的输出视图imwarp.
imwarp
溃败= affineOutputView(大小(I), tform);
扭曲的形象。
J = imwarp (tform,我“OutputView”,溃败);
扭曲的盒子。
[bboxB,指数]= bboxwarp (bboxA、tform溃败);labelsB = labelsA(指标);
显示结果。
annotatedI = insertObjectAnnotation(我“矩形”、bboxA labelsA);annotatedJ = insertObjectAnnotation (J,“矩形”、bboxB labelsB);图蒙太奇({annotatedI, annotatedJ})
绑定框,指定为米4,米5、米的非稀疏数值矩阵米边界框。每一行,米,将边界框定义为轴向矩形、旋转矩形或长方体。下表描述了边界框的格式。
在空间坐标中定义为米-by-4数字矩阵,行形式为[xywh),地点:
米是轴向对齐矩形的数量。
x而且y指定矩形的左上角。
y
w指定矩形的宽度,它是矩形沿x设在。
h指定矩形的高度,它是矩形沿y设在。
在空间坐标中定义为米-by-5数字矩阵,行形式为[xctryctrxlenylen偏航),地点:
米是旋转矩形的个数。
xctr而且yctr指定矩形的中心。
xlen指定矩形的宽度,它是矩形沿x设在前旋转。
ylen指定矩形的高度,它是矩形沿y设在前旋转。
偏航以角度为单位指定旋转角度。围绕边界框中心的顺时针正旋转。
在空间坐标中定义为米-by-9数字矩阵,行形式为[xctryctrzctrxlenylenzlenxrotyrotzrot),地点:
米是长方体的个数。
xctr,yctr,zctr指定长方体的中心。
xlen,ylen,zlen的长方体的长度x设在,y设在,z-轴,分别旋转前。
xrot,yrot,zrot指定长方体围绕的旋转角度x设在,y设在,z分别设在。的xrot,yrot,zrot旋转角是以长方体中心为单位的度数。每一次旋转相对于相关空间轴的正方向是顺时针正的。函数计算旋转矩阵假设ZYX股票阶欧拉角[xrotyrotzrot]。
ZYX股票
该图显示了这些值如何确定长方体的位置。
affinetform2d
affinetform3d
几何变换,指定为affinetform2d对象的矩形输入或affinetform3d对象的长方体输入。bboxwarp函数支持仅包含缩放、旋转和平移的仿射变换。
imref2d
imref3d
空间引用,指定为imref2d对象的矩形输入或imref3d对象的长方体输入。要获取这些对象之一,可以使用imwarp或者是affineOutputView函数。对象定义转换方框的输出视图。控件定义的输出视图之外完全转换的裁判被丢弃。
affineOutputView
[J,击溃]= imwarp(我tform);[bboxB,指数]= bboxwarp (bboxA、tform溃败);
路由= affineOutputView(size(I),tform) J = imwarp(I,tform,'OutputView',路由);[bboxB,指数]= bboxwarp (bboxA、tform溃败);
1
重叠阈值,指定为小于或等于的正标量1.变换后的盒子和区域之间的重叠量W,由输出视图定义,定义为:
区域(相交(bboxA,W)) /区域(bboxB,W).
区域
相交
的值阈值属性,然后将转换后的方框剪切到边界矩形边框上。否则,包装盒将被丢弃。降低阈值可能导致对象的部分内容被丢弃。
阈值
扭曲的边界框,返回作为平方米——- - - - - -N矩阵的平方米边界框。返回的边界框数量小于输入的边界框数量。每一行,平方米,定义一个与输入类型相同的边界框bboxA.当bboxB包含浮点数据,函数返回的类型与bboxA.否则,函数返回bboxB类型单.
单
索引,作为整数的向量返回。索引表示输入中的边界框,bboxA,对应于输出中的扭曲版本,bboxB.
全部展开
从R2022b开始,大多数计算机视觉工具箱™函数使用预乘法约定创建和执行几何变换。因此,您现在可以指定tform作为一个affinetform2d或affinetform3d几何变换对象,它使用前置乘法约定。
尽管你仍然可以指定tform作为一个affine2d或affine3d几何变换对象,这些对象不推荐使用,因为它们使用后乘约定。通过切换到新的几何变换对象,您可以简化几何变换工作流程。有关更多信息,请参见将几何变换迁移到预乘法约定.
affine2d
affine3d
的bboxresize,bboxcrop,bboxwarp,showShape函数假设轴向矩形的输入边界框坐标以空间坐标指定,并以空间坐标返回转换后的边界框。
bboxresize
bboxcrop
bboxwarp
showShape
imcrop|bboxcrop|bboxresize|imwarp|bboxerase
imcrop
bboxerase
您有了这个示例的修改版本。您想用您的编辑打开这个示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您的地理位置,我们建议您选择:.
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。
联系当地办事处