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. Этот пример использует объект 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