visionhdl.LookupTable

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

Описание

visionhdl.LookupTable Система object™ использует пользовательскую непосредственную карту, чтобы преобразовать между значением входного пикселя и значением выходного пикселя.

Сопоставлять значение входного пикселя со значением выходного пикселя:

  1. Создайте visionhdl.LookupTable объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Синтаксис

LUT = visionhdl.LookupTable(tabledata)

Описание

LUT = visionhdl.LookupTable(tabledata) возвращает Системный объект интерполяционной таблицы, который выполняет взаимно-однозначное отображение между входным пикселем и выходным пикселем. Отображение задано Свойством таблицы, которое установлено в значение tabledata.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Сопоставьте между входным пикселем и выходным пикселем в виде строки или вектор-столбца любого типа данных. Тип данных табличных данных определяет тип данных pixelout. Это отображение определяет взаимно-однозначное соответствие между входом pixelin значение и выход pixelout значение.

  • Длина табличных данных должна равняться 2WordLength, где WordLength является размером, в битах, pixelin. Этот объект не выполняет интерполяцию. Каждое входное значение должно иметь соответствующее выходное значение в таблице.

  • Наименьшее представимое значение типа входных данных сопоставляет с первым элементом таблицы, вторых наименьших карт ценности к второму элементу, и так далее. Например, если pixelin имеет тип данных fixdt(0,3,1), входное значение 0 сопоставляет с первым элементом таблицы, 0,5 карт к второму элементу, 1 карты к третьему элементу, и так далее.

Пример: uint8(linspace(255,0,256))

Использование

Синтаксис

[pixelout,ctrlout] = LUT(pixelin,ctrlin)

Описание

[pixelout,ctrlout] = LUT(pixelin,ctrlin) возвращает пиксельное значение, pixelout, расположенный в таблице в адресе, заданном значением входного пикселя, pixelin. Объект задерживает сигналы элемента управления вводом, ctrlin, выровнять сигналы элемента управления выводом, ctrlout, с выходными данными.

Этот объект использует пиксельный интерфейс потоковой передачи со структурой для сигналов управления кадром. Этот интерфейс включает объекту действовать независимо от размера изображения и формата и соединиться с другими объектами Vision HDL Toolbox™. Объект принимает и возвращает скалярное пиксельное значение и управляющие сигналы как структура, содержащая пять сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в системе координат. Чтобы преобразовать пиксельную матрицу в пиксельный поток и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

Входные параметры

развернуть все

Входной пиксель в виде скалярного значения интенсивности или вектора-строки из трех значений, представляющих один пиксель в R'G'B' или цветовом пространстве Y'CbCr. Для типов данных с фиксированной точкой без знака входной размер слова должен быть меньше чем или равен 16.

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

Типы данных: логический | uint8 | uint16 | fi

Управляющие сигналы, сопровождающие поток входного пикселя в виде pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Структуру управления.

Типы данных: struct

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

развернуть все

Выходной пиксель, возвращенный как скалярное значение интенсивности или вектор из трех представлений значений R'G'B' или цветовое пространство Y'CbCr. Тип данных выхода совпадает с типом данных записей, которые вы задаете в Table свойство.

Управляющие сигналы, сопровождающие поток выходного пикселя, возвращенный как pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Структуру управления.

Типы данных: struct

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

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

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

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

Figure contains an axes object. The axes object 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);

Создайте объект интерполяционной таблицы. Типом данных входного пикселя является uint8, таким образом, отрицательной величиной является 255-pixel. Тип данных выходного пикселя совпадает с типом данных табличного содержимого.

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

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

[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 с форматом видео, совпадающим с тем из сериализатора. Преобразуйте поток выходного пикселя во фрейм изображения и отобразите результат.

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 object. The axes object with title Output Image contains an object of type image.

Алгоритмы

развернуть все

Расширенные возможности

Смотрите также

|

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