Чертите формы

Чертите прямоугольники, строки, полигоны или круги на изображениях

Библиотека

Text & Graphics

visiontextngfix

Описание

Блок Draw Shapes чертит несколько прямоугольников, строк, полигонов или кругов на изображениях путем перезаписи пиксельных значений. В результате формы встраиваются в выходное изображение.

Этот блок использует алгоритм визуализации строки Брезенхэма, чтобы провести линии, полигоны и прямоугольники. Это использует круговой алгоритм визуализации Брезенхэма, чтобы нарисовать круги.

Выходной сигнал одного размера и тип данных как входные параметры к Изображению, R, G, и порты B.

Можно установить цвет заливки формы или цвет рамки через входной порт или через входное диалоговое окно. Используйте цветной вход или цветной параметр, чтобы определить внешний вид прямоугольника (прямоугольников), строки (строк), полигона (полигонов) или круга (кругов).

Описание порта

ПортВвод/выводПоддерживаемые типы данныхПоддерживаемые комплексные числа

Изображение

M-by-N матрица значений интенсивности или M-by-N-by-P значения цвета, где P является количеством цветных плоскостей

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка

  • Булевская переменная

  • 8-, 16-, и 32-битное целое число со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Нет

Rgb

Скаляр, вектор или матрица, которая является одной плоскостью видеопотока входа RGB. Входные параметры к R, G, и порты B должны иметь те же размерности и тип данных.

То же самое как порт Image

Нет

Pts

Используйте целочисленные значения, чтобы задать координаты формы на основе одну. Если вы вводите значения нецелого числа, блок округляет их к самому близкому целому числу.

  • Плавающая точка двойной точности (только поддерживаемый, если вход ко мне или R, G, и портам B является плавающей точкой),

  • Плавающая точка с одинарной точностью (только поддерживаемый, если вход ко мне или R, G, и портам B является плавающей точкой),

  • 8-, 16-, и 32-битное целое число со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Нет

ROI

Вектор с 4 элементами целых чисел [x y высота ширины], которые задают прямоугольную область, в которой можно чертить формы. Первые два элемента представляют координаты на основе одну верхнего левого угла области. Вторые два элемента представляют ширину и высоту области.

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • 8-, 16-, и 32-битное целое число со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Нет

Сброс

Этот порт может использоваться, чтобы динамически задать цвет формы.

P- вектор элемента или M-by-P матрица, где M является количеством форм, и P, количеством цветных плоскостей.

Можно задать цвет (RGB), для каждой формы, или задать один цвет для всех форм.

То же самое как порт Image

Нет

Вывод

Скаляр, вектор или матрица пиксельных значений, которые содержат форму (формы)

То же самое как порт Image

Нет

Рисование форм и строк

Используйте параметр Shape и порт Pts, чтобы чертить следующие формы или строки:

Рисование прямоугольников

Блок Draw Shapes позволяет вам чертить один или несколько прямоугольников. Установите параметр Shape на Rectangles, и затем следуйте инструкциям в таблице, чтобы задать вход к порту Pts, чтобы получить желаемое количество прямоугольников.

ФормаВведите к порту PtsЧертившая форма
Один прямоугольникЧетырехэлементный вектор - строка
[x y width height], где
  • x и y являются координатами на основе одной верхнего левого угла прямоугольника.

  • width и height являются шириной, в пикселях и высоте, в пикселях, прямоугольника. Значения width и height должны быть больше, чем 0.

M прямоугольники

M-by-4 матрица

[x1y1width1height1x2y2width2height2xMyMwidthMheightM]

где каждая строка матрицы соответствует различному прямоугольнику и имеет ту же форму как вектор для одного прямоугольника.

Проведение линий и ломаных линий

Блок Draw Shapes позволяет вам чертить или одну строку или одну или несколько ломаных линий. Можно чертить ломаную линию с рядом связанных линейных сегментов. Установите параметр Shape на Lines, и затем следуйте инструкциям в таблице, чтобы задать вход к порту Pts, чтобы получить желаемую форму.

ФормаВведите к порту PtsЧертившая форма
Одна строкаЧетырехэлементный вектор - строка [x1 y1 x2 y2], где
  • x1 и y1 являются координатами начала строки.

  • x2 и y2 являются координатами конца строки.

