insertShape

Вставьте формы в изображение или видео

Синтаксис

RGB = insertShape(I,shape,position)
RGB = insertShape(___,Name,Value)

Описание

пример

RGB = insertShape(I,shape,position) возвращает изображение истинного цвета со вставленным shape. Входное изображение, I, может быть или истинным цветом или полутоновым изображением. Вы чертите формы путем перезаписи пиксельных значений.

пример

RGB = insertShape(___,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

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

I = imread('peppers.png');

Нарисуйте круг с шириной границы 5.

RGB = insertShape(I,'circle',[150 280 35],'LineWidth',5);

Чертите заполненный треугольник и заполненный шестиугольник.

pos_triangle = [183 297 302 250 316 297];
pos_hexagon = [340 163 305 186 303 257 334 294 362 255 361 191];
RGB = insertShape(RGB,'FilledPolygon',{pos_triangle,pos_hexagon},...
    'Color', {'white','green'},'Opacity',0.7);

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

imshow(RGB);

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

свернуть все

Введите изображение, заданное в истинном цвете или 2D шкале полутонов.

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

Тип формы, заданной как вектор символов. Вектор может быть, 'Rectangle', 'FilledRectangle', 'Line', 'Polygon', 'FilledPolygon', 'Circle' или 'FilledCircle'.

Типы данных: char

Положение формы, заданной согласно типу формы, описанной в таблице.

ФормаПоложениеФорма чертится
'Rectangle'
'FilledRectangle'
M-by-4 матрица, где каждая строка задает прямоугольник как [xywidthheight].

[x1y1width1height1x2y2width2height2xMyMwidthMheightM]

'Line'

Для одной или нескольких разъединенных строк, M-by-4 матрица, где каждый четырехэлементный вектор [x 1, y 1, x 2, y 2], описывает строку с конечными точками, [x 1 y 1] и [x 2 y 2].

Для одного или нескольких линейных сегментов, M-by-2L матрица, где каждая строка является вектором, представляющим ломаную линию с количеством L вершин.

[x11y11x12y12x1Ly1Lx21y21x22y22x2Ly2LxM1yM1xM2yM2xMLyML]

.

Ломаная линия всегда содержит (L-1) количество сегментов, потому что первые и последние точки вершины не соединяются. Для строк с меньшим количеством сегментов повторите конечные координаты, чтобы заполнить матрицу.

Можно также задать формы как массив ячеек векторов M .

{[x 11, y 11, x 12, y 12..., x 1 пункт, y 1 пункт], [x 21, y 21, x 22, y 22....., x 2q, y 2q]... [x M1, y M1, x M2, y M2......., x г-н, y г-н]}

p, q и r задают количество вершин.

'Polygon'
'FilledPolygon'
M-by-2L матрица, где каждая строка представляет полигон с количеством L вершин. Каждая строка матрицы соответствует полигону. Для полигонов с меньшим количеством сегментов повторите конечные координаты, чтобы заполнить матрицу.

[x11y11x12y12x1Ly1Lx21y21x22y22x2Ly2LxM1yM1xM2yM2xMLyML]

Можно также задать формы как массив ячеек векторов M :

{[x 11, y 11, x 12, y 12..., x 1 пункт, y 1 пункт], [x 21, y 21, x 22, y 22....., x 2q, y 2q]... [x M1, y M1, x M2, y M2......., x г-н, y г-н]}

p, q и r задают количество вершин.

'Circle'
'FilledCircle'
M-by-3 матрица, где каждая строка является вектором, задающим круг как [xyradius]. [xy] координаты представляют центр круга.

[x1y1radius1x2y2radius2xMyMradiusM]

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Color', 'yellow' задает желтый для цвета формы.

Сформируйте ширину границы, заданную в пикселях, как положительное скалярное целое число. Это свойство только применяется к 'Rectangle', 'Line', 'Polygon' или формам 'Circle'.

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

Цвет формы, заданный как пара, разделенная запятой, состоящая из 'Color' и или вектор символов, массив ячеек вектора символов или матрица. Можно задать различный цвет для каждой формы или один цвет для всех форм.

Чтобы задать цвет для каждой формы, установите Color на массив ячеек цветных векторов символов или M-by-3 матрица количества M RGB (красный, зеленый, и синий) значения цвета.

Чтобы задать один цвет для всех форм, установите Color или на цветной вектор символов или на [R G B] вектор. [R G B] вектор содержит красные, зеленые, и синие значения.

Поддерживаемые цвета: 'blue', 'green', 'red', 'cyan', 'magenta', 'black', 'black' и 'white'.

Типы данных: cell | char | uint8 | uint16 | int16 | double | single

Непрозрачность заполненной формы, заданной как пара, разделенная запятой, состоящая из 'Opacity' и скалярного значения в области значений [0 1]. Свойство Opacity запрашивает FilledRectangle, FilledPolygon и формы FilledCircle.

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

Сглаженные ребра формы, заданные как пара, разделенная запятой, состоящая из 'SmoothEdges' и логическое значение true или false. Значение true позволяет фильтру сглаживания сглаживать ребра формы. Это значение применяется только к непрямоугольным формам. Включение сглаживания требует, чтобы дополнительное время чертило формы.

Типы данных: логический

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

свернуть все

Выходное изображение, возвращенное как изображение истинного цвета.

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

Введенный в R2014a