visionhdl.ROISelector

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

Описание

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

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

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

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

Конструкция

ROI = visionhdl.ROISelector возвращает Системный объект, ROI, это выбирает область по умолчанию активной системы координат от входного потока.

ROI = visionhdl.ROISelector(Name,Value) возвращает Системный объект, ROI, с дополнительными опциями, заданными одним или несколькими NameЗначение парные аргументы. Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Свойства, не заданные, сохраняют свои значения по умолчанию.

Свойства

RegionsSource

Местоположение выходных определений области.

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

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

Значение по умолчанию: 'Property'

Regions

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

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

Значение по умолчанию: [100 100 50 50]

NumberofRegions

Количество region аргументы к step метод, заданный как положительное целое число.

Можно выбрать до 16 областей. Это свойство применяется, когда вы устанавливаете RegionsSource к 'Input port'.

Значение по умолчанию: 1

Методы

шагВозвратите следующий пиксель в перевыбранной системе координат
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

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

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

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:

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

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

Примечание: Этот синтаксис запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, замените myObject(x) с step(myObject,x).

[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 с форматом, совпадающим с новой областью. Преобразуйте пиксельный поток во фрейм изображения путем вызова step на объекте 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-битных счетчика. Это не использует дополнительные счетчики в дополнительных областях.

Задержка

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

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

|

Введенный в R2016a