主要内容

bboxwarp

对包围框应用几何变换

描述

例子

bboxB= bboxwarp (bboxAtform裁判中转换边界框bboxA根据定义的几何变换tform.包围框可以是轴对齐的矩形、旋转的矩形或长方体。空间参考对象,裁判,定义框被转换到的输出视图。该函数支持二维和三维包围框。金宝app

bboxB= bboxwarp (bboxAtform裁判“OverlapThreshold”,overlapThreshold还指定正重叠阈值。

bboxB指数= bboxwarp(___另外返回一个索引向量,这些索引指示在哪些边界框中bboxA对应于输出中的扭曲版本,bboxB.您可以指定前面两组输入参数中的任何一组。

例子

全部折叠

读一张图片。

I = 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

rout = affineOutputView(size(I),tform);

扭曲图像。

J = imwarp(I,tform,“OutputView”,溃败);

扭曲盒子。

[bboxB, indexes] = bboxwarp(bboxA,tform,rout);labelsB = labelsA(索引);

显示结果。

注释edi = insertObjectAnnotation(I,“矩形”、bboxA labelsA);注释J =插入tobjectannotation (J,“矩形”、bboxB labelsB);图蒙太奇({annotatedI, annotatedJ})

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

约束框,指定为4,5、的非稀疏数值矩阵边界框。每一行,,将包围框定义为轴对齐矩形、旋转矩形或长方体。包围框的格式如下表所示。

边界框 描述
Axis-aligned矩形

在空间坐标中定义为-by-4数字矩阵,行形式为[xywh),地点:

  • 是轴对齐矩形的数量。

  • x而且y指定矩形的左上角。

  • w指定矩形的宽度,即矩形沿x设在。

  • h指定矩形的高度,即矩形沿y设在。

旋转的矩形

在空间坐标中定义为-by-5数字矩阵,行形式为[xctryctrxlenylen偏航),地点:

  • 是旋转矩形的个数。

  • xctr而且yctr指定矩形的中心。

  • xlen指定矩形的宽度,即矩形沿x-轴旋转前。

  • ylen指定矩形的高度,即矩形沿y-轴旋转前。

  • 偏航以角度为单位指定旋转角度。围绕包围框中心的旋转是顺时针正的。

方形矩形旋转了-30度。

长方体

在空间坐标中定义为-by-9的数字矩阵,行形式为[xctryctrzctrxlenylenzlenxrotyrotzrot),地点:

  • 是长方体的个数。

  • xctryctr,zctr指定长方体的中心。

  • xlenylen,zlen指定长方体沿的长度x设在,y设在,z-轴,分别在旋转前。

  • xrotyrot,zrot指定长方体围绕的旋转角度x设在,y设在,z分别设在。的xrotyrot,zrot旋转角度以围绕长方体中心的角度为单位。每个旋转相对于相关空间轴的正方向是顺时针正的。函数计算旋转矩阵假设ZYX股票阶欧拉角[xrotyrotzrot].

图中显示了这些值如何决定长方体的位置。

几何变换,指定为affinetform2d对象的矩形输入或affinetform3d对象用于长方体输入。bboxwarp函数支持只包含缩放、旋转和平金宝app移的仿射变换。

空间引用,指定为imref2d对象用于矩形输入或imref3d对象用于长方体输入。要获得这些对象之一,可以使用imwarp或者是affineOutputView函数。对象定义转换框的输出视图。所定义的输出视图之外完全转换的框裁判被丢弃。

[J,rout] = imwarp(I,tform);[bboxB, indexes] = bboxwarp(bboxA,tform,rout);
rout = affineOutputView(size(I),tform) J = imwarp(I,tform,'OutputView',rout);[bboxB, indexes] = bboxwarp(bboxA,tform,rout);

重叠阈值,指定为小于或等于的正标量1.变换后的方框与区域之间的重叠量W,由输出视图定义,定义为:

区域相交bboxAW)) /区域bboxBW)

的值阈值属性,则转换后的方框将被剪切到边界矩形边框。否则,包装盒将被丢弃。降低阈值可能会导致部分对象被丢弃。

输出参数

全部折叠

扭曲的包围框,返回为平方米——- - - - - -N矩阵的平方米边界框。返回的包围框数量小于输入中的包围框数量。每一行,平方米,定义了一个与输入类型相同的包围框bboxA.当bboxB包含浮点数据,则函数以相同类型返回bboxA.否则,函数返回bboxB类型

索引,作为整数向量返回。索引表示输入中的边界框,bboxA,对应于输出中的扭曲版本,bboxB

版本历史

R2019b引入

全部展开