visionhdl.PixelsToFrame

Преобразуйте поток пикселей в видео на основе кадров

Описание

visionhdl.PixelsToFrame преобразует цветовой или полутоновый пиксельный поток и структуры управления в видео на основе фрейма. Структура управления указывает валидность каждого пикселя и его местоположение в системе координат. Формат потока пикселей может включать заполнение пикселей вокруг активной системы координат. Можно сконфигурировать размерности системы координат и заполнения путем выбора общего формата видео или определения пользовательских размерностей. Для получения дополнительной информации о формате потока пикселей см. раздел «Интерфейс потокового пикселя».

Используйте этот объект для преобразования выхода функции, целевой для генерации HDL-кода, обратно в системы координат. Этот объект не поддерживает генерацию HDL-кода.

Если ваш проект преобразует системы координат в поток пикселей и позже преобразует поток назад в системы координат, задайте тот же формат видео для FrameToPixels объект и PixelsToFrame объект.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Конструкция

P2F = visionhdl.PixelsToFrame возвращает Системный объект, P2F, который преобразует поток пикселей 1080p со стандартным заполнением в полутоновый кадр 1080 × 1920.

P2F = visionhdl.PixelsToFrame(Name,Value) возвращает Системный объект, P2F, с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Name является именем свойства и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Не заданные свойства сохраняют значения по умолчанию.

Свойства

NumComponents

Компоненты каждого пикселя, заданные как 1, 3 или 4. Установите значение 1 для полутонового видео. Установите значение 3 для цветного видео, например, {R, G, B} или {Y, Cb, Cr}. Установите значение 4, чтобы использовать цвет альфа-канала для прозрачности. The visionhdl.PixelsToFrame объект ожидает матрицу P -by- NumComponents значения, где P - общее количество пикселей. Значение по умолчанию является 1.

NumPixels

Количество пикселей, переданных по потоковому интерфейсу для каждого цикла, заданное как 1, 4, или 8. Значение по умолчанию является 1. Чтобы включить многопиксельную потоковую передачу и увеличить пропускную способность для видео с высоким разрешением или высокой частотой кадров, установите это свойство на 4 или 8. The visionhdl.PixelsToFrame объект ожидает P -by- NumPixels матрица, где P - общее количество пикселей. Когда вы задаете NumPixels> 1, вы должны задать NumComponents свойство к 1.

Примечание

Можно симулировать Системные объекты с мультипиксельным потоковым интерфейсом, но они не поддерживаются для генерации HDL-кода. Используйте эквивалентные блоки для генерации HDL-кода для мультипиксельных алгоритмов.

VideoFormat

Размерности активной области видеокадра. Чтобы выбрать предопределенный формат, задайте VideoFormat свойство как один из опций в первом столбце таблицы. Для пользовательского формата задайте VideoFormat на 'Custom', и задайте размерные свойства как целые числа.

Video FormatActive Pixels Per LineActive Video Lines
240p320240
480p640480
480pH720480
576p720576
720p1280720
768p1024768
1024p12801024
1080p (по умолчанию)19201080
1200p16001200
2KCinema20481080
4KUHDTV38402160
8KUHDTV76804320
CustomПользователь -
определенный
Пользователь -
определенный

Методы

шагПреобразуйте поток пикселей в систему координат изображения
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Этот пример преобразует пользовательское полутоновое изображение в поток пикселей. Он использует visionhdl.LookupTable объект для получения отрицательного изображения. Затем он преобразует пиксельный поток назад в полнокадровое изображение.

Загрузите исходное изображение из файла. Выберите фрагмент изображения, совпадающую с желаемым размером теста.

frmOrig = imread('rice.png');
frmActivePixels = 64;
frmActiveLines = 48;
frmInput = frmOrig(1:frmActiveLines,1:frmActivePixels);
figure
imshow(frmInput,'InitialMagnification',300)
title 'Input Image'

Figure contains an axes. The axes with title Input Image contains an object of type image.

Создайте объект сериализатора и задайте размер неактивных пиксельных областей.

frm2pix = visionhdl.FrameToPixels(...
      'NumComponents',1,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines,...
      'TotalPixelsPerLine',frmActivePixels+10,...
      'TotalVideoLines',frmActiveLines+10,...
      'StartingActiveLine',6,...     
      'FrontPorch',5);

Создайте объект интерполяционной таблицы (LUT), чтобы сгенерировать минус входа изображения.

tabledata = linspace(255,0,256);
inverter = visionhdl.LookupTable(tabledata);

Сериализуйте тестовое изображение путем вызова объекта сериализатора. pixIn является вектором значений интенсивности. ctrlIn является вектором структур управляющего сигнала.

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

[pixIn,ctrlIn] = frm2pix(frmInput);

Подготовьтесь к обработке пикселей путем предварительного выделения выходных векторов.

[~,~,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
pixOut = zeros(numPixelsPerFrame,1,'uint8');
ctrlOut = repmat(pixelcontrolstruct,numPixelsPerFrame,1);

Для каждого пикселя в потоке проверьте отрицательное значение пикселя.

for p = 1:numPixelsPerFrame  
    [pixOut(p),ctrlOut(p)] = inverter(pixIn(p),ctrlIn(p));
end

Создайте объект десериализатора с форматом, соответствующим формату сериализатора. Преобразуйте поток пикселей в систему координат изображения путем вызова объекта десериализатора. Отобразите получившееся изображение.

pix2frm = visionhdl.PixelsToFrame(...
      'NumComponents',1,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines);
[frmOutput,frmValid] = pix2frm(pixOut,ctrlOut);
if frmValid
    figure
    imshow(frmOutput,'InitialMagnification',300)
    title 'Output Image'
end

Figure contains an axes. The axes with title Output Image contains an object of type image.

Введенный в R2015a