bboxOverlapRatio

Вычислите отношение перекрытия ограничительной рамки

Описание

пример

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

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

Примеры

свернуть все

Задайте две ограничительных рамки в формате [x y высота ширины].

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 object. The axes object 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 является количеством ограничительных рамок. Каждая строка матрицы задает ограничительную рамку или как выровненный осью прямоугольник или как вращаемый прямоугольник. Эта таблица описывает формат для каждой ограничительной рамки.

BoundingboxСтрокаОписание
Выровненный осью прямоугольник[Min x, min y, width, height]Этот тип ограничительной рамки задан в пиксельных координатах как M-by-4 матрица, представляющая ограничительные рамки M
Вращаемый прямоугольник[Центр x, центр y, width, height, yaw]Этот тип ограничительной рамки задан в пространственных координатах как M-by-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, матрицы задают ограничительную рамку или как выровненный осью прямоугольник или как вращаемый прямоугольник. Эта таблица описывает формат для каждой ограничительной рамки.

BoundingboxСтрокаОписание
Выровненный осью прямоугольник[Min x, min y, width, height]Этот тип ограничительной рамки задан в пиксельных координатах как M-by-4 матрица, представляющая ограничительные рамки M
Вращаемый прямоугольник[Центр x, центр y, width, height, yaw]Этот тип ограничительной рамки задан в пространственных координатах как M-by-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