visionhdl.ROISelector

Выберите видимую область (ROI) из пиксельного потока

Описание

visionhdl.ROISelector Система object™ выбирает фрагмент активной системы координат от видеопотока. Общий размер системы координат остается то же самое. Сигналы элемента управления выводом указывают на новую активную область системы координат. Эта схема отображает неактивные пиксельные области синим и требуемую выходную область, обрисованную в общих чертах в оранжевом.

Specified region of the input frame returned as a pixel stream with pixels outside of the region marked as inactive.

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

Области независимы друг от друга, таким образом, они могут перекрыться. Если вы задаете область, которая включает ребро активной системы координат, объект возвращает только активный фрагмент области. Эта схема показывает выходные системы координат для трех требуемых областей. Вторая выходная область не включает неактивную область выше системы координат.

Three regions (one partially falling outside the active frame, and one overlapping another), returned as three pixel streams.

Объект также обеспечивает режим для вертикального повторного использования. В этом режиме необходимо задать области, которые не имеют никакого вертикального перекрытия и выравниваются в столбцах. Каждый столбец областей совместно использует один поток выходного пикселя. Управляющие сигналы задают каждую область в потоке. Это расположение включает параллельную обработку каждого столбца и повторное использование нисходящей логики обработки для каждой области в столбце. Чтобы использовать этот режим, установите VerticalReuse свойство к true. Используйте visionhdlframetoregions функционируйте, чтобы разделить систему координат на мозаичные области для вертикального повторного использования.

Eight tiled regions returned as two pixel streams that each contain four vertically-aligned regions.

Выбрать видимые области (ROIs) из пиксельного потока:

  1. Создайте visionhdl.ROISelector объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Синтаксис

ROI = visionhdl.ROISelector(Name,Value)

Описание

ROI = visionhdl.ROISelector(Name,Value) создает Системный объект, который выбирает области активной системы координат от входного потока. Установите свойства с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки. Например.'Regions',[1 1 32 24] конфигурирует объект выбрать 32 24 пиксельная область в верхнем левом углу системы координат.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Опция, чтобы возвратить поток на один пиксель для каждого столбца областей в виде false или true. Когда вы устанавливаете это свойство на true, необходимо задать области, которые не имеют никакого вертикального перекрытия и которые выравниваются в столбцах. Объект имеет один поток выходного пикселя для каждого столбца областей. Это расположение включает параллельную обработку каждого столбца и повторное использование нисходящей логики обработки для каждой области в столбце. Используйте visionhdlframetoregions функционируйте, чтобы разделить систему координат на мозаичные области для вертикального повторного использования.

Зависимости

Чтобы включить это свойство, установите RegionsSource свойство к 'Property'.

Местоположение выходных определений области в виде одного из этих значений:

'Property' — Задайте области при помощи Regions свойство.

'Input port' — Задайте области при помощи входных параметров к объекту. Каждый входной параметр является четырехэлементным вектором-строкой, соответствующим одной области. Объект получает значение region входные параметры, когда это получает vStart установите на true в структуре элемента управления вводом.

Зависимости

Чтобы включить это свойство, установите VerticalReuse свойство к false.

Прямоугольные необходимые области, чтобы выбрать из входного кадра в виде N-by-4 матрицу.

N является числом регионов. Четыре элемента, которые задают каждую область, являются верхними левыми стартовыми координатами и размерностями области и должны иметь форму [hPos vPos hSize vSize] . Координаты рассчитывают от верхнего левого угла активной системы координат, заданной как [1,1]. hSize должен быть больше 1.

Когда вы устанавливаете VerticalReuse свойство к false, области независимы друг от друга, таким образом, они могут перекрыться. N не должен быть больше 16.

Когда вы устанавливаете VerticalReuse свойство к true, области в этой матрице не должны иметь никакого вертикального перекрытия и быть выровнены в столбцах. Эта схема показывает два примера недопустимых областей, обрисованных в общих чертах с синей пунктирной линией. Область на левых перекрытиях другая область вертикально. Эти две области в нижней части не выравниваются с другими областями в их столбцах. Области не должны покрывать целую систему координат. Пиксели за пределами мозаичных областей отмечены как неактивные пиксели. Количество столбцов не должно быть больше 16.

Зависимости

Чтобы включить этот параметр, установите RegionsSource свойство к 'Property'.

Количество region входные параметры к объекту в виде целого числа в области значений [1, 16].

Зависимости

Чтобы включить этот параметр, установите RegionsSource свойство к 'Input port'.

Использование

Синтаксис

[pixel1,ctrl1] = ROI(pixelIn,ctrlIn)
[pixel1,ctrl1,...,pixelN,ctrlN] = ROI(pixelIn,ctrlIn)
[pixel1,ctrl1,...,pixelN,ctrlN] = ROI(pixelIn,ctrlIn,region1,...,regionN)

Описание

[pixel1,ctrl1] = ROI(pixelIn,ctrlIn) возвращает следующее пиксельное значение, pixel1, и управляющие сигналы, ctrl1, следование из маскирования активного изображения структурирует в одну новую область. Задайте область путем установки Regions свойство к четырехэлементному вектору-строке, [hPos vPos hSize vSize] .

[pixel1,ctrl1,...,pixelN,ctrlN] = ROI(pixelIn,ctrlIn) возвращает следующие пиксельные значения, pixel1,...,pixelN, и управляющие сигналы, ctrl1,...,ctrlN, из каждого потока, следующего из маскирования системы координат активного изображения. Когда вы устанавливаете VerticalReuse свойство к false, каждый поток вывода содержит одну активную область, и количеством потоков является NumberOfRegions значение свойства или количество строк в Regions матрица. Когда вы устанавливаете VerticalReuse свойство к true, каждый поток вывода содержит набор вертикально выровненных областей. В обоих случаях задайте области путем установки Regions свойство к N-by-4 матрица координат ROI.