M строки

M-by-4 матрица

[x11y11x12y12x21y21x22y22xM1yM1xM2yM2]

где каждая строка матрицы соответствует различной строке и имеет ту же форму как вектор для одной строки.

Одна ломаная линия с (L-1) сегментыВектор размера 2L, где L является количеством вершин, с форматом, [x1, y1, x2, y2, ..., xL, yL].
  • x1 и y1 являются координатами начала первого линейного сегмента.

  • x2 и y2 являются координатами конца первого линейного сегмента и начало второго линейного сегмента.

  • xL и yL являются координатами конца (L-1) th линейный сегмент.

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

Ломаные линии M с (L-1) сегменты

M-by-2L матрица

[x11y11x12y12x1Ly1Lx21y21x22y22x2Ly2LxM1yM1xM2yM2xMLyML]

где каждая строка матрицы соответствует различной ломаной линии и имеет ту же форму как вектор для одной ломаной линии. Когда вы требуете, чтобы одна ломаная линия содержала меньше, чем (L –1) количество сегментов, заполнила матрицу путем повторения координат последней вершины.

Блок производит сообщение об ошибке, если количество строк - меньше чем два или не кратное два.

Если вы устанавливаете флажок Use antialiasing, блок применяет алгоритм сглаживания ребра.

Для примера того, как использовать блок Draw Shapes, чтобы чертить линию, смотрите, Обнаруживают Строки в Изображениях.

Рисование полигонов

Блок Draw Shapes позволяет вам чертить один или несколько полигонов. Установите параметр Shape на Polygons, и затем следуйте инструкциям в таблице, чтобы задать вход к порту Pts, чтобы получить желаемое количество полигонов.

ФормаВведите к порту PtsЧертившая форма
Один Полигон с линейными сегментами LВектор - строка из размера 2L, где L является количеством вершин, с форматом, [x1 y1 x2 y2 ... xL yL] где
  • x1 и y1 являются координатами начала первого линейного сегмента.

  • x2 и y2 являются координатами конца первого линейного сегмента и начало второго линейного сегмента.

  • xL и yL являются координатами конца (L-1) th линейный сегмент и начало L th линейный сегмент.

Блок соединяет [x1 y1] с [xL yL], чтобы завершить полигон. Блок производит ошибку, если количество строк отрицательно или не кратное два.

Полигоны M с наибольшим числом линейных сегментов в любой строке, являющейся L

M-by-2L матрица

[x11y11x12y12x1Ly1Lx21y21x22y22x2Ly2LxM1yM1xM2yM2xMLyML]

где каждая строка матрицы соответствует различному полигону и имеет ту же форму как вектор для одного полигона. Если некоторые полигоны короче, чем другие, повторите конечные координаты, чтобы заполнить матрицу полигона.

Блок производит сообщение об ошибке, если количество строк - меньше чем два или не является кратным два.

Рисование кругов

Блок Draw Shapes позволяет вам нарисовать один или несколько кругов. Установите параметр Shape на Circles, и затем следуйте инструкциям в таблице, чтобы задать вход к порту Pts, чтобы получить желаемое количество кругов.

ФормаВведите к порту PtsЧертившая форма
Один кругТрехэлементный вектор - строка
[x y radius], где
  • x и y являются координатами для центра круга.

  • radius является радиусом круга, который должен быть больше, чем 0.

Круги M

M-by-3 матрица

[x1y1radius1x2y2radius2xMyMradiusM]

где каждая строка матрицы соответствует различному кругу и имеет ту же форму как вектор для одного круга.

Параметры

Shape

Задайте тип формы (форм), чтобы чертить. Вашим выбором является Rectangles, Lines, Polygons или Circles.

Блок выполняет алгоритм сглаживания, когда вы устанавливаете флажок Use antialiasing или с Lines, Polygons или с Circles. Блок использует алгоритм, подобный функции poly2mask, чтобы определить который субпиксели чертить.

Fill shapes

Заполните форму со значением интенсивности или цветом.

Когда вы устанавливаете этот флажок, Fill color source, Fill color и параметры Opacity factor (between 0 and 1) появляются в диалоговом окне.

