Отображение фигур на изображении, видео или облаке точек
showShape(___, указывает параметры, использующие один или несколько аргументов пары имя-значение. Например, 'Name,Value)Color','yellow'указывает цвет отображаемых фигур как желтый.
Чтение изображения в рабочую область.
I = imread('visionteam1.jpg');Создайте агрегатный детектор элементов канала (ACF).
detector = peopleDetectorACF()
detector =
acfObjectDetector with properties:
ModelName: 'inria-100x41'
ObjectTrainingSize: [100 41]
NumWeakLearners: 2048
Обнаружение людей на изображении.
[bboxes,scores] = detect(detector,I);
Отображение изображения с маркированным прямоугольником, включая соответствующий показатель обнаружения, вокруг каждого обнаруженного человека.
figure imshow(I) labels = "person:"+scores; showShape('rectangle',bboxes,'Label',labels)

Считывание данных облака точек в рабочее пространство.
ptCloud = pcread('teapot.ply');Отображение данных облака точек.
figure pcshow(ptCloud) xlabel('X') ylabel('Y') zlabel('Z')
Определите кубоид и отобразите его зеленым цветом с непрозрачностью 0.5.
pos = [0.3753 0 1.65 6 4 3 0 0 0]; showShape('cuboid',pos,'Color','green','Opacity',0.5)

Считывание данных облака точек в рабочее пространство.
ptCloud = pcread('teapot.ply');Определите матрицу поворота и преобразование 3-D для поворота облака точек и связанного кубовида на 5 градусов.
rot = 5; R = [ cosd(rot) sind(rot) 0 0; ... -sind(rot) cosd(rot) 0 0; ... 0 0 1 0; ... 0 0 0 1]; tform = affine3d(R);
Вычислите визуализированные пределы x и y облака точек, чтобы гарантировать, что облако точек не будет обрезано во время вращения.
pcLimits = abs([ptCloud.XLimits ptCloud.YLimits]); maxLimit = max(pcLimits);
Добавьте на график дополнительное поле, чтобы не допустить подрезки кубоида во время вращения.
margin = 1; maxLimit = maxLimit + margin; xlimits = [-maxLimit maxLimit]; ylimits = [-maxLimit maxLimit]; zlimits = ptCloud.ZLimits;
Создайте проигрыватель для визуализации облака точек.
player = pcplayer(xlimits,ylimits,zlimits);
Настройте метки осей проигрывателя.
xlabel(player.Axes,'X (m)'); ylabel(player.Axes,'Y (m)'); zlabel(player.Axes,'Z (m)');
Определите кубоид вокруг облака точек.
cuboidPosition = [0.3753 0 1.65 6 4 3 0 0 0];
Определите выходной вид для вращения кубика. Используйте те же ограничения, что и проигрыватель, чтобы кубоид не подрезался. Затем отобразите повернутое облако точек и кубоид.
gridSize = [1 1 1]; ref = imref3d(gridSize,xlimits,ylimits,zlimits); for i = 1:round((360/rot)) % Rotate point cloud. ptCloud = pctransform(ptCloud,tform); % Rotate the cuboid. cuboidPosition = bboxwarp(cuboidPosition,tform,ref); % Show rotated point cloud data. view(player,ptCloud) % Show rotated cuboid. showShape('cuboid',cuboidPosition, ... 'Parent',player.Axes, ... 'Color','green', ... 'Opacity',0.5) % Use drawnow to synchronize point cloud and shape visualization. drawnow end

shape - Тип формы'line' | 'rectangle' | 'cuboid' | 'polygon' | 'circle'Тип фигуры, заданный как символьный вектор. Вектор может быть 'line', 'rectangle', 'cuboid, 'polygon', или 'circle'.
Типы данных: string
position - Положения и размеры формПоложения и размеры фигур, определяемые в соответствии с типом фигур, описанным в этой таблице.
| Ограничивающая рамка | Описание |
|---|---|
| Выровненный по оси прямоугольник |
Определяется в координатах пикселей как M-by-4 числовая матрица со строками вида [x y w h] , где :
|
| Повернутый прямоугольник |
Определяется в пространственных координатах как M-by-5 числовая матрица со строками вида [xctr yctr xlen ylen yaw ], где:
|
| Cuboid |
Определяется в пространственных координатах как M-by-9 числовая матрица со строками вида [xctr yctr zctr xlen ylen zlen xrot yrot zrot], где :
На рисунке показано, как эти значения определяют положение кубоида.
|
Circle | Определяется в пространственных координатах как M-by-3 числовая матрица со строками вида [xctr yctr radius], где:
|
| Определяется в пространственных координатах как матрица P-by-2, в которой каждая строка является конечной точкой [x y] или вектором 1-by-2P последовательных конечных точек от [x1 y1 x2 y2... xP xP].
Чтобы указать несколько строк, содержащих разное количество конечных точек, можно использовать формат массива ячеек, описанный для многоугольника. |
Polygon | Определяется в пространственных координатах как массив M-by-1 ячеек, в котором каждая ячейка содержит матрицу L-by-2 с расположениями вершин [x y] или вектор 1-by-2L с последовательными расположениями вершин вида [x1, y1, x2, y2,... xL, yL], где:
|
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
Color','yellow'указывает цвет отображаемых фигур как желтый.'Label' - Метка формы[] (по умолчанию) | скаляр | вектор M-элемента | массив ячеек M-элемента символьных векторовМетка формы, заданная как разделенная запятыми пара, состоящая из 'Label' и скалярный вектор, вектор М-элемента или массив ячеек М-элемента символьных векторов.
Если входным значением является скалярное значение, то функция применяет это значение в качестве метки к каждой фигуре. Если вход является вектором M-элемента или массивом ячеек, то функция применяет каждое значение к соответствующей фигуре, используя порядок, в котором фигуры задаются для функции. M - количество форм, указанных для функции.
'Color' - Цвет формыlines(1) (по умолчанию) | один или несколько триплетов RGB | одно или несколько имен цветов или короткие имена цветовЦвет формы, заданный как разделенная запятыми пара, состоящая из 'Color' и один или более триплетов RGB, или одно или более имен цветов, или коротких имен цветов. Чтобы использовать одинаковый цвет для всех фигур, укажите один (MATLAB ColorSpec) имя цвета или один триплет RGB.
Чтобы использовать разные цвета для каждой фигуры, укажите вектор M-элемента или массив ячеек с именами цветов или M-by-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество форм, указанных для функции.
'Opacity' - Непрозрачность заливки формы0 (по умолчанию) | M-элементный вектор значений в диапазоне [0 1]Непрозрачность заливки формы, указанной как разделенная запятыми пара, состоящая из 'Opacity' и вектор М-элементов с числовыми значениями в диапазоне [0 1]. Чтобы использовать одинаковую непрозрачность для всех фигур, задайте скалярное значение непрозрачности. Для полностью непрозрачной заливки формы задайте 'Opacity' кому 1.
'Parent' - Выходные осиgca (по умолчанию) | Axes графический объектВыходные оси, указанные как разделенная запятыми пара, состоящая из 'Parent' и графический объект «Свойства осей».
'LineColor' - Цвет линии границы'auto' (по умолчанию) | один или несколько триплетов RGB | одно или несколько имен цветов или короткие имена цветовЦвет линии границы, заданный как разделенная запятыми пара, состоящая из 'Color' и один или более триплетов RGB, или одно или более имен цветов, или коротких имен цветов. Чтобы использовать один и тот же цвет для всех линий границ, укажите один (MATLAB ColorSpec) имя цвета или один триплет RGB.
Чтобы использовать разные цвета для каждой фигуры, укажите вектор M-элемента или массив ячеек с именами цветов или M-by-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество форм, указанных для функции.
'LineWidth' - Ширина линии границы'auto' (по умолчанию) | положительное скалярное целое | M-элементный вектор положительных значенийШирина линии границы в пикселях, заданная как разделенная запятыми пара, состоящая из 'LineWidth' и положительное скалярное целое число или вектор М-элементов положительных скалярных целых чисел. Чтобы использовать одинаковую ширину линии для всех фигур, укажите положительное скалярное целое число. В противном случае укажите вектор M-элементов положительных целых чисел, где M - количество форм, указанных для функции.
'LineOpacity' - Непрозрачность линии границы заливки формы0 (по умолчанию) | M-элементный вектор значений в диапазоне [0 1]Непрозрачность линии границы заливки формы, определяемая как разделенная запятыми пара, состоящая из 'Opacity' и вектор М-элементов с числовыми значениями в диапазоне [0 1]. Чтобы использовать одинаковую непрозрачность для линии границы всех форм, задайте скалярное значение непрозрачности. Для полностью непрозрачной линии границы установите 'Opacity' кому 1.
'LabelTextColor' - Цвет текста метки'black (по умолчанию) | один или несколько триплетов RGB | одно или несколько имен цветов или короткие имена цветовЦвет текста метки, заданный как разделенная запятыми пара, состоящая из 'Color' и один или более триплетов RGB, или одно или более имен цветов, или коротких имен цветов. Чтобы использовать один и тот же цвет для текста всех меток, укажите один (MATLAB ColorSpec) имя цвета или один триплет RGB.
Чтобы использовать разные цвета для текста каждой метки, укажите вектор M-элемента или массив ячеек с именами цветов или M-by-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество меток, указанных для функции.
'LabelOpacity' - Непрозрачность этикеток0 (по умолчанию) | M-элементный вектор значений в диапазоне [0 1]Непрозрачность метки, указанная как разделенная запятыми пара, состоящая из 'Opacity' и вектор М-элементов с числовыми значениями в диапазоне [0 1]. Чтобы использовать одинаковую непрозрачность для всех меток, задайте скалярное значение непрозрачности. Для полностью непрозрачной метки установите 'Opacity' кому 1.
'LabelFont' - Шрифт метки'Helvetica' (по умолчанию) | 'FixedWidth' | поддерживаемый шрифтШрифт метки, указанный как разделенная запятыми пара, состоящая из 'LabelFont' и 'FixedWidth' или шрифт, поддерживаемый системой. Для правильного отображения и печати текста необходимо выбрать шрифт, поддерживаемый системой. При выборе неподдерживаемого шрифта функция возвращает ошибку. При указании 'FixedWidth', функция использует шрифт, указанный FixedWidthFont свойства объекта Root Properties. Шрифт фиксированной ширины зависит от значения get(0,'FixedWidthFontName') .
'LabelFontSize' - Размер шрифта метки12 (по умолчанию) | положительный скалярРазмер шрифта метки в единицах точек, указанный как разделенная запятыми пара, состоящая из 'LabelFontSize' и положительный скаляр.
imshow | insertMarker | insertObjectAnnotation | insertObjectMask | insertShape | insertText | pcplayer | pcshow
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.