visionhdl.PixelsToFrame

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

Описание

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

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

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

Примечание

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

Конструкция

P2F = visionhdl.PixelsToFrame возвращает Системный объект, P2F, это преобразует пиксельный поток на 1 080 пунктов, со стандартным дополнением, к шкале полутонов 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, чтобы использовать цвет с альфа-каналом для прозрачности. visionhdl.PixelsToFrame объект ожидает матрицу P-by-NumComponents значения, где P является общим количеством пикселей. Значение по умолчанию равняется 1.

NumPixels

Количество пикселей, переданных на потоковой передаче, взаимодействует через интерфейс для каждого цикла, заданного как 1, 4, или 8. Значением по умолчанию является 1. Чтобы включить мультипиксельную пропускную способность потоковой передачи и увеличения для видео или высокой частоты кадров с высоким разрешением, установите это свойство на 4 или 8. 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'

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

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

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

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

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