Отображение фигур на изображении, видео или облаке точек
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
- Положения и размеры фигурПоложения и размеры фигур, заданные в зависимости от типа фигур, описанных в этой таблице.
Ограничительный прямоугольник | Описание |
---|---|
Выровненный по оси прямоугольник |
Определенный в пикселе координирует как <reservedrangesplaceholder4>-by-4 числовая матрица со строками формы [<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>], где:
|
Повернутый прямоугольник |
Определенный в пространственных координатах как <reservedrangesplaceholder5>-by-5 числовая матрица со строками формы [<<reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reserved angesplaceholder0>] , где:
|
Cuboid |
Определенный в пространственных координатах как <reservedrangesplaceholder9>-by-9 числовая матрица со строками формы [<<reservedrangesplaceholder8> <reservedrangesplaceholder7> <reservedrangesplaceholder6> <reservedrangesplaceholder5> <reserved angesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplace holder0>] , где:
Рисунок показывает, как эти значения определяют положение кубоида. |
Circle | Задана в пространственных координатах как числовая матрица M -на 3 с строками вида [xctr yctr radius], где:
|
| Задан в пространственных координатах как матрица P-на-2, в которой каждая строка является конечной точкой [x y] или вектором P 1 на 2 последовательных конечных точек от [x 1 y 1 x 2 y 2... x P x P].
Чтобы задать несколько линий, которые содержат разное количество конечных точек, можно использовать формат массива ячеек, описанный для многоугольника. |
Polygon | Заданный в пространственных координатах как M-на-1 массив ячеек, в котором каждая ячейка содержит L-на-2 матрицу [x y] местоположений вершин или 1 на 2 L вектор последовательных расположений вершин вида [x 1, y 1, x 2, y 2,... x L, y L], где:
|
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
Color'
, 'yellow
'задает желтый цвет отображаемых фигур.'Label'
- Метка формы[]
(по умолчанию) | скалярный | M вектор -элемент | M -элемент массив ячеек векторов символовМетка фигуры, заданная как разделенная разделенными запятой парами, состоящая из 'Label'
и либо скаляр, M вектор -элемент, либо M элемент ячеек-element из векторов символов.
Если вход является скалярным значением, то функция применяет это же значение в качестве метки к каждой форме. Если вход является M вектором или массивом ячеек, то функция применяет каждое значение к соответствующей форме, используя порядок, в котором формы заданы для функции. M - количество форм, заданное для функции.
'Color'
- Цвет формыlines(1)
(по умолчанию) | одну или несколько триплетов RGB | одним или несколькими названиями цвета или короткими названиями цветаЦвет формы, заданный как разделенная разделенными запятой парами, состоящая из 'Color'
и один или несколько триплетов RGB, или одно или несколько названия цвета или коротких названий цвета. Чтобы использовать один и тот же цвет для всех форм, задайте один (MATLAB ColorSpec
) название цвета или один триплет RGB.
Чтобы использовать другой цвет для каждой формы, задайте M-вектор или массив ячеек с названиями цвета или M-на-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество форм, заданное для функции.
'Opacity'
- Непрозрачность заливки формы0
(по умолчанию) | M вектор -элемента значений в области значений [0 1Непрозрачность заливки формы, заданная как разделенная разделенными запятой парами, состоящая из 'Opacity'
и вектор M-element с числовыми значениями в области значений [0 1]. Чтобы использовать ту же непрозрачность для всех форм, задайте значение скалярной непрозрачности. Для полностью непрозрачной заливки формы задайте 'Opacity'
на 1
.
'Parent'
- Выходные осиgca
(по умолчанию) | Axes
графический объектВыходные оси, заданные как разделенная разделенными запятой парами, состоящая из 'Parent'
и Свойства осей графика графический объект.
'LineColor'
- Цвет линии границы'auto'
(по умолчанию) | одну или несколько триплетов RGB | одним или несколькими названиями цвета или короткими названиями цветаЦвет линии границы, заданный как разделенная разделенными запятой парами, состоящая из 'Color'
и один или несколько триплетов RGB, или одно или несколько названия цвета или коротких названий цвета. Чтобы использовать один и тот же цвет для всех линий границы, задайте одну (MATLAB ColorSpec
) название цвета или один триплет RGB.
Чтобы использовать другой цвет для каждой формы, задайте M-вектор или массив ячеек с названиями цвета или M-на-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество форм, заданное для функции.
'LineWidth'
- Ширина линии границы'auto'
(по умолчанию) | положительное скалярное целое число | M элемент положительных значенийШирина линии границы в пикселях, заданная как разделенная разделенными запятой парами, состоящая из 'LineWidth'
и положительное скалярное целое число или M-вектор положительных скалярных целых чисел. Чтобы использовать ту же ширину линии для всех форм, задайте положительное скалярное целое число. В противном случае задайте вектор M-element из положительных целых чисел, где M - количество форм, заданное для функции.
'LineOpacity'
- Непрозрачность линии границы заливки формы0
(по умолчанию) | M вектор -элемента значений в области значений [0 1Непрозрачность линии границы заливки формы, заданная как разделенная разделенными запятой парами, состоящая из 'Opacity'
и вектор M-element с числовыми значениями в области значений [0 1]. Чтобы использовать ту же непрозрачность для линии границы всех форм, задайте значение скалярной непрозрачности. Для полностью непрозрачной линии границы установите 'Opacity'
на 1
.
'LabelTextColor'
- Маркируйте цвет текста'black
(по умолчанию) | одну или несколько триплетов RGB | одним или несколькими названиями цвета или короткими названиями цветаПометьте цвет текста, заданный как разделенная разделенными запятой парами, состоящая из 'Color'
и один или несколько триплетов RGB, или одно или несколько названия цвета или коротких названий цвета. Чтобы использовать тот же цвет для текста всех меток, задайте один (MATLAB ColorSpec
) название цвета или один триплет RGB.
Чтобы использовать другой цвет для текста каждой метки, задайте M элемент или массив ячеек с названиями цвета или M-на-3 числовую матрицу, в которой каждая строка является триплетом RGB. M - количество меток, заданное для функции.
'LabelOpacity'
- Маркируйте непрозрачность0
(по умолчанию) | M вектор -элемента значений в области значений [0 1Пометьте непрозрачность, заданную как разделенную разделенными запятой парами, состоящую из 'Opacity'
и вектор M-element с числовыми значениями в области значений [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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.