pixelcontrolsignals

Извлеките сигналы из передающей потоком пиксель структуры управляющего сигнала

Описание

пример

[hStart,hEnd,vStart,vEnd,valid] = pixelcontrolsignals(ctrl) извлечения пять скалярных 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 значения.

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

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

свернуть все

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

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

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

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

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

Представленный в R2015a