bboxresize

Изменение размера ограничивающих рамок

Описание

пример

bboxB = bboxresize(bboxA,scale) изменяет размер ограничивающих рамок в bboxA по величине, заданной scale.

Примеры

свернуть все

Чтение изображения.

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"
    ];

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

scale = 1.5; 
J = imresize(I,scale); 
bboxB = bboxresize(bboxA,scale); 

Отображение результатов.

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

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

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

свернуть все

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

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

Определенный в пикселе координирует как <reservedrangesplaceholder4>-by-4 числовая матрица со строками формы [<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>], где:

  • M - количество выровненных по оси прямоугольников.

  • x и y задайте верхний левый угол прямоугольника.

  • w задает ширину прямоугольника, которая является его длиной вдоль оси x.

  • h задает высоту прямоугольника, которая является его длиной вдоль оси y.

Повернутый прямоугольник

Определенный в пространственных координатах как <reservedrangesplaceholder5>-by-5 числовая матрица со строками формы [<<reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reserved angesplaceholder0>] , где:

  • M - количество повернутых прямоугольников.

  • xctr и yctr определяют центр прямоугольника.

  • xlen задает ширину прямоугольника, которая является его длиной вдоль оси x перед поворотом.

  • ylen задает высоту прямоугольника, которая является его длиной вдоль оси y перед поворотом.

  • yaw задает угол поворота в степенях. Вращение по часовой стрелке-положительно вокруг центра ограничивающего прямоугольника.

Square rectangle rotated by -30 degrees.

Cuboid

Определенный в пространственных координатах как <reservedrangesplaceholder9>-by-9 числовая матрица со строками формы [<<reservedrangesplaceholder8> <reservedrangesplaceholder7> <reservedrangesplaceholder6> <reservedrangesplaceholder5> <reserved angesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplace holder0>] , где:

  • M - количество кубоидов.

  • xctr, yctr и zctr задают центр кубоида.

  • xlen, ylen и zlen задают длину кубоида вдоль оси x, оси y и оси z, соответственно, перед вращением.

  • xrot, yrot и zrot задают углы поворота кубоида вокруг оси x, оси y и оси z, соответственно. xrot, yrot и zrot углов поворота находятся в степенях вокруг кубоидного центра. Каждое вращение по часовой стрелке-положительно относительно положительного направления связанной пространственной оси. Функция вычисляет матрицы вращения, принимая ZYX упорядочить углы Эйлера [xrot yrot zrot].

Рисунок показывает, как эти значения определяют положение кубоида.

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

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

свернуть все

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

См. также

| | |

Введенный в R2019b