pixelcontrolstruct

Создайте структуру пиксельного сигнала управления

Описание

пример

ctrl = pixelcontrolstruct(hStart,hEnd,vStart,vEnd,valid) создает структуру, содержащую пять управляющих сигналов, используемых объектами Vision HDL Toolbox™. Входные параметры должны быть пятью скалярами logical тип. См. Раздел «Структура управления пикселями»

Примеры

свернуть все

Если вы интегрируете проекты Vision HDL Toolbox с алгоритмами, которые используют другой интерфейс, вам, возможно, потребуется создать структуру вручную или манипулировать управляющими сигналами вне структуры.

Создайте pixelcontrol структура путем передачи пяти управляющих значений сигналов в pixelcontrolstruct функция. Аргументы функции должны быть скалярными значениями. Эти сигналы управления могут поступать от камеры или другого источника видео входа. Векторы управляющего сигнала в этом примере описывают простое тестовое изображение 2 на 3 пикселя, окруженное пикселями заполнения.

hStart = [0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0];
vStart = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
hEnd   = [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0];
vEnd   = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0];
valid  = [0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0];
pixel = uint8([0 0 0 0 0 0 0 30 60 90 0 0 0 120 150 180 0 0 0 0 0 0 0 0]);
[~,numPix] = size(pixel);
ctrlIn = repmat(pixelcontrolstruct,numPix,1);
for i = 1:numPix
    ctrlIn(i) = pixelcontrolstruct(hStart(i),vStart(i),...
                                   hEnd(i),vEnd(i),valid(i));
end

Каждый элемент ctrlIn - структура, содержащая пять управляющих сигналов.

ctrlIn(8)
ans = struct with fields:
    hStart: 1
      hEnd: 1
    vStart: 0
      vEnd: 0
     valid: 1

Затем можно передать эту структуру объекту Vision HDL Toolbox System. Этот пример использует объект LookupTable, чтобы инвертировать каждый пиксель.

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

tabledata = uint8(linspace(255,0,256));
inverter = visionhdl.LookupTable(tabledata);
pixelOut = zeros(numPix,1,'uint8');
ctrlOut = repmat(pixelcontrolstruct,numPix,1);

for i = 1:numPix
    [pixelOut(i),ctrlOut(i)] = inverter(pixel(i),ctrlIn(i));
end

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

[hStartOut,vStartOut,hEndOut,vEndOut,validOut] = deal(false(numPix,1));
for i = 1:numPix
    [hStartOut(i),vStartOut(i),hEndOut(i),vEndOut(i),validOut(i)] = ...
        pixelcontrolsignals(ctrlOut(i));
end

Каждый выходной сигнал управления является вектором логических значений, которые соответствуют pixelOut вектор.

validOut'
ans = 1x24 logical array

   0   0   0   0   0   0   0   0   0   1   1   1   0   0   0   1   1   1   0   0   0   0   0   0

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

свернуть все

Управляющий сигнал, указывающий первый пиксель в горизонтальной линии, заданный как logical скаляр.

Управляющий сигнал, указывающий последний пиксель в горизонтальной линии, заданный как logical скаляр.

Управляющий сигнал, указывающий первый пиксель в первой (верхней) линии, заданный как logical скаляр.

Управляющий сигнал, указывающий последний пиксель в последней (нижней) линии, заданный как logical скаляр.

Управляющий сигнал, указывающий на валидность пикселя, заданный как logical скаляр.

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

свернуть все

Пиксельные сигналы управления, заданные как структура, содержащая пять logical значения.

Структура управления пикселями является определенным форматом, используемым объектами Vision HDL Toolbox. См. Раздел «Структура управления пикселями»

Введенный в R2015a