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'

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

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

Алгоритмы

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

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

|

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