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 -by-4 или M -by-5, не анализируют числовую матрицу. M - количество ограничивающих рамок. Каждая строка матрицы определяет ограничивающий прямоугольник как выровненный по оси прямоугольник или повернутый прямоугольник. В этой таблице описывается формат для каждого ограничивающего прямоугольника.

Ограничительный прямоугольникРядОписание
Выровненный по оси прямоугольник[x мин, y мин, width, height]Этот тип ограничивающего прямоугольника определяется в пиксельных координатах как матрица M-на-4, представляющая M ограничивающих прямоугольника
Повернутый прямоугольник[x центр, центр y, width, height, yaw]Этот тип ограничивающего прямоугольника определяется в пространственных координатах как матрица M-на-5, представляющая M ограничивающих прямоугольника. Координаты центра и x y представляют центр ограничивающего прямоугольника. Элементы width и height представляют длину куба вдоль осей x и y, соответственно. Этот yaw представляет угол поворота в степенях. Величина поворота вокруг центра ограничивающего прямоугольника измеряется в направлении по часовой стрелке.

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

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

Ограничительный прямоугольникРядОписание
Выровненный по оси прямоугольник[x мин, y мин, width, height]Этот тип ограничивающего прямоугольника определяется в пиксельных координатах как матрица M-на-4, представляющая M ограничивающих прямоугольника
Повернутый прямоугольник[x центр, центр y, width, height, yaw]Этот тип ограничивающего прямоугольника определяется в пространственных координатах как матрица M-на-5, представляющая M ограничивающих прямоугольника. Координаты центра и x y представляют центр ограничивающего прямоугольника. Элементы width и height представляют длину куба вдоль осей x и y, соответственно. Этот yaw представляет угол поворота в степенях. Величина поворота вокруг центра ограничивающего прямоугольника измеряется в направлении по часовой стрелке.

Типы данных: 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