[pixel1,ctrl1,...,pixelN,ctrlN] = ROI(pixelIn,ctrlIn,region1,...,regionN) возвращает следующие пиксельные значения каждого потока, pixel1,...,pixelN, следование из маскирования активного изображения структурирует в 1 к N новые области, как направлено region1,...,regionN аргументы. Каждый region вход является четырехэлементным вектором-строкой из координат ROI. Используйте этот синтаксис, когда вы установите RegionsSource свойство к 'Input Port', и NumberOfRegions свойство к N.

Этот объект использует пиксельный интерфейс потоковой передачи со структурой для сигналов управления кадром. Этот интерфейс включает объекту действовать независимо от размера изображения и формата, и соединиться с другими объектами Vision HDL Toolbox™. Объект принимает и возвращает скалярное пиксельное значение и управляющие сигналы как структура, содержащая пять сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в системе координат. Чтобы преобразовать пиксельную матрицу в пиксельный поток и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

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

развернуть все

Один пиксель изображения в пиксельном потоке в виде интенсивности представления скалярного значения.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

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

Управляющие сигналы, сопровождающие поток входного пикселя в виде pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Управляющую структуру.

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

Необходимая область в виде вектора-строки из четырех положительных целых чисел, которые задают координаты верхнего левого угла и размерности каждой желаемой выходной системы координат. Вектор должен иметь форму [hPos vPos hSize vSize] . Задайте аргументы области N, где N является NumberOfRegions значение свойства.

Зависимости

Чтобы включить этот аргумент, очистите VerticalReuse свойство к false и набор RegionsSource свойство к 'Input Port'.

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

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

развернуть все

Выходной пиксель, возвращенный как скалярное значение. Тип выходных данных является совпадающим типом данных как входом pixelIn аргумент. По умолчанию количеством аргументов выходного пикселя является NumberOfRegions значение свойства или количество строк в Regions матрица свойства. Когда вы устанавливаете VerticalReuse к true, объект имеет один аргумент выходного пикселя для каждого столбца вертикально выровненных областей.

Пиксельные потоковые управляющие сигналы, указывающие на валидность каждого выходного пикселя и его местоположения в системе координат, возвращенной как структура пяти logical сигналы. Для получения дополнительной информации смотрите Пиксельную Управляющую структуру.

По умолчанию количеством аргументов элемента управления выводом является NumberOfRegions значение свойства или количество строк в Regions матрица свойства. Когда вы устанавливаете VerticalReuse к true, объект имеет один аргумент элемента управления выводом для каждого столбца вертикально выровненных областей.

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

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Загрузите исходное изображение из файла, и затем отобразите изображение.

frmOrig = imread('coins.png');
[frmActiveLines,frmActivePixels] = size(frmOrig);
imshow(frmOrig)
title 'Input Image'

Создайте сериализатор, возражают и задают неактивные пиксельные области.

frm2pix = visionhdl.FrameToPixels( ...
      'NumComponents',1, ...
      'VideoFormat','custom', ...
      'ActivePixelsPerLine',frmActivePixels, ...
      'ActiveVideoLines',frmActiveLines, ...
      'TotalPixelsPerLine',frmActivePixels+20, ...
      'TotalVideoLines',frmActiveLines+20, ...
      'StartingActiveLine',3, ...     
      'FrontPorch',10);

Создайте объект выбрать необходимую область. Задайте прямоугольную область координатами ее верхнего левого угла и размерностей.

hPos = 80;
vPos = 60;
hSize = 65;
vSize = 50;
roicoin = visionhdl.ROISelector('Regions',[hPos vPos hSize vSize])
roicoin = 
  visionhdl.ROISelector with properties:

    VerticalReuse: false
    RegionsSource: 'Property'
          Regions: [80 60 65 50]

Сериализируйте тестовое изображение путем вызова объекта сериализатора. pixIn вектор из значений интенсивности. ctrlIn вектор из структур управляющего сигнала.

[pixIn,ctrlIn] = frm2pix(frmOrig);

Подготовьтесь обрабатывать пиксели путем предварительного выделения выходных векторов. Выходная система координат одного размера с входным кадром, но управляющие сигналы указывают на различную активную область.

[~,~,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
pixOut = uint8(zeros(numPixelsPerFrame,1));
ctrlOut = repmat(pixelcontrolstruct,numPixelsPerFrame,1);

Для каждого пикселя в заполненной системе координат примените маску области.

for p = 1:numPixelsPerFrame  
    [pixOut(p),ctrlOut(p)] = roicoin(pixIn(p),ctrlIn(p));
end

Создайте объект deserializer с форматом, который совпадает с новой областью. Преобразуйте пиксельный поток во фрейм изображения путем вызова объекта deserializer. Отобразите получившееся изображение.

pix2frm = visionhdl.PixelsToFrame( ...
      'NumComponents',1, ...
      'VideoFormat','custom', ...
      'ActivePixelsPerLine',hSize, ...
      'ActiveVideoLines',vSize);
[frmOutput,frmValid] = pix2frm(pixOut,ctrlOut);
if frmValid
    figure
    imshow(frmOutput)
    title 'Output Image'
end

Алгоритмы

развернуть все

Сгенерированный HDL-код для visionhdl.ROISelector Системный объект использует два 32-битных счетчика. Объект не использует дополнительные счетчики для дополнительных областей.

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

Блоки

Объекты

Функции

Введенный в R2016a