Примечание

Если вы генерируете код, и вы устанавливаете флажок Fill shapes, размер слова входа (входов) блока не может превысить 16 битов.

Когда вы не устанавливаете флажок Fill shapes, Border color source, и параметры Border color доступны.

Fill color source

Задайте источник для значения цвета заливки или к Specify via dialog или к Input port. Этот параметр появляется, когда вы устанавливаете флажок Fill shapes. Когда вы выбираете Input port, цветной входной порт, clr появляется на блоке.

Fill color

Задайте цвет заливки для формы. Можно задать или Black, White или User-specified value. Когда вы выбираете User-specified value, параметр Color value(s) появляется в диалоговом окне. Этот параметр видим, если вы устанавливаете флажок Fill shapes.

Border color source

Задайте источник для значения цвета рамки или к Specify via dialog или к Input port. Опции цвета рамки видимы, когда опции форм заливки не выбраны. Border color source появляется, когда вы устанавливаете флажок Fill shapes. Когда вы выбираете Input port, цветной входной порт, clr появляется на блоке.

Border color

Задайте внешний вид границы формы. Можно задать или Black, White или User-specified value. Если вы выбираете User-specified value, параметр Color value(s) появляется в диалоговом окне. Этот параметр появляется, когда вы снимаете флажок Fill shapes.

Color value(s)

Задайте интенсивность или значение цвета для границы или заливки формы. Этот параметр применяется, когда вы устанавливаете Border color или параметр Fill color к User-specified value. Этот параметр является настраиваемым.

Следующая таблица описывает, что ввести для значения цвета на основе входа блока и количества форм, которые вы чертите.

Вход блокаЗначение (значения) цвета для рисования одной формы или нескольких форм с тем же цветомЗначение (значения) цвета для рисования нескольких форм с уникальным цветом
Изображение интенсивностиСкалярное значение интенсивностиR- вектор элемента, где R является количеством форм
Цветное изображениеВектор P-элемента, где P является количеством цветных плоскостейR-by-P матрица, где P является количеством цветных плоскостей и R, является количеством форм

Для каждого значения в параметре Color Value(s) введите номер между минимальными и максимальными значениями, которые могут быть представлены по условию тип входного изображения. Если вы вводите значение вне этой области значений, блок производит сообщение об ошибке.

Opacity factor (between 0 and 1)

Задайте непрозрачность штриховки в форме, где 0 прозрачно, и 1 непрозрачно. Этот параметр видим, если вы устанавливаете флажок Fill shapes.

Следующая таблица описывает, что ввести для этого параметра на основе входа блока и количества форм, которые вы чертите. Этот параметр применяется, когда вы устанавливаете флажок Filled.

Значение Фактора непрозрачности для Рисования Одной Формы или Нескольких Форм с Тем же ЦветомЗначение Фактора непрозрачности для Рисования Нескольких Форм с уникальным цветом
Скалярное значение интенсивностиВектор R-элемента, где R является количеством форм
Draw shapes in

Задайте тип области, в которой можно чертить формы. Можно задать одно из следующего:

  • Entire image, позволяет вам чертить формы в целом изображении.

  • Specify region of interest via port. Когда вы выбираете эту опцию, порт ROI появляется на блоке. Введите четырехэлементный вектор целочисленных значений, [x y width height], где [x y] является координатами верхнего левого угла области.

    Примечание

    Если вы задаете значения, которые являются вне изображения, блок устанавливает значения к границам изображения.

Use antialiasing

Выполните алгоритм сглаживания для строки, полигона или круга. Этот параметр видим, если для параметра Shape вы выбираете Lines, Polygons или Circles.

Image signal

Задайте как к вводу и выводу цветной видеосигнал. Выберите одно из следующего:

  • One multidimensional signal, блок принимает M-by-N-by-P цветной видеосигнал, где P является количеством цветных плоскостей в одном порте.

  • Separate color signals, дополнительные порты появляются на блоке. Каждый порт принимает один M-by-N плоскость видеопотока RGB.

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

Чертите маркеры

Программное обеспечение Computer Vision Toolbox™

Вставьте текст

Программное обеспечение Computer Vision Toolbox

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a