bboxcrop

Обрежьте ограничительные рамки

Описание

пример

bboxB = bboxcrop(bboxA,window) ограничительные рамки обрезок от набора входных ограничительных рамок, bboxA, расположенный в области обрезки, window.

[bboxB,indices] = bboxcrop(bboxA,window) дополнительно возвращает вектор индексов, которые указывают который ограничительные рамки в bboxA в окне обрезки, window.

[___] = bboxcrop(___,'OverlapThreshold',threshold) дополнительно устанавливает порог перекрытия.

Примеры

свернуть все

Считайте изображение.

I = imread('peppers.png');

Задайте ограничительные рамки и метки.

bboxA = [
    410 230 100 90
    186 78  80  60
    ]
bboxA = 2×4

   410   230   100    90
   186    78    80    60

labelsA = [
    "garlic"
    "onion"
    ];

Создайте окно обрезки центра.

targetSize = [256 256];
win = centerCropWindow2d(size(I),targetSize);

Центр обрезает изображение.

[r,c] = deal(win.YLimits(1):win.YLimits(2),win.XLimits(1):win.XLimits(2));
J = I(r,c,:);

Центральные поля обрезки и метки. Поля за окном обрезки удалены.

[bboxB,indices] = bboxcrop(bboxA,win);
labelsB = labelsA(indices);

Отобразите результаты.

figure
I = insertObjectAnnotation(I,'Rectangle',bboxA,labelsA);
J = insertObjectAnnotation(J,'Rectangle',bboxB,labelsB);
imshowpair(I,J,'montage')

Входные параметры

свернуть все

Ограничительные рамки в виде M-by-4, M-by-5, или M-by-9 неразреженная числовая матрица. 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 представляет угол поворота в градусах. Объем вращения вокруг центра ограничительной рамки измеряется в направлении по часовой стрелке.
Кубоид[Центр x, центр y, центр z, width, height, depth, rx, ry, rz]Заданный в пространственных координатах как M-by-9 матрица, представляющая ограничительные рамки M. Центр x, центр y и координаты центра y представляют центр ограничительной рамки. width и элементы height представляют длину поля вдоль x и осей y, соответственно. rx, ry и углы поворота rz в градусах о центре кубоида. Вращение положительно в направлении по часовой стрелке относительно положительного направления оси.

Матрицы вращения вычисляются, принимая, что ZYX заказывает Углы Эйлера [rx, ry, rz].

Обрежьте окно в виде четырехэлементного вектора или images.spatialref.Cuboid объект.

Когда вы задаете bboxA как прямоугольный вход, окно обрезки должно быть четырехэлементным вектором в формате [x, y, width, height].

Когда вы задаете bboxA как кубоид, окном обрезки должен быть images.spatialref.Cuboid объект.

Перекройте порог, заданная положительная скалярная величина, меньше чем или равная 1. Сумма перекрытия между преобразованными полями и областью, заданной выходным представлением, задана как:

область (bbox пересекают bounding rectangle) / область (bbox)

  • bounding rectangle — Заданный входом пространственный ссылочный объект, ref.

  • bbox — Результат преобразования окружает bboxA.

Если вычисленное значение перекрытия больше значения threshold свойство, затем преобразованные поля отсекаются к границе ограничительного прямоугольника. В противном случае поля отбрасываются. Понижение порога может привести к частям отбрасываемого объекта.

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

свернуть все

Деформированные ограничительные рамки, возвращенные как M2-by-N матрица ограничительных рамок M2. Количество возвращенных ограничительных рамок меньше количества ограничительных рамок во входе. Каждая строка, M2, матрицы задают одну ограничительную рамку того же типа как вход bboxA.

Индексы, возвращенные как вектор целых чисел. Индексы указывают который ограничительные рамки во входе, bboxA, в окне обрезки.

Смотрите также

| |

Введенный в R2019b