exponenta event banner

bboxOverlapRatio

Вычислить коэффициент перекрытия ограничивающей рамки

Описание

пример

overlapRatio = bboxOverlapRatio(bboxA,bboxB) возвращает коэффициент перекрытия между каждой парой ограничивающих рамок bboxA и bboxB. Функция возвращает значение overlapRatio значение между 0 и 1, где 1 подразумевает совершенное перекрытие.

overlapRatio = bboxOverlapRatio(bboxA,bboxB,ratioType) дополнительно позволяет указать метод, используемый для вычисления отношения. Необходимо установить ratioType к также 'Union' или 'Min'.

Примеры

свернуть все

Определите две ограничивающие рамки в формате [x y width height].

bboxA = [150,80,100,100]; 
bboxB = bboxA + 50;

Отображение ограничивающих рамок на изображении.

I = imread('peppers.png');
RGB = insertShape(I,'FilledRectangle',bboxA,'Color','green');
RGB = insertShape(RGB,'FilledRectangle',bboxB,'Color','yellow');
imshow(RGB)

Figure contains an axes. The axes contains an object of type image.

Вычислите коэффициент перекрытия между двумя ограничивающими прямоугольниками.

overlapRatio = bboxOverlapRatio(bboxA,bboxB)
overlapRatio = 0.0833

Случайное создание двух наборов ограничивающих рамок.

bboxA = 10*rand(5,4); 
bboxB = 10*rand(10,4);

Убедитесь, что ширина и высота полей положительны.

bboxA(:,3:4) = bboxA(:,3:4) + 10;
bboxB(:,3:4) = bboxB(:,3:4) + 10;

Вычислите коэффициент перекрытия между каждой парой.

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

Входные аргументы

свернуть все

Ограничивающие прямоугольники, определенные как M-4 или нередкая числовая матрица M-5. M - количество ограничивающих прямоугольников. Каждая строка матрицы определяет ограничительную рамку как прямоугольник, выровненный по оси, или как повернутый прямоугольник. В этой таблице описывается формат каждой ограничивающей рамки.

Ограничивающая рамкаРядОписание
Выровненный по оси прямоугольник[xmin, ymin, ширина, высота]Этот тип ограничивающей рамки определяется в координатах пикселей как матрица M-by-4, представляющая M ограничивающих рамок
Повернутый прямоугольник[xcenter, ycenter, ширина, высота, рыскание]Этот тип ограничивающей рамки определяется в пространственных координатах как матрица M-by-5, представляющая M ограничивающих рамок. Координаты xcenter и ycenter представляют центр ограничивающей рамки. Элементы ширины и высоты представляют длину рамки вдоль осей x и y соответственно. Угол поворота в градусах. Величина поворота вокруг центра ограничивающей рамки измеряется в направлении по часовой стрелке.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Ограничивающие прямоугольники, определенные как M-4 или нередкая числовая матрица M-5. M - количество ограничивающих прямоугольников. Каждая строка M матрицы определяет ограничивающую рамку как прямоугольник, выровненный по оси, или как повернутый прямоугольник. В этой таблице описывается формат каждой ограничивающей рамки.

Ограничивающая рамкаРядОписание
Выровненный по оси прямоугольник[xmin, ymin, ширина, высота]Этот тип ограничивающей рамки определяется в координатах пикселей как матрица M-by-4, представляющая M ограничивающих рамок
Повернутый прямоугольник[xcenter, ycenter, ширина, высота, рыскание]Этот тип ограничивающей рамки определяется в пространственных координатах как матрица M-by-5, представляющая M ограничивающих рамок. Координаты xcenter и ycenter представляют центр ограничивающей рамки. Элементы ширины и высоты представляют длину рамки вдоль осей x и y соответственно. Угол поворота в градусах. Величина поворота вокруг центра ограничивающей рамки измеряется в направлении по часовой стрелке.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Тип отношения, указанный как символьный вектор 'Union' или 'Min'.

  • Задайте тип отношения как 'Union' чтобы вычислить отношение как площадь пересечения между bboxA и bboxB, деленное на площадь союза двух.

  • Задайте тип отношения как 'Min' чтобы вычислить отношение как площадь пересечения между bboxA и bboxB, деленное на минимальную площадь двух ограничивающих рамок.

Типы данных: char

Выходные аргументы

свернуть все

Коэффициент перекрытия между двумя ограничивающими рамками, возвращаемый в виде матрицы M-by-N. Каждый (I, J) элемент в выходной матрице соответствует коэффициенту перекрытия между строками I в bboxA и ряд J в bboxB. Функция возвращает overlapRatio в диапазоне от 0 до 1, где 1 подразумевает совершенное перекрытие. Если либо bboxA или bboxB является двойным, то функция возвращает overlapRatio как double. В противном случае функция возвращает его как single.

Функция вычисляет коэффициент перекрытия на основе типа отношения. Можно задать ratioType кому 'Union' или 'Min':

Типы данных: single | double

Расширенные возможности

.
Представлен в R2014b