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