pixelcontrolsignals

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

Синтаксис

[hStart,hEnd,vStart,vEnd,valid] = pixelcontrolsignals(ctrl)

Описание

пример

[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