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)

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

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 матрица. Каждая строка bboxA содержит вектор в формате [x y width height], где x и y соответствуют левому верхнему углу ограничительной рамки. Ограничительные рамки вводят bboxA и bboxB должно быть действительным, конечным, и неразреженным.

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

Ограничительная рамка, заданная как M-by-4 матрица. Каждая строка bboxB содержит вектор в формате [x y width height], где x и y соответствуют левому верхнему углу ограничительной рамки. Ограничительные рамки вводят bboxA и bboxB должно быть действительным, конечным, и неразреженным.

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2014b