bboxOverlapRatio
Compute bounding box overlap ratio
Syntax
Description
returns
the overlap ratio between each pair of bounding boxes overlapRatio
= bboxOverlapRatio(bboxA
,bboxB
)bboxA
and bboxB
.
The function returns the overlapRatio
value between 0
and 1
,
where 1
implies a perfect overlap.
additionally lets you specify the method to use for computing the ratio. You must
set the overlapRatio
= bboxOverlapRatio(bboxA
,bboxB
,ratioType
)ratioType
to either 'Union'
or
'Min'
.
Examples
Compute the Overlap Ratio Between Two Bounding Boxes
Define two bounding boxes in the format [x y width height].
bboxA = [150,80,100,100]; bboxB = bboxA + 50;
Display the bounding boxes on an image.
I = imread('peppers.png'); RGB = insertShape(I,'filled-rectangle',bboxA,'ShapeColor','green'); RGB = insertShape(RGB,'filled-rectangle',bboxB,'ShapeColor','yellow'); imshow(RGB)
Compute the overlap ratio between the two bounding boxes.
overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = 0.0833
Compute Overlap Ratio Between Each Pair of Bounding Boxes
Randomly generate two sets of bounding boxes.
bboxA = 10*rand(5,4); bboxB = 10*rand(10,4);
Ensure that the width and height of the boxes are positive.
bboxA(:,3:4) = bboxA(:,3:4) + 10; bboxB(:,3:4) = bboxB(:,3:4) + 10;
Compute the overlap ratio between each pair.
overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = 5×10
0.2431 0.2329 0.3418 0.5117 0.7972 0.1567 0.1789 0.4339 0.0906 0.5766
0.3420 0.1655 0.7375 0.5188 0.2786 0.3050 0.2969 0.4350 0.2477 0.2530
0.4844 0.3290 0.3448 0.1500 0.1854 0.4976 0.5629 0.4430 0.5027 0.2685
0.3681 0.0825 0.3499 0.0840 0.0658 0.5921 0.6498 0.1930 0.7433 0.0676
0.3752 0.1114 0.3114 0.0696 0.0654 0.5408 0.6234 0.2046 0.7557 0.0717
Input Arguments
bboxA
— Bounding box
M-by-4 matrix | M-by-5 matrix
Bounding boxes, specified as an M-by-4 or M-by-5 nonsparse numeric matrix. M is the number of bounding boxes. Each row of the matrix defines a bounding box as either an axis-aligned rectangle or a rotated rectangle. This table describes the format for each bounding box.
Bounding Box | Row | Description |
---|---|---|
Axis-aligned rectangle | [xmin, ymin, width, height] | This type of bounding box is defined in pixel coordinates as an M-by-4 matrix representing M bounding boxes |
Rotated rectangle | [xcenter, ycenter, width, height, yaw] | This type of bounding box is defined in spatial coordinates as an M-by-5 matrix representing M bounding boxes. The xcenter and ycenter coordinates represent the center of the bounding box. The width and height elements represent the length of the box along the x and y axes, respectively. The yaw represents the rotation angle in degrees. The amount of rotation about the center of the bounding box is measured in the clockwise direction. |
Data Types: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
bboxB
— Bounding box
M-by-4 matrix | M-by-5 matrix
Bounding boxes, specified as an M-by-4 or M-by-5 nonsparse numeric matrix. M is the number of bounding boxes. Each row, M, of the matrix defines a bounding box as either an axis-aligned rectangle or a rotated rectangle. This table describes the format for each bounding box.
Bounding Box | Row | Description |
---|---|---|
Axis-aligned rectangle | [xmin, ymin, width, height] | This type of bounding box is defined in pixel coordinates as an M-by-4 matrix representing M bounding boxes |
Rotated rectangle | [xcenter, ycenter, width, height, yaw] | This type of bounding box is defined in spatial coordinates as an M-by-5 matrix representing M bounding boxes. The xcenter and ycenter coordinates represent the center of the bounding box. The width and height elements represent the length of the box along the x and y axes, respectively. The yaw represents the rotation angle in degrees. The amount of rotation about the center of the bounding box is measured in the clockwise direction. |
Data Types: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
ratioType
— Ratio type
'Union'
(default) | 'Min'
Ratio type, specified as the character vector 'Union'
or 'Min'
.
Set the ratio type to
'Union'
to compute the ratio as the area of intersection betweenbboxA
andbboxB
, divided by the area of the union of the two.Set the ratio type to
'Min'
to compute the ratio as the area of intersection betweenbboxA
andbboxB
, divided by the minimum area of the two bounding boxes.
Data Types: char
Output Arguments
overlapRatio
— Overlap ratio between two bounding boxes
M-by-N matrix
Overlap ratio between two bounding boxes, returned as an M-by-N matrix.
Each (I, J) element in the output
matrix corresponds to the overlap ratio between row I in bboxA
and
row J in bboxB
. The function
returns overlapRatio
in the between 0 and 1,
where 1
implies a perfect overlap. If either bboxA
or bboxB
is
double, then the function returns overlapRatio
as double
.
Otherwise, the function returns it as single
.
The function computes the overlap ratio based on the ratio type.
You can set ratioType
to 'Union'
or 'Min'
:
Data Types: single
| double
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2014b
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)